PowerShell gebruiken om Service Bus-resources te 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 om Service Bus-entiteiten (naamruimten, wachtrijen, onderwerpen en abonnementen) in te richten en te beheren met behulp van een lokale Azure PowerShell-console of -script.
U kunt Service Bus-entiteiten ook beheren met behulp van Azure Resource Manager-sjablonen. Zie het artikel Service Bus-resources maken met behulp van Azure Resource Manager-sjablonen voor meer informatie.
Notitie
Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. 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 gratis accounts voor meer informatie over het verkrijgen van een abonnement.
- Een computer met Azure PowerShell. Zie Aan de slag met Azure PowerShell-cmdlets voor instructies.
- Een algemeen begrip van PowerShell-scripts, NuGet-pakketten en .NET Framework.
Aan de slag
De eerste stap is het gebruik van PowerShell om u aan te melden bij uw Azure-account en Azure-abonnement. Volg de instructies in Aan de slag met 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-naamruimte inrichten
Wanneer u met Service Bus-naamruimten werkt, kunt u de cmdlets Get-AzServiceBusNamespace, New-AzServiceBusNamespace, Remove-AzServiceBusNamespace en Set-AzServiceBusNamespace gebruiken.
In dit voorbeeld worden enkele lokale variabelen in het script gemaakt; $Namespace
en $Location
.
$Namespace
is de naam van de Service Bus-naamruimte waarmee we willen werken.$Location
identificeert het datacenter waarin we de naamruimte inrichten.$CurrentNamespace
slaat de referentienaamruimte op die we ophalen (of maken).
In een werkelijk script $Namespace
en $Location
kunnen worden doorgegeven als parameters.
Dit deel van het script doet het volgende:
Probeert een Service Bus-naamruimte met de opgegeven naam op te halen.
Als de naamruimte wordt gevonden, wordt er gerapporteerd 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 een naamruimte maken
In het volgende voorbeeld ziet u hoe u autorisatieregels voor naamruimten beheert met behulp van de cmdlets New-AzServiceBusAuthorizationRule, Get-AzServiceBusAuthorizationRule, Set-AzServiceBusAuthorizationRule en 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, moet u een naamruimtecontrole uitvoeren 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
$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 Service Bus-entiteiten inrichten
U kunt de Service Bus PowerShell-module gebruiken om andere entiteiten in te richten, 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
- Raadpleeg hier de volledige Documentatie voor de PowerShell-module van Service Bus Resource Manager. Op deze pagina worden alle beschikbare cmdlets weergegeven.
- Zie het artikel Service Bus-resources maken met behulp van Azure Resource Manager-sjablonen voor meer informatie over het gebruik van Azure Resource Manager-sjablonen.
- Informatie over Service Bus .NET-beheerbibliotheken.
Er zijn een aantal alternatieve manieren om Service Bus-entiteiten te beheren, zoals beschreven in deze blogberichten: