教程:使用逻辑应用从 Azure 数字孪生空间接收通知

重要

已发布新版本的 Azure 数字孪生服务。 对于新服务的扩展功能,最初的 Azure 数字孪生服务(如本文档集中所述)将在2020年结束后停用。

若要查看新服务的文档,请访问活动Azure 数字孪生预览版文档

部署 Azure 数字孪生实例、预配空间并实现用于监视特定条件的自定义函数以后,即可在受监视的条件满足时通过电子邮件通知办公室主任。

第一个教程中,你配置了一栋虚构大楼的空间图, 其中一个房间包含用于移动、二氧化碳和温度的传感器。 在第二个教程中,你预配了图形和一个用户定义函数,用于监视这些传感器值并在房间为空且温度和二氧化碳处于某个令人舒适的范围内时触发通知。

本教程介绍如何将这些通知与 Azure 逻辑应用集成,以便在此类房间可用时发送电子邮件。 办公室主任可以根据此信息帮助员工预订工作效率最高的会议室。

在本教程中,你将了解如何执行以下操作:

  • 将事件与 Azure 事件网格集成。
  • 使用逻辑应用发出事件通知。

先决条件

本教程假定你已配置预配 Azure 数字孪生设置。 在继续操作之前,请确保已具备以下条件:

提示

如果要预配新实例,请使用唯一的数字孪生实例名称。

将事件与事件网格集成

在此部分,请设置一个事件网格,以便从 Azure 数字孪生实例收集事件,然后将事件重定向到事件处理程序,例如逻辑应用。

创建事件网格主题

事件网格主题提供一个界面,用于路由用户定义的函数生成的事件。

  1. 登录 Azure 门户

  2. 在左窗格中,选择“创建资源” 。

  3. 搜索并选择“事件网格主题” 。 选择“创建” 。

  4. 为事件网格主题输入一个“名称”,然后选择“订阅”。 选择用于数字孪生实例的或者为其创建的“资源组” ,然后选择“位置”。 选择“创建” 。

    创建事件网格主题

  5. 从资源组浏览到事件网格主题,选择“概览”,将“主题终结点”的值复制到某个临时文件。 下一部分将需要此 URL。

  6. 选择“访问密钥”, 将密钥 1密钥 2 复制到某个临时文件。 在下一部分,将需要这些值来创建终结点。

    事件网格密钥

为事件网格主题创建终结点

  1. 在命令窗口中,确保当前位置为数字孪生示例的 occupancy-quickstart\src 文件夹。

  2. 在 Visual Studio Code 编辑器中打开 actions\createEndpoints.yaml 文件。 确保其包含以下内容:

    - type: EventGrid
      eventTypes:
      - SensorChange
      - SpaceChange
      - TopologyOperation
      - UdfCustom
      connectionString: <Primary connection string for your Event Grid>
      secondaryConnectionString: <Secondary connection string for your Event Grid>
      path: <Event Grid Topic Name without https:// and /api/events, e.g. eventgridname.region.eventgrid.azure.net>
    
  3. 将占位符 <Primary connection string for your Event Grid> 替换为密钥 1 的值 。

  4. 将占位符 <Secondary connection string for your Event Grid> 替换为密钥 2 的值 。

  5. 路径的占位符替换为事件网格主题的路径。 从主题终结点 URL 中删除 https:// 以及尾随的资源路径即可获取此路径。 它看起来应该类似于此格式:yourEventGridName.yourLocation.eventgrid.azure.net

    重要

    输入所有值,不带任何引号。 在 YAML 文件中,请确保在冒号之后至少有一个空格字符。 也可使用任何联机 YAML 验证程序(例如此工具)来验证 YAML 文件内容。

  6. 保存并关闭该文件。 在命令窗口中,当出现提示时,请运行以下命令并登录。

    dotnet run CreateEndpoints
    

    此命令为事件网格创建终结点。

    事件网格的终结点

使用逻辑应用发出事件通知

