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が身近なものになりました。
ほかのトリガーもこの要領で使えるはずなのでバンバン使ってみましょう。


