前言
在前一篇使用 Visual Studio 建立 Azure Function,
建立了一個 Http Trigger Function ,是將 訊息 Response 出去,
接下來可以將訊息放到 Storage Queue 之中,
並新增一個 Queue trigger Function 來取得 Queue 中的資料,
並存到 Blob 之中
實作
1.加入 Microsoft.Azure.WebJobs.Extensions.Storage 及 Azure.Storage.Blobs 套件
在 Nuget 中加入 Microsoft.Azure.WebJobs.Extensions.Storage 及 Azure.Storage.Blobs 套件
2.加入 Queue 的 Binding
原有的 Function1 加入 Queue 的 Binding ([Queue("messages", Connection="AzureWebJobsStorage")] IAsyncCollector<string> messageQueue
),
1 | using System.IO; |
設定好 Queue 的 Binding 後,就可以將訊息放到 Queue 之中(await messageQueue.AddAsync(responseMessage)
)
因為是使用 Local 測試,所以 Connection 設定為 AzureWebJobsStorage
這裡可以先執行程式,試一下訊息是否會新增到 Queue 之中,
可以透過 Azure Storage Explorer 來查看
3.新增 Queue trigger Function
新增名稱為 QueueListeners 的 Queue trigger Function,
並設定 Connection string setting name 及 Queue name
4.加入 Blob 的 Binding
因為要將 Queue 內的訊息寫到 Blog 之中,
所以在 QueueListeners 的 Run Method 要加入 Blob 的 Binding
1 | using System; |
當 messages Queue 有訊息時,就會 Trigger QueueListeners Function,
並將訊息當成參數傳入,所以再將訊息透過 UploadAsync
寫到 Blob
執行後,可以發現 message Queue 中的訊息已被 QueueListeners Function 處理完畢,
messages Blob 將每個 message Queue 的訊息存成文字檔。
參考資源
Migration Guide: From Microsoft.Azure.Storage.Blob to Azure.Storage.Blobs
Update Your Azure Functions Table Storage Bindings
Azure Storage Explorer