Azure IoT Hub入門系列 (12)- 10分鐘實現Azure Function 通過IoT Hub Trigger處理設備到雲的消息(C#)

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 部署。


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章