你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:使用 Azure 逻辑应用监视 IoT 设备和发送通知

使用 Azure 逻辑应用监视来自 IoT 中心的传入设备遥测,并在触发警报时发送通知。

端到端关系图

Azure 逻辑应用 可帮助跨本地和云服务、多个企业和各种协议协调工作流。 逻辑应用以触发器开头,然后是一个或多个可以使用内置控件(如条件和迭代器)进行顺序排列的动作。 这种灵活性使逻辑应用成为 IoT 监视方案的理想 IoT 解决方案。 例如,从设备到达 IoT 中心终结点的数据可以启动逻辑应用工作流,将数据存储在 Azure 存储 blob 中,发送电子邮件警报来警告数据异常,安排技术人员访问(如果设备报告故障等)。

将在本教程中执行以下任务:

创建服务总线队列。 在 IoT 中心创建一个路由,如果消息包含异常温度读数,则将消息发送到服务总线队列。 创建一个逻辑应用,用于监视传入队列的消息并发送电子邮件警报。

运行在您的设备上的客户端代码为其发送到 IoT 中心的每个遥测消息设置了应用程序属性temperatureAlert。 当客户端代码检测到高于给定阈值的温度时,它将此属性设置为 true;否则,它将属性设置为 false

到达您的 IoT 中心的消息如下所示:消息正文中包含遥测数据,应用程序属性中包含temperatureAlert属性(系统属性未显示)。

{
  "body": {
    "messageId": 18,
    "deviceId": "Raspberry Pi Web Client",
    "temperature": 27.796111770668457,
    "humidity": 66.77637926438427
  },
  "applicationProperties": {
    "temperatureAlert": "false"
  }
}

如果没有 Azure 订阅,请在开始之前创建一个免费帐户

先决条件

在开始本教程之前准备以下先决条件。

创建服务总线命名空间和队列

创建服务总线命名空间和队列。 在本文后面部分,我们将在 IoT 中心创建路由规则,以将包含温度警报的消息定向到服务总线队列。 逻辑应用监视传入消息的队列,并为每个警报发送通知。

创建服务总线命名空间

  1. Azure 门户中,使用搜索栏搜索并选择 服务总线

  2. 选择 “创建 ”以创建服务总线命名空间。

  3. “创建命名空间 ”窗格中,提供以下信息:

    参数 价值
    Subscription 选择包含 IoT 中心的同一订阅。
    资源组 选择包含 IoT 中心的同一资源组。
    命名空间名称 为服务总线命名空间提供名称。 命名空间在 Azure 中必须是唯一的。
    位置 选择 IoT 中心使用的相同位置。
    定价层 从下拉列表中选择 “基本 ”。 基本层足以用于本教程。
  4. 选择“查看 + 创建”

  5. 选择 创建

  6. 等待部署完成,然后选择“转到资源”

将服务总线队列添加到命名空间

  1. 在服务总线命名空间的 “概述 ”页上,选择“ 队列”。

    用于添加队列的命名空间概述页的屏幕截图。

  2. 在“ 名称” 字段中,提供队列的名称。 接受其他字段的默认值,然后选择“ 创建”。

  3. 在服务总线命名空间中,从资源菜单的“设置”部分选择“共享访问策略”。

  4. 选择 RootManageSharedAccessKey 策略以打开其详细信息。

  5. 复制 主连接字符串 的值,并在配置逻辑应用时将其保存到本教程的后面部分使用。

将自定义终结点和路由规则添加到 IoT 中心

将服务总线队列的自定义终结点添加到 IoT 中心。 然后,创建一个消息路由规则,将包含温度警报的消息定向到该终结点,在那里它们将由逻辑应用程序处理。 路由规则使用路由查询 temperatureAlert = "true"根据设备上运行的客户端代码设置的应用程序属性的值 temperatureAlert 转发消息。 若要了解详细信息,请参阅 基于消息属性的消息路由查询

添加自定义终结点和路由

  1. 在 Azure 门户中,转到 IoT 中心。

  2. “中心设置”下的“资源”菜单中,选择“ 消息路由 ”,然后选择“ 添加”。

    显示“添加”按钮位置的屏幕截图,用于在 IoT 中心添加新路由。

  3. “终结点 ”选项卡上,通过提供以下信息为服务总线队列创建终结点:

    参数 价值
    终结点类型 选择 服务总线队列
    端点名称 为映射到服务总线队列的新终结点提供名称。
    服务总线命名空间 使用下拉菜单选择在上一部分创建的服务总线命名空间。
    服务总线队列 使用下拉菜单选择在命名空间中创建的服务总线队列。

    显示如何为路由创建服务总线队列终结点的屏幕截图。

  4. 选择“ 创建 + 下一步”。

  5. 在“ 路由 ”选项卡上,输入以下信息以创建指向服务总线队列终结点的路由:

    参数 价值
    名称 提供一个唯一的路由名称。
    数据源 保留默认 设备遥测消息 数据源。
    路由查询 输入 temperatureAlert = "true" 为查询字符串。

    显示使用查询添加路由的屏幕截图。

  6. 选择“ 创建 + 跳过扩充”。

为通知配置逻辑应用

在上一部分中,您已将 IoT 中心设置为将包含温度警报的消息路由到您的服务总线队列。 现在,设置一个逻辑应用来监视服务总线队列,并在将消息添加到队列时发送电子邮件通知。

