在本文中,将向Azure IoT Hub发送一些数据,并将Azure函数与IoT Hub连接,使用IoTHubTrigger事件中心触发器属性。如果准备好了,让开始吧。
正如所说,这篇文章是物联网系列文章的一部分,所以如果已经阅读了关于这个话题的前几篇文章,理解这个概念可能会更容易。在开始本文之前,请确保已经创建了一个正在运行的Azure IoT Hub。可以通过连接实际设备,比如MXChip,或者使用模拟设备来发送消息到这个IoT Hub。
将在Visual Studio中创建一个Azure函数应用,如果不确定如何创建和发布Azure函数,请阅读前一篇文章的这个部分。现在让创建一个新的解决方案。
一旦点击“确定”,一个新的Azure函数将为生成,其中包含一些初始代码。让按照下面的方式编辑函数:
using Microsoft.Azure.EventHubs;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
using System.Text;
using IoTHubTrigger = Microsoft.Azure.WebJobs.EventHubTriggerAttribute;
namespace IoTHubTrigger_Azure_Function_and_Azure_IoT_Hub
{
public static class IoTHubFunc
{
[FunctionName("IoTHubData")]
public static void Run(
[IoTHubTrigger("messages/events", Connection = "IoTHubTriggerConnection", ConsumerGroup = "FuncGroup")]EventData message,
ILogger log)
{
log.LogInformation($"C# IoT Hub trigger function processed a message: {Encoding.UTF8.GetString(message.Body.Array)}");
}
}
}
在这里,IoTHubTriggerConnection是在local.settings.json文件中提供的连接字符串。如果有很多应用程序需要从IoT Hub接收数据,消费者组就会发挥作用。下面是EventHubTriggerAttribute类的定义。
public sealed class EventHubTriggerAttribute : Attribute
{
public EventHubTriggerAttribute(string eventHubName);
public string EventHubName { get; }
public string ConsumerGroup { get; set; }
public string Connection { get; set; }
}
正如之前提到的,可以通过两种方式向Azure IoT Hub发送数据。
一旦数据发送,可以在Azure IoT Hub的概览部分看到消息接收计数。
所以,IoT Hub已经开始从设备接收消息,现在可以使用Azure函数通过IoT Hub触发器从IoT Hub拉取数据。运行函数应用,模拟设备应用程序,并查看输出。
正如在输出中看到的,Azure函数应用立即从Azure IoT hub接收数据。现在可以对这些数据执行任何操作。将留给来决定。
现在已经介绍了: