能够使用以下代码
创建队列$queuename = "samplequeue"
$CurrentNamespace = Get-AzureSBNamespace -Name "mynamespace"
$NamespaceManager = [Microsoft.ServiceBus.NamespaceManager]::CreateFromConnectionString($CurrentNamespace.ConnectionString);
$QueueDescription = New-Object -TypeName Microsoft.ServiceBus.Messaging.QueueDescription -ArgumentList $queuename
$NamespaceManager.CreateQueue($QueueDescription);
我正在寻找PowerShell cmdlet来创建/管理ServiceBus队列的共享访问策略。
能够从管理门户添加它。
还试过下面的cmdlet,
New-AzureSBAuthorizationRule -Name "readwritepolicy" -Namespace "mynamespace"-Permission $("Send") -EntityName "notsure" -EntityType "Queue"
给出了以下错误,
New-AzureSBAuthorizationRule : Object reference not set to an instance of an object.
At line:1 char:1
+ New-AzureSBAuthorizationRule -Name "readwritepolicy" -Namespace "mynamespace" ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [New-AzureSBAuthorizationRule], NullReferenceException
+ FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.ServiceBus.NewAzureSBAuthorizationRuleCommand
我做错了吗?什么是EntityName?
答案 0 :(得分:0)
我知道这有点旧了,但它出现在我的搜索中并使我成功,所以我认为值得分享
我通过添加到下面的答案来实现它,因为我在使用新的AzureSBAuthorisationRule cmdlet时遇到错误
$NamespaceManager.UpdateTopic($topic)
但是我正在添加一个主题,所以在这个例子中它将是
$NamespaceManager.UpdateQueue($queuename)
答案 1 :(得分:-1)
EntityName 参数是您要为其添加自动调整规则的队列的名称。
但是,当您尝试将规则添加到队列时,我不确定为什么 New-AzureSBAuthorizationRule cmdlet会失败,但其他人报告的问题相同。作为解决方法,您可以尝试:
$queuename = "yourqueue"
$CurrentNamespace = Get-AzureSBNamespace -Name "yournamespace"
$NamespaceManager = [Microsoft.ServiceBus.NamespaceManager]::CreateFromConnectionString($CurrentNamespace.ConnectionString);
$newkey = [Microsoft.ServiceBus.Messaging.SharedAccessAuthorizationRule]::GenerateRandomKey()
[Microsoft.ServiceBus.Messaging.AccessRights[]] $accessRights = [Microsoft.ServiceBus.Messaging.AccessRights]::Send
$AuthorizationRule = [Microsoft.ServiceBus.Messaging.SharedAccessAuthorizationRule]::new("myRule",$newkey, $accessRights)
$queue = $NamespaceManager.GetQueue($queuename )
$queue.Authorization.Add($AuthorizationRule)