Azure IoT Hub入門系列 (12)- 10分鐘實現Azure Function 通過IoT Hub Trigger處理設備到雲的消息(C#)
本文介紹如下:
1.C# 語言和VS Code 開發Azure Functions的準備工作;
2.設備發送遙測消息到 IoT Hub後使用Azure Function 的IoT Hub Trigger 處理遙測消息;
3.使用VS Code 部署Azure Function;--本步驟與上一講 Java版本一致,本講不再贅述,請參照
《Azure IoT Hub入門系列 (11)- 10分鐘實現Azure Function 通過IoT Hub Trigger處理設備到雲的消息(Java)》
開發語言:C# 開發工具:VS Code
視頻介紹:https://www.51azure.cloud/post/2020/6/9/azure-iot-hub-12-10-azure-function-iot-hub-trigger
圖文介紹:
1. .Net Core SDK 安裝:
下載地址:https://dotnet.microsoft.com/download
雙擊下一步下一步進行安裝:
CTRL+SHIFT+P :
選擇一個文件夾:
選擇開發語言:
選擇IoT Hub Trigger 模板:
注意,此處有幾個步驟沒有截圖,保持默認即可。
創建本地配置文件:
跳過Event Hub Namespage:
Endpoint 保持不變:
選擇已有的Storage 或新建 storage,該Storage是Azure Functions環境必須的參數;
執行結束,可看到如下頁面:
需要修改Connection 的名稱和local.settings.json 文件:
修改Function代碼,可以從SystemProperties取到設備ID:
using IoTHubTrigger = Microsoft.Azure.WebJobs.EventHubTriggerAttribute;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Azure.EventHubs;
using System.Text;
using System.Net.Http;
using Microsoft.Extensions.Logging;
namespace Company.Function
{
public static class IotHubTriggerCSharp1
{
private static HttpClient client = new HttpClient();
[FunctionName("IotHubTriggerCSharp1")]
public static void Run([IoTHubTrigger("messages/events", Connection = "IoTHubBuintinEventHubstring")]EventData message, ILogger log)
{
log.LogInformation($"C# IoT Hub trigger function processed a message: {Encoding.UTF8.GetString(message.Body.Array)}");
log.LogInformation($"Device ID: {message.SystemProperties["iothub-connection-device-id"].ToString()}");
//TODO
// SAVE TO DATABASE OR SOME OTHER LOGIC
}
}
}
運行Device 程序, 運行Function,可以在本地檢查運行結果:
已經取出了 遙測消息 和 特定的屬性:
部署Functions的步驟本節就不演示了,可參照上一講JAVA版本的Functions 部署。