2017-08-19 23 views
2

私はAzureで関数アプリケーションを作成していて、キュートリガを使用したいと考えています。 私は例えば、設計時にキュー名を設定する方法を知っている:Azure関数でキュートリガのキュー名を設定する方法

[FunctionName("MyTestFunction")] 
 
public static void Run([QueueTrigger("myqueue-items", Connection = "testdelete")]string myQueueItem, TraceWriter log)

しかし、私は定義し、設定ファイルでそれを参照できるようにしたいと思います。 私はfunction.json(おそらくこの1つ)、host.jsonとlocal.settings.jsonの存在を知っていますが、そこにキュー名を設定する方法がわからず、関数内で参照されるようにしています。

ビジュアルスタジオで作成された新しく作成された関数をデプロイすると(新しい15.3アップデートで)、私はローカルで開発するときにファイルが存在しないにもかかわらず、 :私は、私はそのファイルを作成し、実際の関数の値と一致しないものに「QUEUENAME」を変更した場合、それは残念ながらないことが分かってきました

"bindings": [ 
 
    { 
 
     "type": "queueTrigger", 
 
     "queueName": "myqueue-items", 
 
     "connection": "testdelete", 
 
     "name": "myQueueItem" 
 
    }

それを上書きする(それは私が推測するにはあまりにも簡単だろう)。

関数QueueTrigger属性のfunction.jsonでバインディングを参照するにはどうすればよいですか?

おそらく解決策が何であれ、私は有害なキュー処理で同じことをすることができますか?

私がこれをやりたいのは、まったく同じ機能の複数のインスタンスを展開する必要があるからです。ただし、それぞれのキューを異なるキューに配置する必要があります(最大限のメモリ制限を回避するため)。

ありがとうございました。

+0

を実行するためのlocal.settings.jsonの設定を指定して、私はあなたがINameResolverインターフェイスを実装示唆しています。 https://stackoverflow.com/questions/44901165/azure-function-flexible-test-and-production-queue-names – camelCase

答えて

6

あなたのアプリケーション機能の設定(%settingName%構文を使用)としてキュー名を参照するだけではありませんか?次に、デプロイする各関数アプリで、設定を必要なキュー名に変更します。

[FunctionName("MyTestFunction")] 
public static void Run([QueueTrigger("%MyQueueName%", Connection = "testdelete")]string myQueueItem, TraceWriter log) 

、ローカル

{ 
    "Values: { 
    "MyQueueName": "myqueue-items" 
    } 
} 
+1

%settingName%構文のドキュメントはどこにありますか? –

関連する問題