可以通过 Azure 逻辑应用服务为从其他服务接收的事件创建自动化任务。 在此部分,请设置逻辑应用,以便借助事件网格主题为从空间传感器路由的事件创建电子邮件通知。

  1. Azure 门户的左窗格中,选择“创建资源” 。

  2. 搜索并选择新的“逻辑应用”资源 。 选择“创建” 。

  3. 为逻辑应用资源输入一个名称,然后选择你的订阅资源组位置。 选择“创建” 。

    创建逻辑应用资源

  4. 在逻辑应用资源部署后将其打开,然后打开“逻辑应用设计器”窗格。

  5. 选择“当事件网格资源事件发生时”触发器。 展开“Azure 事件网格”选项,并在系统提示时使用 Azure 帐户登录到租户。 如果系统提示,针对事件网格资源选择“允许访问” 。 选择“继续”。

  6. 在“当资源事件发生时”窗口中,执行以下操作:

    a. 选择曾经用于创建事件网格主题的订阅

    b. 选择 Microsoft.EventGrid.Topics 作为资源类型

    c. 从资源名称对应的下拉框中选择事件网格资源。

    “逻辑应用设计器”窗格

  7. 选择“新步骤” 按钮。

  8. 在“选择操作”窗口中,执行以下操作:

    a. 搜索“分析 json”短语,然后选择“分析 JSON”操作。

    b. 在“内容”字段的“动态内容”列表中选择“正文”。

    c. 选择“使用示例有效负载生成架构”。 粘贴以下 JSON 有效负载,然后选择“完成”。

    {
    "id": "32162f00-a8f1-4d37-aee2-9312aabba0fd",
    "subject": "UdfCustom",
    "data": {
      "TopologyObjectId": "20efd3a8-34cb-4d96-a502-e02bffdabb14",
      "ResourceType": "Space",
      "Payload": "\"Air quality is poor.\"",
      "CorrelationId": "32162f00-a8f1-4d37-aee2-9312aabba0fd"
    },
    "eventType": "UdfCustom",
    "eventTime": "0001-01-01T00:00:00Z",
    "dataVersion": "1.0",
    "metadataVersion": "1",
    "topic": "/subscriptions/a382ee71-b48e-4382-b6be-eec7540cf271/resourceGroups/HOL/providers/Microsoft.EventGrid/topics/DigitalTwinEventGrid"
    }
    

    此有效负载包含虚构值。 逻辑应用使用此示例有效负载生成一个架构

    适用于事件网格的逻辑应用“分析 JSON”窗口

  9. 选择“新步骤” 按钮。

  10. 在“选择操作”窗口中,执行以下操作:

    a. 选择“控制”>“条件” 或从“操作” 列表中搜索“条件” 。

    b. 在第一个“选择值”文本框的“分析 JSON”窗口的“动态内容”列表中选择“eventType”。

    c. 在第二个“选择值”文本框中输入“UdfCustom”。

    所选条件

  11. If true 窗口中,执行以下操作:

    a. 选择“添加操作”,然后选择“Office 365 Outlook”。

    b. 从“操作”列表中选择“发送电子邮件 (V2)”。 选择“登录”, 使用电子邮件帐户凭据。 如果系统提示,请选择“允许访问”。

    c. 在“收件人”框中,输入用于接收通知的电子邮件 ID。 在“主题”中 输入文本“有关空间中空气质量差的数字孪生通知”, 然后从分析 JSON 的“动态内容”列表中选择“TopologyObjectId”。

    d. 在同一窗口中的“正文” 下,输入类似以下内容的文本:检测到房间内空气质量差,需要调整温度。 请根据需要使用“动态内容”列表中的元素进行详细阐述。

    逻辑应用的“发送电子邮件”选项

  12. 选择“逻辑应用设计器”窗格顶部的“保存”按钮 。

  13. 确保模拟传感器数据,方法是:在命令窗口中浏览到数字孪生示例的 device-connectivity 文件夹,然后运行 dotnet run

数分钟后,就会开始从此逻辑应用资源中获取电子邮件通知。

电子邮件通知

若要停止接收这些电子邮件,请转到门户中的逻辑应用资源,然后选择“概览”窗格。 选择“禁用”。

清理资源

如果不希望继续探索 Azure 数字孪生,可以删除本教程中创建的资源:

  1. Azure 门户的左菜单中依次选择“所有资源”、 数字孪生资源组、“删除”。

    提示

    如果在删除数字孪生实例时遇到麻烦,请使用已推出的包含修补程序的服务更新。 请重新尝试删除实例。

  2. 可以根据需要删除工作计算机上的示例应用程序。

后续步骤

若要了解如何可视化传感器数据、分析趋势和查找异常,请继续阅读下一教程:

也可详细了解 Azure 数字孪生中的空间智能图和对象模型: