Use o módulo do PowerShell para gerenciar recursos do Barramento de Serviço
O PowerShell do Microsoft Azure é um ambiente de script que você pode usar para controlar e automatizar a implantação e o gerenciamento dos serviços do Azure. Este artigo descreve como usar o Módulo do PowerShell do Resource Manager do Barramento de Serviço para provisionar e gerenciar entidades do Barramento de Serviço (namespaces, filas, tópicos e assinaturas) usando um script ou console local do Azure PowerShell.
Também é possível gerenciar entidades do Barramento de Serviço usando modelos do Azure Resource Manager. Para obter mais informações, consulte o artigo Criar recursos do Barramento de Serviço usando modelos do Azure Resource Manager.
Observação
Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Para começar, confira Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
Pré-requisitos
Antes de começar, você precisará atender aos seguintes pré-requisitos:
- Uma assinatura do Azure. Para saber mais sobre como adquirir uma assinatura, confira Opções de compra, ofertas para membros ou conta gratuita.
- Um computador com o PowerShell do Azure. Para obter instruções, consulte Introdução aos cmdlets do Azure PowerShell.
- Um entendimento geral dos scripts do PowerShell, dos pacotes NuGet e do .NET Framework.
Introdução
A primeira etapa é usar o PowerShell para fazer logon em sua conta do Azure e assinatura do Azure. Siga as instruções contidas em Introdução aos cmdlets do Azure PowerShell para fazer logon em sua conta do Azure e recuperar e acessar os recursos em sua assinatura do Azure.
Provisionar um namespace do Barramento de Serviço
Ao trabalhar com namespaces do Barramento de Serviço, você pode usar os cmdlets Get-AzServiceBusNamespace, New-AzServiceBusNamespace, Remove-AzServiceBusNamespace e Set-AzServiceBusNamespace.
Este exemplo cria algumas variáveis locais no script; $Namespace
e $Location
.
$Namespace
é o nome do namespace do Barramento de Serviço com o qual queremos trabalhar.$Location
identifica o data center no qual provisionamos o namespace.$CurrentNamespace
armazena o namespace de referência que recuperamos (ou criamos).
Em um script real, $Namespace
e $Location
podem ser passados como parâmetros.
Esta parte do script tem a seguinte função:
Tenta recuperar um namespace do Barramento de Serviço com o nome especificado.
Se o namespace for encontrado, ele informará o que foi encontrado.
Se o namespace não for encontrado, ele vai criar o namespace e, em seguida, recuperar o namespace recentemente criado.
# Query to see if the namespace currently exists $CurrentNamespace = Get-AzServiceBusNamespace -ResourceGroup $ResGrpName -NamespaceName $Namespace # Check if the namespace already exists or needs to be created if ($CurrentNamespace) { Write-Host "The namespace $Namespace already exists in the $Location region:" # Report what was found Get-AzServiceBusNamespace -ResourceGroup $ResGrpName -NamespaceName $Namespace } else { Write-Host "The $Namespace namespace does not exist." Write-Host "Creating the $Namespace namespace in the $Location region..." New-AzServiceBusNamespace -ResourceGroup $ResGrpName -NamespaceName $Namespace -Location $Location $CurrentNamespace = Get-AzServiceBusNamespace -ResourceGroup $ResGrpName -NamespaceName $Namespace Write-Host "The $Namespace namespace in Resource Group $ResGrpName in the $Location region has been successfully created." }
Criar uma regra de autorização de namespace
O exemplo a seguir mostra como gerenciar regras de autorização de namespace usando os cmdlets New-AzServiceBusAuthorizationRule, Get-AzServiceBusAuthorizationRule, Set-AzServiceBusAuthorizationRule e Remove-AzServiceBusAuthorizationRule.
# Query to see if rule exists
$CurrentRule = Get-AzServiceBusAuthorizationRule -ResourceGroup $ResGrpName -NamespaceName $Namespace -AuthorizationRuleName $AuthRule
# Check if the rule already exists or needs to be created
if ($CurrentRule)
{
Write-Host "The $AuthRule rule already exists for the namespace $Namespace."
}
else
{
Write-Host "The $AuthRule rule does not exist."
Write-Host "Creating the $AuthRule rule for the $Namespace namespace..."
New-AzServiceBusAuthorizationRule -ResourceGroup $ResGrpName -NamespaceName $Namespace -AuthorizationRuleName $AuthRule -Rights @("Listen","Send")
$CurrentRule = Get-AzServiceBusAuthorizationRule -ResourceGroup $ResGrpName -NamespaceName $Namespace -AuthorizationRuleName $AuthRule
Write-Host "The $AuthRule rule for the $Namespace namespace has been successfully created."
Write-Host "Setting rights on the namespace"
$authRuleObj = Get-AzServiceBusAuthorizationRule -ResourceGroup $ResGrpName -NamespaceName $Namespace -AuthorizationRuleName $AuthRule
Write-Host "Remove Send rights"
$authRuleObj.Rights.Remove("Send")
Set-AzServiceBusAuthorizationRule -ResourceGroup $ResGrpName -NamespaceName $Namespace -AuthRuleObj $authRuleObj
Write-Host "Add Send and Manage rights to the namespace"
$authRuleObj.Rights.Add("Send")
Set-AzServiceBusAuthorizationRule -ResourceGroup $ResGrpName -NamespaceName $Namespace -AuthRuleObj $authRuleObj
$authRuleObj.Rights.Add("Manage")
Set-AzServiceBusAuthorizationRule -ResourceGroup $ResGrpName -NamespaceName $Namespace -AuthRuleObj $authRuleObj
Write-Host "Show value of primary key"
$CurrentKey = Get-AzServiceBusKey -ResourceGroup $ResGrpName -NamespaceName $Namespace -Name $AuthRule
Write-Host "Remove this authorization rule"
Remove-AzServiceBusAuthorizationRule -ResourceGroup $ResGrpName -NamespaceName $Namespace -Name $AuthRule
}
Criar uma fila
Para criar uma fila ou um tópico, execute uma verificação de namespace usando o script na seção anterior. Em seguida, crie a fila:
# Check if queue already exists
$CurrentQ = Get-AzServiceBusQueue -ResourceGroup $ResGrpName -NamespaceName $Namespace -QueueName $QueueName
if($CurrentQ)
{
Write-Host "The queue $QueueName already exists in the $Location region:"
}
else
{
Write-Host "The $QueueName queue does not exist."
Write-Host "Creating the $QueueName queue in the $Location region..."
New-AzServiceBusQueue -ResourceGroup $ResGrpName -NamespaceName $Namespace -QueueName $QueueName
$CurrentQ = Get-AzServiceBusQueue -ResourceGroup $ResGrpName -NamespaceName $Namespace -QueueName $QueueName
Write-Host "The $QueueName queue in Resource Group $ResGrpName in the $Location region has been successfully created."
}
Modificar propriedades da fila
Após executar o script na seção anterior, você pode usar o cmdlet Set-AzServiceBusQueue para atualizar as propriedades de uma fila, como no exemplo a seguir:
$CurrentQ.DeadLetteringOnMessageExpiration = $True
$CurrentQ.MaxDeliveryCount = 7
$CurrentQ.MaxSizeInMegabytes = 2048
$CurrentQ.EnableExpress = $True
Set-AzServiceBusQueue -ResourceGroup $ResGrpName -NamespaceName $Namespace -QueueName $QueueName -QueueObj $CurrentQ
Provisionamento de outras entidades do Barramento de Serviço
Você pode usar o Módulo do PowerShell do Barramento de Serviço para provisionar outras entidades, como tópicos e assinaturas. Esses cmdlets são sintaticamente semelhantes aos cmdlets de criação de fila demonstrados na seção anterior.
Próximas etapas
- Consulte a documentação completa sobre o módulo do PowerShell do Resource Manager do Barramento de Serviço aqui. Esta página lista todos os cmdlets disponíveis.
- Para obter informações sobre o uso de modelos do Azure Resource Manager, consulte o artigo Criar recursos do Barramento de Serviço usando modelos do Azure Resource Manager.
- Informações sobre Bibliotecas de gerenciamento .NET do Barramento de Serviço.
Há algumas formas alternativas de gerenciar entidades do Barramento de Serviço, conforme descrito nessas postagens de blog: