VS2017 Update3がようやく正式リリースされてFunction Appの開発が便利になりました。
Function Appの中でもよく使うであろうQueueトリガーをローカルだけでデバッグする方法についてまとめます。
前提条件
下記がインストール済みであることを確認してください。
- Visual Studio 2017 Update3
- Azure Storage Emulator(2017/08/15現在5.2.0.0)
プロジェクトの作成
デフォルトでFunction Appのプロジェクトを作ると
が含まれたプロジェクトが作成されます。
.cs等のファイルは、デフォルトで含まれないので、プロジェクトを追加 > 新しい項目で.csを追加します。
項目追加の画面にAzure Functionの項目が追加されているのでそれを選択します。
選択すると、別途ダイアログが表示されて、使いたいトリガーを選択することになるので、Queue Triggerを選択します。
ConnectionとPathに適当な値を入れます。
Connectionは、settings.jsonで接続文字列のキー、Pathは、Queue名になります。
生成された.csはRunメソッドのみが含まれたファイルになります。
引数のPath Nameの部分に先ほどのPaht、Connection NameにConnectionが入ります。
public static void Run([QueueTrigger("<Path Name>", Connection = "<Connection Name>")]string myQueueItem, TraceWriter log) { log.Info($"C# Queue trigger function processed: {myQueueItem}"); }
接続設定
プロジェクトが作成出来たら、local.settings.jsonに設定を入れていきます。
デフォルトだと下記のようなファイルになってるはずです。
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "AzureWebJobsDashboard": "" }, "ConnectionStrings": { "<Connection Name>": "UseDevelopmentStorage=true" } }
Connection Nameに先ほどConnectionに入力したものを入れます。
UseDevelpmentStorage=true は、Storage Emulator用のショートカット文字列です。
これで実行するとQueueトリガーが動きます。
まとめ
いい感じにローカル環境でFunctionをテストできるようになったのでこれでよりFunction Appが身近なものになりました。
ほかのトリガーもこの要領で使えるはずなのでバンバン使ってみましょう。