0

New AzureSBAuthorizationRule을 사용하여 Azure 서비스 버스 대기열에 대한 새 공유 액세스 정책을 만듭니다. 내가 즉, 엔티티 이름과 EntityType을 떨어 뜨리면 내가 문제없이 새로운-AzureSBAuthorizationRule을 실행할 수 있어요서비스 버스 대기열에 대한 인증을 만들 때 New-AzureSBAuthorizationRule 오류가 발생했습니다.

New-AzureSBAuthorizationRule : Object reference not set to an instance of an object. 
At line:1 char:1 
+ New-AzureSBAuthorizationRule -EntityName abcdef -EntityType Queue -Permission ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : CloseError: (:) [New-AzureSBAuthorizationRule], NullReferenceException 
    + FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.ServiceBus.NewAzureSBAuthorizationRuleCommand 

... 아래 명령

New-AzureSBAuthorizationRule -EntityName abcdef -EntityType Queue -Permission Listen -Name "abcdef_reader" -Namespace abcdefnamespace 

하지만이를 실행할 때마다 나는 아래의 오류를 참조하십시오 대기열이 아닌 서비스 버스에 대한 정책을 생성합니다.

내가 뭘 잘못하고 있니?

답변

-1

-Permission 매개 변수와 관련된 구문이 누락되었을 가능성이 있습니까? 다음은 MSDN에 주어진 PS 명령 줄의 예입니다 :

C : \ PS> 새-AzureSBAuthorizationRule -Name MyRule -namespace MyNamespace에 -Permission $ ("보내기", "관리", "듣기") -EntityName MyEntity -EntityType 큐 -PrimaryKey P + LL/Mnd2Z9sj5hwMrRyAxQDdX8RHfbdqU2eIAqs1rc = 당신의 매개 변수

가 도움이된다면 알려 주시기 바랍니다 ("듣기") -Permission $해야처럼

보인다.

감사합니다, 세스 하임 푸른 박사 팀

+0

이전에 시도했지만 다시 유효성을 검사했지만 여전히 작동하지 않습니다. 이전 통화에는 PrimaryKey가 포함되어 있지 않았지만 지금은 동일한 메시지가 나타납니다. –

+0

이렇게하면 큐 수준이 아닌 네임 스페이스에 대한 정책이 만들어집니다. –

0

내가 같은 오류가 발생하고

  function Create-AzureSBAuthorisationTopic 
      { 
      param 
      ([Parameter (Mandatory = $true)] 
      [string] $Namespace, 
      [Parameter (Mandatory = $true)] 
      [string] $TopicName, 
      [Parameter (Mandatory = $true)] 
      [string]$RuleName, 
      [switch]$CanManage, 
      [switch]$CanListen, 
      [switch]$CanSend 

      ) 

      $NamespaceManager = [Microsoft.ServiceBus.NamespaceManager]::CreateFromConnectionString($CurrentNamespace.ConnectionString); 

      $newkey = [Microsoft.ServiceBus.Messaging.SharedAccessAuthorizationRule]::GenerateRandomKey() 

       #Strongly Typed Array 
       [Microsoft.ServiceBus.Messaging.AccessRights[]]$AccessRights = 
       New-Object -TypeName "System.Collections.Generic.List[Microsoft.ServiceBus.Messaging.AccessRights]" ; 



        if ($CanManage) 
        { 
         $AccessRights += [Microsoft.ServiceBus.Messaging.AccessRights]::Manage; 
        } 

        if ($CanListen) 
        { 
         $AccessRights += [Microsoft.ServiceBus.Messaging.AccessRights]::Listen; 
        } 

        if ($CanSend) 
        { 

         $AccessRights += [Microsoft.ServiceBus.Messaging.AccessRights]::Send; 
        }  


      $AuthorizationRule = [Microsoft.ServiceBus.Messaging.SharedAccessAuthorizationRule]::new($RuleName,$newkey, $accessRights) 
      $AuthorizationRule 
      $topic = $NamespaceManager.GetTopic($TopicName) 
      $topic.Authorization.Add($AuthorizationRule) 
      $NamespaceManager.UpdateTopic($topic) 
      } 

을 사용하는 당신은

:-) 큐 항목을 대체하여 큐에 대한 사용 권한을 설정하는 코드를 변경할 수 있습니다