použití powershellu ke správě Service Busch prostředků

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 Service Bus Správce prostředků powershellu zřídit a spravovat Service Bus entit (obory názvů, fronty, témata a odběry) pomocí místní konzoly nebo skriptu pro Azure PowerShell.

Service Bus entit můžete také spravovat pomocí šablon Azure Resource Manager. další informace najdete v článku vytvoření Service Busch prostředků pomocí šablon Azure Resource Manager.

Poznámka

Tento článek používá modul Azure Az PowerShell, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, projděte si téma věnované instalaci 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:

Začínáme

Prvním krokem je použití PowerShellu pro přihlášení k účtu Azure a předplatnému Azure. podle pokynů v tématu začínáme s rutinami Azure PowerShell se přihlaste ke svému účtu azure a načtěte a získejte přístup k prostředkům ve vašem předplatném azure.

zřízení Service Busového oboru názvů

při práci s oborem názvů Service Bus můžete použít rutiny Get-AzServiceBusNamespace, New-AzServiceBusNamespace, Remove-AzServiceBusNamespacea Set-AzServiceBusNamespace .

Tento příklad vytvoří ve skriptu několik místních proměnných. $Namespace a $Location .

  • $Namespaceje název oboru názvů Service Bus, se kterým chceme pracovat.
  • $Location Určuje datové centrum, ve kterém zřizujeme obor názvů.
  • $CurrentNamespace ukládá referenční obor názvů, který načteme (nebo vytvoříte).

Ve vlastním skriptu $Namespace a $Location lze předat jako parametry.

Tato část skriptu provede následující akce:

  1. pokusí se načíst obor názvů Service Bus se zadaným názvem.

  2. Pokud je obor názvů nalezen, oznamuje, co byl nalezen.

  3. Pokud obor názvů nebyl nalezen, vytvoří obor názvů a následně 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-AzServiceBusAuthorizationRulea 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ření fronty

Chcete-li 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 -EnablePartitioning $True
    $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."
}

Upravit vlastnosti fronty

Po spuštění skriptu v předchozí části můžete pomocí rutiny set-AzServiceBusQueue aktualizovat vlastnosti fronty, jak je znázorněno 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 Service Bus

k zřizování jiných entit, jako jsou témata a předplatná, můžete použít modul Service Bus PowerShell . Tyto rutiny jsou syntakticky podobné rutinám vytváření fronty, které jsou znázorněné v předchozí části.

Další kroky

existuje několik alternativních způsobů, jak spravovat Service Bus entit, jak je popsáno v těchto blogových příspěvcích: