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

Important

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

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

Prerequisites

创建异常检测器资源

  1. 登录到 Azure 门户

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

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

    设置
    Name 所需名称(2-64 个字符)
    Subscription 选择相应的订阅
    位置 选择附近任何可用的位置
    定价层 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. 选择Find device功能并查找IoT Edge设备。

  3. 选择“ 创建 ”按钮。

  4. 选择AnomalyDetectoronIoTEdge模块。

    在 IoT Edge Modules 用户界面的图像中,突出显示了 AnomalyDetectoronIoTEdge 链接,并用红色框标出,以指示这是要选择的项目。

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

    1. 请将Eula的值保持为“accept”。

    2. 请使用您的Azure AI服务终结点来填写 Billing

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

    环境变量,用红框突出显示了需要为终结点和 API 密钥填写值的区域

  6. 选择“更新”

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

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

  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 地址。

请求网址 Purpose
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 标头和正文格式。

容器的主页

后续步骤