创建逻辑应用

  1. 在 Azure 门户中,搜索并选择 逻辑应用

  2. 选择 “添加” 以创建新的逻辑应用。

  3. “创建逻辑应用的基本信息”选项卡上输入以下信息:

    参数 价值
    资源组 选择包含 IoT 中心的同一资源组。
    名称 为逻辑应用提供名称。
    Region 选择一个离您较近的位置。
    计划类型 选择“ 消耗”,这足以满足本教程的需求。

    显示如何在 Azure 门户中创建逻辑应用的屏幕截图。

  4. 选择“查看 + 创建”

  5. 选择 创建

  6. 部署完成后,选择 转到资源 以打开您的逻辑应用。

配置逻辑应用触发器

  1. 在 Azure 门户中的逻辑应用资源页上,从资源菜单的“开发工具”部分打开逻辑应用设计器

  2. 在设计器中,向下滚动到 “模板 ”并选择 “空白逻辑应用”。

    显示选择空白逻辑应用模板的屏幕截图。

  3. 选择“ 所有 ”选项卡以显示所有连接器和触发器,然后选择 “服务总线”。

    选择“服务总线”,开始在 Azure 门户中创建逻辑应用。

  4. “触发器”下,选择“一个或多个消息到达队列时”(自动完成)。

    在 Azure 门户中为逻辑应用选择触发器。

  5. 创建服务总线连接。

    1. 提供 连接名称 ,然后粘贴从服务总线命名空间复制的 连接字符串

    2. 选择 创建

    3. 在下一个屏幕上,使用下拉菜单选择在服务总线命名空间中创建的队列。 然后,输入175“最大消息计数”。

      显示逻辑应用设计器中配置队列设置的屏幕截图。

  6. 在逻辑应用设计器菜单上选择“ 保存” 以保存更改。

配置逻辑应用操作

  1. 在逻辑应用设计器中选择 “新建”步骤

  2. 创建 SMTP 服务连接。

    1. 搜索并选择 SMTP

      显示在逻辑应用设计器中选择 SMTP 连接的屏幕截图。

    2. 选择发送电子邮件(V3)作为此步骤的动作。

    3. 提供 连接名称,然后使用要用于发送通知消息的电子邮件帐户的 SMTP 信息填写其余字段。

      根据邮件提供商,使用以下链接查找 SMTP 信息:

      注释

      可能需要禁用 TLS/SSL 才能建立连接。 如果是这种情况,并且希望在建立连接后重新启用 TLS,请参阅本部分末尾的可选步骤。

      显示配置逻辑应用设计器中的 SMTP 连接设置的屏幕截图。

    4. 选择 创建

  3. 配置“发送电子邮件”操作。

    1. “发送电子邮件”步骤的“添加新参数”下拉列表中,选择以下参数:

      • From
      • 主题
      • 正文

      单击或点击屏幕上的任意位置以关闭选择框。

      选择要包含在电子邮件中的 SMTP 连接电子邮件字段。

    2. 输入上一步中选择的电子邮件参数的以下信息:

      参数 价值
      From 为 SMTP 连接配置的电子邮件地址。
      一个或多个要用来发送通知电子邮件的电子邮件地址。
      主题 High temperature detected
      正文 High temperature detected

      如果“ 添加动态内容 ”对话框打开,请选择“ 隐藏 ”将其关闭。 本教程中不使用动态内容。

      提供 SMTP 连接电子邮件字段的详细信息。

  4. 选择 “保存” 以保存 SMTP 连接。

  5. (可选)如果必须禁用 TLS 才能与电子邮件提供商建立连接并想要重新启用它,请执行以下步骤:

    1. “逻辑应用 ”窗格的 “开发工具”下,选择 “API 连接”。

    2. 从 API 连接列表中选择 SMTP 连接。

    3. smtp API 连接 窗格的 “常规”下,选择“ 编辑 API 连接”。

    4. “编辑 API 连接 ”窗格中,选择“ 启用 SSL?”,重新输入电子邮件帐户的密码,然后选择“ 保存”。

      在 Azure 门户中的逻辑应用中编辑 SMTP API 连接。

现在,逻辑应用已准备好处理来自服务总线队列的温度警报,并将通知发送到电子邮件帐户。

测试逻辑应用

开始从 IoT 设备发送温度消息以测试监视和通知管道。

  1. 在设备上启动客户端应用程序。 客户端代码会随机输出遥测消息,当温度超过30摄氏度时,将temperatureAlert属性设置为true

  2. 应开始接收逻辑应用发送的电子邮件通知。

    注释

    电子邮件服务提供商可能需要验证发件人标识,以确保是你发送电子邮件的人。

清理资源

如果不再需要在本教程中创建的资源,请将其删除,并在门户中删除资源组。 为此,请选择包含 IoT 中心的资源组,然后选择“ 删除”。

或者,使用 CLI:

# Delete your resource group and its contents
az group delete --name <RESOURCE_GROUP_NAME>

后续步骤

在本教程中,你创建了一个逻辑应用,用于连接 IoT 中心和邮箱,以便进行温度监视和通知。

若要继续开始使用 Azure IoT 中心并浏览所有扩展的 IoT 方案,请参阅以下内容: