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

 

视频介绍:

 

图文介绍:

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