Zarządzanie zasobami usługi Service Bus przy użyciu programu PowerShell
Microsoft Azure PowerShell to środowisko skryptowe, którego można użyć do kontrolowania i automatyzowania wdrażania i zarządzania usługami platformy Azure. W tym artykule opisano, jak za pomocą modułu Service Bus Resource Manager PowerShell aprowizować jednostki usługi Service Bus (przestrzenie nazw, kolejki, tematy i subskrypcje) przy użyciu lokalnej konsoli lub skryptu Azure PowerShell.
Jednostki usługi Service Bus można również zarządzać przy użyciu szablonów usługi Azure Resource Manager. Aby uzyskać więcej informacji, zobacz artykuł Tworzenie zasobów usługi Service Bus przy użyciu szablonów usługi Azure Resource Manager.
Uwaga
Zalecamy korzystanie z modułu Azure Az programu PowerShell do interakcji z platformą Azure. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Wymagania wstępne
Przed rozpoczęciem będziesz potrzebować następujących wymagań wstępnych:
- Subskrypcja platformy Azure. Aby uzyskać więcej informacji na temat uzyskiwania subskrypcji, zobacz opcje zakupu, oferty członków lub bezpłatne konto.
- Komputer z Azure PowerShell. Aby uzyskać instrukcje, zobacz Wprowadzenie do poleceń cmdlet Azure PowerShell.
- Ogólna wiedza na temat skryptów programu PowerShell, pakietów NuGet i .NET Framework.
Rozpoczęcie pracy
Pierwszym krokiem jest zalogowanie się do konta platformy Azure i subskrypcji platformy Azure przy użyciu programu PowerShell. Postępuj zgodnie z instrukcjami w temacie Wprowadzenie do poleceń cmdlet Azure PowerShell, aby zalogować się do konta platformy Azure, a następnie pobrać i uzyskać dostęp do zasobów w subskrypcji platformy Azure.
Aprowizuj przestrzeń nazw usługi Service Bus
Podczas pracy z przestrzeniami nazw usługi Service Bus można użyć poleceń cmdlet Get-AzServiceBusNamespace, New-AzServiceBusNamespace, Remove-AzServiceBusNamespace i Set-AzServiceBusNamespace.
W tym przykładzie w skrycie jest tworzonych kilka zmiennych lokalnych; $Namespace
i $Location
.
$Namespace
to nazwa przestrzeni nazw usługi Service Bus, z którą chcemy pracować.$Location
identyfikuje centrum danych, w którym aprowizujemy przestrzeń nazw.$CurrentNamespace
przechowuje przestrzeń nazw odwołania, którą pobieramy (lub tworzymy).
W rzeczywistym skryscie $Namespace
$Location
można przekazać jako parametry.
Ta część skryptu wykonuje następujące czynności:
Próbuje pobrać przestrzeń nazw usługi Service Bus o określonej nazwie.
Jeśli przestrzeń nazw zostanie znaleziona, zgłasza znalezione elementy.
Jeśli przestrzeń nazw nie zostanie znaleziona, utworzy przestrzeń nazw, a następnie pobierze nowo utworzoną przestrzeń nazw.
# 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." }
Tworzenie reguły autoryzacji przestrzeni nazw
W poniższym przykładzie pokazano, jak zarządzać regułami autoryzacji przestrzeni nazw przy użyciu poleceń cmdlet New-AzServiceBusAuthorizationRule, Get-AzServiceBusAuthorizationRule i 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
}
Tworzenie kolejki
Aby utworzyć kolejkę lub temat, wykonaj sprawdzanie przestrzeni nazw przy użyciu skryptu w poprzedniej sekcji. Następnie utwórz kolejkę:
# 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."
}
Modyfikowanie właściwości kolejki
Po wykonaniu skryptu w poprzedniej sekcji możesz użyć polecenia cmdlet Set-AzServiceBusQueue , aby zaktualizować właściwości kolejki, jak w poniższym przykładzie:
$CurrentQ.DeadLetteringOnMessageExpiration = $True
$CurrentQ.MaxDeliveryCount = 7
$CurrentQ.MaxSizeInMegabytes = 2048
$CurrentQ.EnableExpress = $True
Set-AzServiceBusQueue -ResourceGroup $ResGrpName -NamespaceName $Namespace -QueueName $QueueName -QueueObj $CurrentQ
Aprowizowanie innych jednostek usługi Service Bus
Za pomocą modułu Programu PowerShell usługi Service Bus można aprowizować inne jednostki, takie jak tematy i subskrypcje. Te polecenia cmdlet są składniowo podobne do poleceń cmdlet tworzenia kolejek przedstawionych w poprzedniej sekcji.
Następne kroki
- Zapoznaj się z kompletną dokumentacją modułu Service Bus Resource Manager PowerShell tutaj. Ta strona zawiera listę wszystkich dostępnych poleceń cmdlet.
- Aby uzyskać informacje na temat korzystania z szablonów usługi Azure Resource Manager, zobacz artykuł Tworzenie zasobów usługi Service Bus przy użyciu szablonów usługi Azure Resource Manager.
- Informacje o bibliotekach zarządzania .NET usługi Service Bus.
Istnieje kilka alternatywnych sposobów zarządzania jednostkami usługi Service Bus, zgodnie z opisem w następujących wpisach w blogu: