Použití PowerShellu ke správě prostředků služby Service Bus
Microsoft Azure PowerShell je skriptovací prostředí, které můžete použít k řízení a automatizaci nasazení a správy služeb Azure. Tento článek popisuje, jak pomocí modulu PowerShellu Service Bus Resource Manageru zřizovat a spravovat entity služby Service Bus (obory názvů, fronty, témata a odběry) pomocí místní konzoly nebo skriptu Azure PowerShellu.
Entity služby Service Bus můžete spravovat také pomocí šablon Azure Resource Manageru. Další informace najdete v článku Vytvoření prostředků služby Service Bus pomocí šablon Azure Resource Manageru.
Poznámka:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Pokud chcete začít, přečtěte si téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Požadavky
Než začnete, budete potřebovat následující požadavky:
- Předplatné Azure. Další informace o získání předplatného najdete v tématu možnosti nákupu, nabídky členů nebo bezplatný účet.
- Počítač s Azure PowerShellem Pokyny najdete v tématu Začínáme s rutinami Azure PowerShellu.
- Obecné znalosti skriptů PowerShellu, balíčků NuGet a rozhraní .NET Framework.
Začínáme
Prvním krokem je přihlášení k účtu Azure a předplatnému Azure pomocí PowerShellu. Podle pokynů v tématu Začínáme s rutinami Azure PowerShellu se přihlaste ke svému účtu Azure a získejte a získejte přístup k prostředkům ve vašem předplatném Azure.
Zřízení oboru názvů služby Service Bus
Při práci s obory názvů služby Service Bus můžete použít rutiny Get-AzServiceBusNamespace, New-AzServiceBusNamespace, Remove-AzServiceBusNamespace a Set-AzServiceBusNamespace .
Tento příklad vytvoří v skriptu několik místních proměnných; $Namespace
a $Location
.
$Namespace
je název oboru názvů služby Service Bus, se kterým chceme pracovat.$Location
identifikuje datové centrum, ve kterém zřídíme obor názvů.$CurrentNamespace
uloží referenční obor názvů, který načteme (nebo vytvoříme).
Ve skutečném skriptu $Namespace
a $Location
lze ho předat jako parametry.
Tato část skriptu provede následující akce:
Pokusí se načíst obor názvů služby Service Bus se zadaným názvem.
Pokud se obor názvů najde, nahlásí, co bylo nalezeno.
Pokud se obor názvů nenajde, vytvoří obor názvů a pak načte nově vytvořený obor názvů.
# 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." }
Vytvoření autorizačního pravidla oboru názvů
Následující příklad ukazuje, jak spravovat autorizační pravidla oboru názvů pomocí rutin New-AzServiceBusAuthorizationRule, Get-AzServiceBusAuthorizationRule, Set-AzServiceBusAuthorizationRule a 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
}
Vytvořit frontu
Pokud chcete vytvořit frontu nebo téma, proveďte kontrolu oboru názvů pomocí skriptu v předchozí části. Pak vytvořte frontu:
# 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."
}
Úprava vlastností fronty
Po spuštění skriptu v předchozí části můžete pomocí rutiny Set-AzServiceBusQueue aktualizovat vlastnosti fronty, jako v následujícím příkladu:
$CurrentQ.DeadLetteringOnMessageExpiration = $True
$CurrentQ.MaxDeliveryCount = 7
$CurrentQ.MaxSizeInMegabytes = 2048
$CurrentQ.EnableExpress = $True
Set-AzServiceBusQueue -ResourceGroup $ResGrpName -NamespaceName $Namespace -QueueName $QueueName -QueueObj $CurrentQ
Zřizování dalších entit služby Service Bus
Modul Service Bus PowerShell můžete použít ke zřizování dalších entit, jako jsou témata a odběry. Tyto rutiny jsou syntakticky podobné rutinám vytváření front, které jsme si ukázali v předchozí části.
Další kroky
- Tady najdete úplnou dokumentaci k modulu PowerShellu pro Service Bus Resource Manager. Tato stránka obsahuje seznam všech dostupných rutin.
- Informace o používání šablon Azure Resource Manageru najdete v článku Vytváření prostředků služby Service Bus pomocí šablon Azure Resource Manageru.
- Informace o knihovnách pro správu .NET služby Service Bus
Existují některé alternativní způsoby správy entit služby Service Bus, jak je popsáno v těchto blogových příspěvcích: