将异常检测器单变量模块部署到 IoT Edge

重要

从 2023 年 9 月 20 日开始,将无法创建新的异常检测器资源。 异常检测器服务将于 2026 年 10 月 1 日停用。

了解如何将 Azure AI 服务异常检测器模块部署到 IoT Edge 设备。 将模块部署到 IoT Edge 后,它将与其他模块一起在 IoT Edge 中作为容器实例运行。 它公开了与在标准 Docker 容器环境中运行的异常检测器容器实例完全相同的 API。

先决条件

创建异常检测器资源

  1. 登录 Azure 门户

  2. 选择创建异常检测器 资源。

  3. 输入所有必需的设置:

    设置
    名称 所需名称(2-64 个字符)
    订阅 选择相应的订阅
    位置 选择附近任何可用的位置
    定价层 F0 - 每秒 10 次调用,每月 20,000 个事务。
    或:
    S0 - 每秒 80 次调用
    资源组 选择可用的资源组
  4. 选择“创建”并等待创建资源。 创建资源后,导航到“资源”页

  5. 收集配置的 endpoint 和 API 密钥:

    门户中的“密钥和终结点”选项卡 设置 “值”
    概述 端点 复制终结点。 它看起来类似于 https://<your-resource-name>.cognitiveservices.azure.cn/
    “键” API 密钥 复制两个密钥中的 1 个。 它是一个由 32 个字母数字组成的字符串(不包含空格或短划线),即 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

将异常情况检测模块部署到 Edge

  1. 在 Azure 门户中,在搜索栏中输入“IoT Edge 上的异常检测器”并打开 Azure 市场搜索结果。

  2. 这会使你转到 Azure 门户的“IoT Edge 模块的目标设备”页。 提供下列必需信息。

    1. 选择订阅。

    2. 选择你的 IoT 中心。

    3. 选择“查找设备”,查找 IoT Edge 设备。

  3. 选择“创建”按钮。

  4. 选择“AnomalyDetectoronIoTEdge”模块。

    Image of IoT Edge Modules user interface with AnomalyDetectoronIoTEdge link highlighted with a red box to indicate that this is the item to select.

  5. 导航到“环境变量”并提供以下信息。

    1. 将“Eula”的值保留为“接受”。

    2. 使用 Azure AI 服务终结点填写“账单”。

    3. 使用 Azure AI 服务 API 密钥填写“ApiKey”。

    Environment variables with red boxes around the areas that need values to be filled in for endpoint and API key

  6. 选择“更新”

  7. 选择“下一步: 路由”以定义路由。 将来自所有模块的所有消息定义为传递到 Azure IoT 中心。 若要了解如何声明路由,请参阅在 IoT Edge 中建立路由

  8. 选择“下一步: 审阅 + 创建”。 可以预览用于定义部署到 IoT Edge 设备的所有模块的 JSON 文件。

  9. 选择“创建”,启动模块部署。

  10. 完成模块部署后,你将返回到 IoT 中心的“IoT Edge”页。 从 IoT Edge 设备列表中选择你的设备,以查看其详细信息。

  11. 向下滚动并查看列出的模块。 检查新模块的运行时状态是否为“正在运行”。

若要解决 IoT Edge 设备的运行时状态问题,请参阅故障排除指南

在 IoT Edge 设备上测试异常检测器

对运行 Azure AI 服务容器的 Azure IoT Edge 设备进行 HTTP 调用。 该容器提供了基于 REST 的终结点 API。 使用主机 http://<your-edge-device-ipaddress>:5000 以获得模块 API。

或者,可以在 Azure IoT Edge 设备上使用异常检测器客户端库创建模块客户端,然后在边缘调用正在运行的 Azure AI 服务容器。 使用主机终结点 http://<your-edge-device-ipaddress>:5000,并将主机密钥留空。

如果边缘设备不允许端口 5000 上的入站通信,则需要创建新的入站端口规则。

对于 Azure VM,可在“虚拟机”>“设置”>“网络”>“入站端口规则”>“添加入站端口规则”下进行设置。

有几种方法可用于验证模块是否正在运行。 找到相关边缘设备的外部 IP 地址和公开端口,并打开你常用的 Web 浏览器。 使用以下各种请求 URL 验证容器是否正在运行。 下面列出的示例请求 URL 是 http://<your-edge-device-ipaddress:5000,但是你的特定容器可能会有所不同。 请记住,需要使用边缘设备的外部 IP 地址。

请求 URL 用途
http://<your-edge-device-ipaddress>:5000/ 容器提供主页。
http://<your-edge-device-ipaddress>:5000/status 同样使用 GET 进行请求,这将验证用于启动容器的 api-key 是否有效,而不会导致终结点查询。 此请求可用于 Kubernetes 运行情况和就绪情况探测
http://<your-edge-device-ipaddress>:5000/swagger 容器为终结点提供一组完整的文档以及“尝试”功能。 使用此功能可以将设置输入到基于 Web 的 HTML 表单并进行查询,而无需编写任何代码。 查询返回后,将提供示例 CURL 命令,用于演示所需的 HTTP 标头和正文格式。

Container's home page

后续步骤