教程:将逻辑应用连接到 Azure IoT 套件远程监视预配置解决方案
Microsoft Azure IoT 套件远程监视预配置解决方案以一套端到端功能集演示 IoT 解决方案,是快速入门的好工具。 本教程引导将逻辑应用连接到 Microsoft Azure IoT 套件远程监视预配置解决方案。 下述步骤演示了如何将 IoT 解决方案连接到业务流程,更进一步地利用该方案。
如果要查找有关如何设置远程监视预配置解决方案的演练,请参阅教程:IoT 预配置解决方案入门。
开始本教程之前,必须:
- 在 Azure 订阅中预配远程监视预配置解决方案。
- 创建 SendGrid 帐户,以便发送可触发业务流程的电子邮件。 可以在 SendGrid 中单击“免费试用”来注册一个免费试用帐户。 注册免费试用帐户后,需要在 SendGrid 中创建一个用于授权发送邮件的 API 密钥。 本教程稍后需要此 API 密钥。
若要完成本教程,需要使用 Visual Studio 2015 或 Visual Studio 2017 修改预配置解决方案后端中的操作。
假设已经设置了远程监视预配置解决方案,请在 Azure 门户中导航到该解决方案的资源组。 资源组的名称与在预配远程监视解决方案时选择的解决方案名称相同。 在资源组中,你可以查看解决方案的所有预配的 Azure 资源。 以下屏幕截图显示了远程监视预配置解决方案的“资源组”边栏选项卡示例:
要开始,请将逻辑应用设置为使用预配置的解决方案。
设置逻辑应用
在 Azure 门户中,单击资源组边栏选项卡顶部的“添加”。
搜索“逻辑应用”,选择它,并单击“创建”。
填写“名称”,并使用预配远程监视解决方案时使用的相同“订阅”和“资源组”。 单击“创建”。
部署完成后,会看到逻辑应用列为资源组中的资源。
单击逻辑应用以导航到“逻辑应用”边栏选项卡,选择“空白逻辑应用”模板以打开 Logic Apps 设计器。
选择 “请求”。 此操作会将带特定 JSON 格式化有效负载的传入 HTTP 请求指定为触发器。
将以下代码贴到请求正文 JSON 架构中:
{ "$schema": "http://json-schema.org/draft-04/schema#", "id": "/", "properties": { "DeviceId": { "id": "DeviceId", "type": "string" }, "measuredValue": { "id": "measuredValue", "type": "integer" }, "measurementName": { "id": "measurementName", "type": "string" } }, "required": [ "DeviceId", "measurementName", "measuredValue" ], "type": "object" }
注意
可在保存逻辑应用后复制 HTTP post 的 URL,但必须先添加一个操作。
单击手动触发器下的“+ 新建步骤”。 然后单击“添加操作”。
搜索“SendGrid - 发送电子邮件”并单击它。
输入连接名称,例如 SendGridConnection,输入设置 SendGrid 帐户时创建的 SendGrid API 密钥,并单击“创建”。
在“发件人”和“收件人”字段中添加自己的电子邮件地址。 将“远程监视警报 [DeviceId]”添加到“主题”字段。 在“电子邮件正文”字段中,添加设备 [DeviceId] 报告了值为 [measuredValue] 的 [measuredName]。可以通过单击“可以插入上一步骤”部分中的数据来添加 [DeviceId]、[measureName]和 [measuredValue]。
单击顶部菜单中的“保存”。
单击“请求”触发器和“指向此 URL 的 Http Post”值的副本。 本教程稍后需要此 URL。
注意
通过逻辑应用,可以运行多个不同类型的操作,包括 Office 365 中的操作。
设置 EventProcessor Web 作业
在本部分中,会将预配置解决方案连接到创建的逻辑应用上。 若要完成此任务,需添加 URL 以触发逻辑应用在设备感应器值超过阙值时执行操作。
使用 git 客户端克隆最新版的 azure-iot-remote-monitoring github 存储库。 例如:
git clone https://github.com/Azure/azure-iot-remote-monitoring.git
在 Visual Studio 中,从存储库的本地副本打开 RemoteMonitoring.sln。
在 Infrastructure\Repository 文件夹中打开 ActionRepository.cs 文件。
使用逻辑应用中记下的指向此 URL 的 Http Post 更新 actionIds 字典,如下所示:
private Dictionary<string,string> actionIds = new Dictionary<string, string>() { { "Send Message", "<Http Post to this URL>" }, { "Raise Alarm", "<Http Post to this URL>" } };
在解决方案中保存所做的更改并退出 Visual Studio。
从命令行部署
在本部分中,会部署已更新的远程监视解决方案,以替换当前正在 Azure 中运行的版本。
遵循开发设置说明来设置环境,以便为部署做好准备。
若要在本地部署,请遵循本地部署说明。
若要部署到云并更新现有的云部署,请遵循云部署说明。 使用原始部署的名称作为部署名称。 例如,如果原始部署称为 demologicapp,请使用以下命令:
build.cmd cloud release demologicapp
生成脚本运行时,请务必使用预配解决方案时所用的相同 Azure 帐户、订阅、区域和 Active Directory 实例。
了解逻辑应用的工作动态
预配解决方案时,远程监视预配置解决方案默认设置有两个规则。 这两个规则位于 SampleDevice001 设备上:
- 温度 > 38.00
- 湿度 > 48.00
温度规则触发引发警报操作,湿度规则触发 SendMessage 操作。 假设为这两个操作的 ActionRepository 类使用了相同的 URL,则针对任一规则触发逻辑应用。 这两个规则使用 SendGrid 将电子邮件发送至“收件人”地址,其中包含警报的详细信息。
注意
逻辑应用继续在每次达到阙值时触发。 为避免不必要的电子邮件,可在解决方案门户中禁用规则或在 Azure 门户中禁用逻辑应用。
除了接收电子邮件以外,还可以查看逻辑应用在门户中的运行情况:
后续步骤
现在,已使用逻辑应用将预配置解决方案连接到业务流程,接下来可以详细了解自定义预配置解决方案的选项: