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