3

EDITこの質問は2016年に書かれたものなので、もう関係ないかもしれません

新しいメッセージがキューに追加されたときにトリガーされる 1 つの関数 (ポータル内関数) を含む単純な Function App を作成しました。

「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: リモート サーバーがエラーを返しました: (401) 権限がありません。この操作には管理クレームが必要です。追跡 ID:6e27fe40-f667-4230-9995-d09f2ac67f35_G17、タイムスタンプ:2016 年 4 月 18 日午後 10:17:41。システム: リモート サーバーがエラーを返しました: (401) 権限がありません。

Azure 関数エラー - (401) 権限がありません - この操作には管理クレームが必要です。

最初に、キューのリッスンのみを許可する共有アクセス ポリシーを使用して接続文字列を設定し、Manage 要求に変更しましたが、まだこのエラーが発生します。

これを修正するには、サービス バス名前空間へのフル アクセスを許可する RootManageSharedAccessKey との接続をセットアップする必要がありました。

それは正常/望ましい動作ですか? 将来、異なる共有アクセス ポリシーで接続文字列を設定することは可能になりますか?

4

3 に答える 3

3

AccessRights指定されていない場合に使用されるデフォルトは ですAccessRights.ManageAccessRightsより制限された値を指定して、高度なポータル エディターを使用してこれをオーバーライドできます。

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

構成を容易にするために、ファーストクラスのポータル UI を介してこの値を公開する必要があります。

于 2016-04-19T01:49:58.917 に答える