Service Bus kaynaklarını yönetmek için PowerShell kullanma
Microsoft Azure PowerShell, Azure hizmetlerinin dağıtımını ve yönetimini denetlemek ve otomatikleştirmek için kullanabileceğiniz bir betik ortamıdır. Bu makalede, yerel bir Azure PowerShell konsolu veya betiği kullanarak Service Bus varlıklarını (ad alanları, kuyruklar, konular ve abonelikler) sağlamak ve yönetmek için Service Bus Resource Manager PowerShell modülünün nasıl kullanılacağı açıklanmaktadır.
Azure Resource Manager şablonlarını kullanarak Service Bus varlıklarını da yönetebilirsiniz. Daha fazla bilgi için Azure Resource Manager şablonlarını kullanarak Service Bus kaynakları oluşturma makalesine bakın.
Not
Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz . Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Önkoşullar
Başlamadan önce aşağıdaki önkoşullara ihtiyacınız olacaktır:
- Azure aboneliği. Abonelik edinme hakkında daha fazla bilgi için bkz . satın alma seçenekleri, üye teklifleri veya ücretsiz hesap.
- Azure PowerShell'e sahip bir bilgisayar. Yönergeler için bkz . Azure PowerShell cmdlet'lerini kullanmaya başlama.
- PowerShell betikleri, NuGet paketleri ve .NET Framework hakkında genel bir anlayış.
Kullanmaya başlayın
İlk adım, Azure hesabınızda ve Azure aboneliğinizde oturum açmak için PowerShell kullanmaktır. Azure hesabınızda oturum açmak ve Azure aboneliğinizdeki kaynakları alıp erişmek için Azure PowerShell cmdlet'lerini kullanmaya başlama bölümündeki yönergeleri izleyin.
Service Bus ad alanı sağlama
Service Bus ad alanlarıyla çalışırken Get-AzServiceBusNamespace, New-AzServiceBusNamespace, Remove-AzServiceBusNamespace ve Set-AzServiceBusNamespace cmdlet'lerini kullanabilirsiniz.
Bu örnek betikte birkaç yerel değişken oluşturur; $Namespace
ve $Location
.
$Namespace
, çalışmak istediğimiz Service Bus ad alanının adıdır.$Location
, ad alanını sağladığımız veri merkezini tanımlar.$CurrentNamespace
aldığımız (veya oluşturduğumuz) başvuru ad alanını depolar.
Gerçek bir betikte $Namespace
ve $Location
parametre olarak geçirilebilir.
Betiğin bu bölümü aşağıdakileri yapar:
Belirtilen ada sahip bir Service Bus ad alanını almayı dener.
Ad alanı bulunursa, bulunanları raporlar.
Ad alanı bulunmazsa, ad alanını oluşturur ve yeni oluşturulan ad alanını alır.
# 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." }
Ad alanı yetkilendirme kuralı oluşturma
Aşağıdaki örnek New-AzServiceBusAuthorizationRule, Get-AzServiceBusAuthorizationRule, Set-AzServiceBusAuthorizationRule ve Remove-AzServiceBusAuthorizationRule cmdlet'lerini kullanarak ad alanı yetkilendirme kurallarının nasıl yönetileceğini gösterir.
# 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
}
Kuyruk oluştur
Kuyruk veya konu oluşturmak için önceki bölümdeki betiği kullanarak ad alanı denetimi gerçekleştirin. Ardından kuyruğu oluşturun:
# 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."
}
Kuyruk özelliklerini değiştirme
Önceki bölümde betiği yürüttükten sonra, aşağıdaki örnekte olduğu gibi set-AzServiceBusQueue cmdlet'ini kullanarak kuyruğun özelliklerini güncelleştirebilirsiniz:
$CurrentQ.DeadLetteringOnMessageExpiration = $True
$CurrentQ.MaxDeliveryCount = 7
$CurrentQ.MaxSizeInMegabytes = 2048
$CurrentQ.EnableExpress = $True
Set-AzServiceBusQueue -ResourceGroup $ResGrpName -NamespaceName $Namespace -QueueName $QueueName -QueueObj $CurrentQ
Diğer Service Bus varlıklarını sağlama
Konu başlıkları ve abonelikler gibi diğer varlıkları sağlamak için Service Bus PowerShell modülünü kullanabilirsiniz. Bu cmdlet'ler, önceki bölümde gösterildiği gibi sıra oluşturma cmdlet'lerine benzer.
Sonraki adımlar
- Burada Service Bus Resource Manager PowerShell modülünün tüm belgelerine bakın. Bu sayfada tüm kullanılabilir cmdlet'ler listelenir.
- Azure Resource Manager şablonlarını kullanma hakkında bilgi için Azure Resource Manager şablonlarını kullanarak Service Bus kaynakları oluşturma makalesine bakın.
- Service Bus .NET yönetim kitaplıkları hakkında bilgi.
Bu blog gönderilerinde açıklandığı gibi Service Bus varlıklarını yönetmenin bazı alternatif yolları vardır: