ごった煮

色々な事を書いてます

Queueトリガーをローカルでデバッグする

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の項目が追加されているのでそれを選択します。

image


選択すると、別途ダイアログが表示されて、使いたいトリガーを選択することになるので、Queue Triggerを選択します。

image

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トリガーが動きます。

image


まとめ

いい感じにローカル環境でFunctionをテストできるようになったのでこれでよりFunction Appが身近なものになりました。

ほかのトリガーもこの要領で使えるはずなのでバンバン使ってみましょう。