首先,我会说我是Azure的新手。 我大部分的云经验来自AWS。
我正在使用IoT中心和连接的设备,该设备每1分钟发送一次消息。
到目前为止,根据微软团队的指导,我做了什么:
https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-live-data-visualization-in-web-apps
现在,我想在AWS中创建类似Lambda函数的功能,据我在Azure中的理解,他们将其称为Azure功能。我想创建一个函数,该函数在每次收到来自设备的新消息时触发,执行一些操作(比如说加1),然后将其发送回去(这样我就可以将“新”数据拉到后端)。 / p>
到目前为止,我所做的是创建一个新的“ Azure Function”(我想这就像功能容器一样?) 然后,我尝试通过单击“添加新”并单击“ IoT中心(事件中心)”模板来创建新功能。但是,当我找到代码并尝试对其进行测试时,我会收到404响应。我还需要创建其他东西吗?我需要在IoT中心中创建一个新的“事件”吗?我需要创建一个新的“事件中心”吗?
谢谢!
秒 我尝试用Google搜索它,但答案必须是旧门户网站或在C#中,我正在使用Node和Python。
答案 0 :(得分:2)
我试图在下面回答您的问题:-
我想创建一个函数,每次新 已收到来自我设备的消息,请执行某些操作(假设添加1) 然后将其发送回去(这样我就可以将“新”数据拉到后端)。
如果您的意思是将数据发送回IoTHub
,那对我来说似乎不合逻辑,因为操纵的数据不是设备发送的。我宁愿将我的Azure功能当作后端,然后将数据保存/发送到某些持久性存储或消息代理中,以便其他使用者可以访问它们。
到目前为止,我所做的是创建一个新的“ Azure Function”(我猜是 就像功能的容器?)然后我尝试创建一个新的容器 单击“添加新功能”,然后单击“ IoT中心(事件中心)” 模板。但是当我进入代码并尝试对其进行测试时,我得到了404 响应。我还需要创建其他东西吗?
可以使用几种方法来创建与Event Hub作为触发器兼容的内置终结点的Azure函数。检查下图。可以在here中找到有关内置端点的相关信息。
我需要在IoT中心中创建一个新的“事件”吗?
不确定这是什么意思。流程的工作方式
同样,您可以将设备孪生更改事件,生命周期事件路由到内置端点。
我需要创建一个新的“事件中心”吗?
不需要,因为内置终结点与事件中心兼容。检查文档here。除非您根据业务用例有特定需要,否则不需要自定义事件中心端点。
但是当我找到我的代码并尝试对其进行测试时,我会收到404响应。 现在,每当在内置端点上收到新事件/消息时,我们就需要触发azure函数。您可以通过几种方法来做到这一点。
上面要注意的要点是在function.json文件中正确设置了天蓝色函数binding [trigger]。 Here是触发器的外观。
MyEventHub
和myEventHubReadConnectionAppSetting
的值应从“应用程序”设置中选择。检查下面的图像。
我建议您仔细阅读本page,以深入了解事件中心触发器如何与Azure函数一起工作。
完成上述所有步骤后,可以在门户中打开Azure功能应用程序,然后转到“功能”应用程序刀片中的“功能”部分。在那里,您可以监视,编码和测试,检查Azure功能的集成。
答案 1 :(得分:1)
this示例中涵盖了这种情况。该示例使用JavaScript。它将消息写入数据库,但是您可以根据需要更改此部分。
要回答您的其他一些问题: IoTHub带有内置的事件中心,因此无需创建其他任何东西!您的Azure功能将使用事件中心触发器来订阅来自IoT中心的事件。默认情况下,设备发送到IoT中心的每个事件都将在该终结点上结束,因此要“创建”新事件,请使用设备SDK(在设备上或计算机上)将消息发送到IoT中心。 / p>
您提到了“发回”,但是在大多数情况下,您不必响应IoT中心消息。例如,您可以将消息存储在数据库中,并构建一个从该数据库读取的Web应用程序。您还可以在Web应用程序中获取实时更新,但这不在您的问题范围内。