PowerShell gebruiken om uw resources Service Bus beheren
Microsoft Azure PowerShell is een scriptomgeving die u kunt gebruiken om de implementatie en het beheer van Azure-services te beheren en te automatiseren. In dit artikel wordt beschreven hoe u de Service Bus Resource Manager PowerShell-module gebruikt voor het inrichten en beheren van Service Bus-entiteiten (naamruimten, wachtrijen, onderwerpen en abonnementen) met behulp van een lokale Azure PowerShell-console of -script.
U kunt entiteiten ook Service Bus beheren met behulp van Azure Resource Manager sjablonen. Zie het artikel Create Service Bus resources using Azure Resource Manager templates voor meer informatie.
Notitie
In dit artikel wordt de Azure Az PowerShell-module gebruikt. Dit is de aanbevolen PowerShell-module voor interactie met Azure. Raadpleeg Azure PowerShell installeren om aan de slag te gaan met de Az PowerShell-module. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Vereisten
Voordat u begint, hebt u de volgende vereisten nodig:
- Een Azure-abonnement. Zie aankoopopties, aanbiedingen voor leden of een gratis account voor meer informatie over het verkrijgen van een abonnement.
- Een computer met Azure PowerShell. Zie Aan de slag met cmdlets Azure PowerShell voor instructies.
- Een algemeen begrip van PowerShell-scripts, NuGet-pakketten en de .NET Framework.
Aan de slag
De eerste stap bestaat uit het gebruik van PowerShell om u aan te melden bij uw Azure-account en Azure-abonnement. Volg de instructies in Aan de slag Azure PowerShell-cmdlets om u aan te melden bij uw Azure-account en de resources in uw Azure-abonnement op te halen en te openen.
Een Service Bus inrichten
Wanneer u met Service Bus-naamruimten werkt, kunt u de cmdlets Get-AzServiceBusNamespace, New-AzServiceBusNamespace, Remove-AzServiceBusNamespaceen Set-AzServiceBusNamespace gebruiken.
In dit voorbeeld worden enkele lokale variabelen in het script gemaakt; $Namespace en $Location .
$Namespaceis de naam van Service Bus naamruimte waarmee we willen werken.$Locationidentificeert het datacentrum waarin we de naamruimte inrichten.$CurrentNamespaceslaat de referentienaamruimte op die we ophalen (of maken).
In een echt script en $Namespace kunnen worden doorgegeven als $Location parameters.
Dit deel van het script doet het volgende:
Probeert op te halen Service Bus naamruimte met de opgegeven naam.
Als de naamruimte wordt gevonden, wordt rapporteert wat er is gevonden.
Als de naamruimte niet wordt gevonden, wordt de naamruimte gemaakt en wordt vervolgens de zojuist gemaakte naamruimte opgehaald.
# 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." }
Een autorisatieregel voor de naamruimte maken
In het volgende voorbeeld ziet u hoe u autorisatieregels voor naamruimten beheert met behulp van de cmdlets New-AzServiceBusAuthorizationRule, Get-AzServiceBusAuthorizationRule, Set-AzServiceBusAuthorizationRuleen 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
}
Een wachtrij maken
Als u een wachtrij of onderwerp wilt maken, voert u een naamruimtecontrole uit met behulp van het script in de vorige sectie. Maak vervolgens de wachtrij:
# 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."
}
Wachtrijeigenschappen wijzigen
Nadat u het script in de vorige sectie hebt uitgevoerd, kunt u de cmdlet Set-AzServiceBusQueue gebruiken om de eigenschappen van een wachtrij bij te werken, zoals in het volgende voorbeeld:
$CurrentQ.DeadLetteringOnMessageExpiration = $True
$CurrentQ.MaxDeliveryCount = 7
$CurrentQ.MaxSizeInMegabytes = 2048
$CurrentQ.EnableExpress = $True
Set-AzServiceBusQueue -ResourceGroup $ResGrpName -NamespaceName $Namespace -QueueName $QueueName -QueueObj $CurrentQ
Andere entiteiten Service Bus inrichten
U kunt de PowerShell Service Bus module gebruiken om andere entiteiten in terichten, zoals onderwerpen en abonnementen. Deze cmdlets zijn syntactisch vergelijkbaar met de cmdlets voor het maken van wachtrijen die in de vorige sectie zijn gedemonstreerd.
Volgende stappen
- Zie de volledige documentatie Service Bus Resource Manager PowerShell-module hier. Op deze pagina worden alle beschikbare cmdlets weergegeven.
- Zie het artikel Create Service Bus resources using Azure Resource Manager Azure Resource Manager templates (Service Bus resources maken met behulp Azure Resource Manager sjablonen) voormeer informatie over het gebruik Azure Resource Manager sjablonen.
- Informatie over Service Bus .NET-beheerbibliotheken.
Er zijn een aantal alternatieve manieren om entiteiten Service Bus beheren, zoals beschreven in deze blogberichten: