2

新しいメッセージがキューに追加されたときにトリガーされるべき機能を持つ単純な関数アプリケーションを作成しました。ServiceBus Queue Trigger for Azure機能:この操作には要求の管理が必要です

私は "ServiceBusQueueTrigger - C#" を使用したコードは、そのように見えるように、私の関数を作成するためのテンプレートを:

using System; 
using System.Threading.Tasks; 

public static void Run(string myQueueItem, TraceWriter log) 
{ 
    log.Verbose($"C# ServiceBus queue trigger function processed message: {myQueueItem}"); 
} 

Azureのポータルから、私はこのエラーを持っている:

Microsoft.ServiceBus: The remote server returned an error: (401) Unauthorized. Manage claim is required for this operation. TrackingId:6e27fe40-f667-4230-9995-d09f2ac67f35_G17,TimeStamp:4/18/2016 10:17:41 PM. System: The remote server returned an error: (401) Unauthorized.

Azure Function Error - (401) Unauthorized - Manage claim is required for this operation.

私は接続の文字列を共有のアクセスポリシーで設定しましたが、キューを聞くことができ、それを管理クレームに変更しましたが、私はまだこのエラーがあります。

この問題を解決するために、私はサービスバスの名前空間

それは正常な/望ましい動作ですへのフルアクセスを与えるRootManageSharedAccessKeyとの接続をセットアップする必要がありましたか?今後、異なる共有アクセスポリシーで接続文字列を設定することは可能でしょうか?

答えて

2

デフォルト値AccessRightsが指定されていない場合はAccessRights.Manageです。私たちは、それが簡単に設定できるようにすることだけでなく、ファーストクラスのポータルUIを介して、この値を公開する必要が

{ 
    "bindings": [ 
    { 
     "type": "serviceBusTrigger", 
     "direction": "in", 
     "accessRights": "listen", 
     "queueName": "samples-input" 
    } 
    ] 
} 

:あなたは、より制限されたAccessRights値を指定して、高度なポータルエディタを使用して、これを無効にすることができます。

+0

Matthew、 'accessRights'設定の目的は何ですか? webjobを使用して、servicebusトリガーを設定するためにそのようなことを指定する必要はありません。 – Thomas

+1

これはコアSDKにも存在します。 'ServiceBusAttribute'は設定可能な' AccessRights'プロパティを持っています。この設定はそれに対応しています。最後のリリースのWebJobs SDKリリースでは、限られたアクセスで接続文字列を使用する必要があるため、これを追加しました。以前は私たちは常に 'Manage'を持っていると仮定し、失敗する操作を試みました。 – mathewc

+0

ありがとう、私は見てみましょう^^これは、サービスバスの名前空間をグローバルにターゲットとする接続文字列を使用していることに気付いています。特定のキューだけを対象とする接続文字列を指定すると、失敗します。将来変化するものなのでしょうか? – Thomas

関連する問題