Kaynaklarınızı yönetmek için PowerShell Service Bus kullanma
Microsoft Azure PowerShell, Azure hizmetlerinin dağıtımını ve yönetimini kontrol etmek ve otomatikleştirmek için kullanabileceğiniz bir betik ortamıdır. Bu makalede yerel bir Service Bus Resource Manager konsolu veya betiği kullanarak Service Bus varlıklarını (ad alanları, kuyruklar, konular ve abonelikler) sağlamak ve yönetmek için Azure PowerShell PowerShell modülünün nasıl kullanıldığı açıklanmıştır.
Ayrıca, tek Service Bus şablonlarını kullanarak Azure Resource Manager yönetebilirsiniz. Daha fazla bilgi için, şablonlarını kullanarak Service Bus kaynakları oluşturma Azure Resource Manager bakın.
Not
Bu makalede, Azure ile etkileşim kurmak için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. 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 vardır:
- Azure aboneliği. Abonelik alma hakkında daha fazla bilgi için bkz. satın alma seçenekleri, üye teklifleriveya ücretsiz hesap.
- Azure PowerShell. Yönergeler için bkz. Kullanmaya başlayın cmdlet'Azure PowerShell ile yükleme.
- PowerShell betikleri, NuGet paketleri ve .NET Framework.
başlarken
İlk adım, Azure hesabınızla Azure aboneliğinde oturum açmak için PowerShell kullanmaktır. Azure hesabınızla oturum Kullanmaya başlayın ve Azure Azure PowerShell kaynakları almak ve bu kaynaklara erişmek için Azure PowerShell cmdlet'leri ile birlikte aşağıdaki yönergeleri izleyin.
Ad alanı Service Bus sağlama
Service Bus ad alanlarıyla çalışırken Get-AzServiceBusNamespace, New-AzServiceBusNamespace, Remove-AzServiceBusNamespaceve Set-AzServiceBusNamespace cmdlet'lerini kullanabilirsiniz.
Bu örnek betikte birkaç yerel değişken oluşturur; $Namespace ve $Location .
$Namespace, çalışmak istediğiniz Service Bus ad alanının adıdır.$Location, ad alanını sağlarken veri merkezini tanımlar.$CurrentNamespace, alınan (veya oluşturmak) başvuru ad alanını depolar.
Gerçek bir $Namespace betikte ve parametreleri olarak $Location geçiri.
Betiğin bu bölümü şunları yapar:
Belirtilen ad Service Bus bir ad alanı almaya çalışır.
Ad alanı bulunursa, bulunanları raporlar.
Ad alanı bulunamasa, ad alanını oluşturur ve ardından yeni oluşturulan ad alanını verir.
# 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 örnekte, New-AzServiceBusAuthorizationRule, Get-AzServiceBusAuthorizationRule, Set-AzServiceBusAuthorizationRuleve Remove-AzServiceBusAuthorizationRule cmdlet'lerini kullanarak ad alanı yetkilendirme kurallarının nasıl yönetilerek yönetilerek ilgili bilgiler ve bilgiler yer almaktadır.
# 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
}
Bir kuyruk oluşturma
Kuyruk veya konu oluşturmak için, önceki bölümde yer alan betiği kullanarak bir 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 -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."
}
Kuyruk özelliklerini değiştirme
Önceki bölümde betiği yürütüldükten sonra, aşağıdaki örnekte olduğu gibi bir kuyruğun özelliklerini güncelleştirmek için Set-AzServiceBusQueue cmdlet'ini kullanabilirsiniz:
$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 sağlama
Konu başlıkları ve abonelikler Service Bus varlıkları sağlamak için PowerShell modülünü kullanabilirsiniz. Bu cmdlet'ler sözdizimsel olarak önceki bölümde yer alan kuyruk oluşturma cmdlet'leri ile benzerdir.
Sonraki adımlar
- PowerShell modülünün Service Bus Resource Manager burada bulabilirsiniz. Bu sayfada tüm kullanılabilir cmdlet'ler listelemektedir.
- Uygulama şablonları kullanma hakkında Azure Resource Manager için, şablon kullanarak Service Bus kaynakları oluşturma makalesine Azure Resource Manager bakın.
- .NET Service Bus kitaplıkları hakkında bilgi.
Bu blog gönderileri içinde açıklandığı Service Bus varlıklarını yönetmek için bazı alternatif yollar vardır: