TL;DR
Visual Studio でQueue Triggerを使ったAzure Functions のAPIを実装します。
開発環境の準備は含まれないため、Visual Studio を使用する Azure Functions の開発 などを参考にしてください。
目次
開発環境
- Visual Studio 2017
- Azure Functions v2 (.NET Core)
プロジェクトを作成する
- Visual Studioで[ファイル > 新規作成 > プロジェクト]を選択し、[Visual C# > Cloud > Azure Functions]を選択して、任意の場所に設定してOKをクリック。
- Queue trigger を選択してOKをクリック。
- デフォルトでv2が選択されている
- ローカル実行の場合は、Connection string setting は空でOK
- Function1という名前のサンプルが生成される。
Function1.cs
public static class Function1 { [FunctionName("Function1")] public static void Run([QueueTrigger("myqueue-items", Connection = "")]string myQueueItem, ILogger log) { log.LogInformation($"C# Queue trigger function processed: {myQueueItem}"); } }
local.settings.json
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet" } }
QueueTriggerAttributeのQueueNameに指定したキューにデータを登録するとトリガーが発動し処理が動きます。
Local実行の場合はConnectionStringは空で大丈夫です。local.settings.jsonでUseDevelopmentStorage=true
が設定されていれば、Azureストレージエミュレータに接続します。1
接続文字列に関してより詳しくは下記のBlogなどが参考になるかと思います。
ローカルで実行する
Newtonsoft.Json.JsonReaderException が発生する場合
デバッグ実行した際に、以下の例外が発生する場合は、デフォルトでセットアップされたMicrosoft.Azure.WebJobs.Extensions.Storageの3.0.0の既知のバグの可能性があるので更新してみてください。2