新しいメッセージがキューに追加されたときにトリガーされるべき機能を持つ単純な関数アプリケーションを作成しました。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.
私は接続の文字列を共有のアクセスポリシーで設定しましたが、キューを聞くことができ、それを管理クレームに変更しましたが、私はまだこのエラーがあります。
この問題を解決するために、私はサービスバスの名前空間
それは正常な/望ましい動作ですへのフルアクセスを与えるRootManageSharedAccessKeyとの接続をセットアップする必要がありましたか?今後、異なる共有アクセスポリシーで接続文字列を設定することは可能でしょうか?
Matthew、 'accessRights'設定の目的は何ですか? webjobを使用して、servicebusトリガーを設定するためにそのようなことを指定する必要はありません。 – Thomas
これはコアSDKにも存在します。 'ServiceBusAttribute'は設定可能な' AccessRights'プロパティを持っています。この設定はそれに対応しています。最後のリリースのWebJobs SDKリリースでは、限られたアクセスで接続文字列を使用する必要があるため、これを追加しました。以前は私たちは常に 'Manage'を持っていると仮定し、失敗する操作を試みました。 – mathewc
ありがとう、私は見てみましょう^^これは、サービスバスの名前空間をグローバルにターゲットとする接続文字列を使用していることに気付いています。特定のキューだけを対象とする接続文字列を指定すると、失敗します。将来変化するものなのでしょうか? – Thomas