Azure Functions で Queue が書けない、取れないとき
3210 ワード
前提
- Visual Studio 2017 Update 3
- Azure Functions
- QueueTrigger
現象
- Queue が取れない
- ポータルで refresh してもメッセージが見えない
- もしかして Queue が書けていない???
- エラーは出ていない
原因
- 同じ Queue を取り合っている
- ローカルの function 同士
- ローカルの function と Azure 上の function
- つまり、書けているが、他の function に取られている
対策
- 不要な function は止めよう
- function の止め方を調べてみました
Azure で function を止める
- ステータス を 無効 にする
- アプリケーションを 再開 する ( これを忘れがち )
ローカルの function を止める
- DisableAttribute を付ける
[Disable]
public static class Function1
{
...
または、
[FunctionName("Function1"), Disable]
public static void Run([QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")]string myQueueItem, TraceWriter log)
{
...
ローカルの function を止める ( 別解 )
- NoAutomaticTriggerAttribute を付ける
[FunctionName("Function1"), NoAutomaticTrigger]
public static void Run([QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")]string myQueueItem, TraceWriter log)
{
...
属性
他にどんな属性があるか調べてみました。まず、入力/出力バインドは次のページを参照してください。
- Azure Functions での .NET クラス ライブラリの使用#トリガーとバインド - docs.microsoft.com
入力/出力バインド以外の属性一覧
Target | Attribute |
---|---|
Class, Method, Parameter | DisableAtrribute |
Class, Method, Parameter | ServiceBusAccountAttribute |
Class, Method, Parameter | StorageAccountAttribute |
Class, Method | FunctionExceptionFilterAttribute |
Class, Method | FunctionInvocationFilterAttribute |
Class, Method | TimeoutAttribute |
Class, Method | TraceLevelAttribute |
Class | BindingAttribute |
Class | ConnectionProviderAttribute |
Method | FunctionNameAttribute |
Method | NoAutomaticTriggerAttribute |
Method | SingletonAttribute |
Author And Source
この問題について(Azure Functions で Queue が書けない、取れないとき), 我々は、より多くの情報をここで見つけました https://qiita.com/NakamuraYoichi/items/0ae883b41a4c76a8dcbe著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .