영어로 읽기

다음을 통해 공유

使用 Azure CLI 部署 Azure IoT Edge 模块

适用于:IoT Edge 1.5 勾选标记 IoT Edge 1.5

중요

IoT Edge 1.5 LTS 是受支持的版本。 IoT Edge 1.4 LTS 的生命周期结束日期为 2024 年 11 月 12 日。 如果你使用的是较低的版本,请参阅更新 IoT Edge

使用业务逻辑创建 Azure IoT Edge 模块后,将其部署到设备以在边缘运行。 如果多个模块协同工作来收集和处理数据,请一次性部署所有这些模块。 明确声明连接它们的具体路由规则。

Azure CLI 是用于管理 Azure 资源(如 IoT Edge)的开源跨平台命令行工具。 它允许你管理 Azure IoT 中心资源、设备预配服务实例和现装链接中心。 新的 IoT 扩展使用设备管理和完整的 IoT Edge 功能等功能丰富了 Azure CLI。

本文介绍如何创建 JSON 部署清单,并使用该文件将部署推送到 IoT Edge 设备。 有关基于多个设备的共享标签创建针对这些设备的部署的信息,请参阅大规模地部署和监视 IoT Edge 模块

先决条件

配置部署清单

部署清单是一个 JSON 文档,其中描述了要部署的模块、数据在模块间的流动方式以及模块孪生的所需属性。 有关部署清单的工作原理以及如何创建它们的详细信息,请参阅 了解如何使用、配置和重用 IoT Edge 模块

若要使用 Azure CLI 来部署模块,请将部署清单在本地另存为 .json 文件。 使用下一部分中的文件路径运行命令并将配置应用到设备。

下面是一个基本部署清单,其中一个模块作为示例:

참고

此示例部署清单使用 IoT Edge 代理和中心的架构版本 1.1。 IoT Edge 版本 1.0.10 包含架构版本 1.1,支持模块启动顺序和路由优先级等功能。

{
  "content": {
    "modulesContent": {
      "$edgeAgent": {
        "properties.desired": {
          "schemaVersion": "1.1",
          "runtime": {
            "type": "docker",
            "settings": {
              "minDockerVersion": "v1.25",
              "loggingOptions": "",
              "registryCredentials": {}
            }
          },
          "systemModules": {
            "edgeAgent": {
              "type": "docker",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-agent:1.5",
                "createOptions": "{}"
              }
            },
            "edgeHub": {
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-hub:1.5",
                "createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
              }
            }
          },
          "modules": {
            "SimulatedTemperatureSensor": {
              "version": "1.0",
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5",
                "createOptions": "{}"
              }
            }
          }
        }
      },
      "$edgeHub": {
        "properties.desired": {
          "schemaVersion": "1.1",
          "routes": {
            "upstream": "FROM /messages/* INTO $upstream"
          },
          "storeAndForwardConfiguration": {
            "timeToLiveSecs": 7200
          }
        }
      },
      "SimulatedTemperatureSensor": {
        "properties.desired": {
          "SendData": true,
          "SendInterval": 5
        }
      }
    }
  }
}

部署到设备

应用使用模块信息配置的部署清单即可将模块部署至设备。

将目录切换到保存有部署清单的文件夹。 如果使用了 Visual Studio Code IoT Edge 模板之一,请使用解决方案目录的 config 文件夹中的 deployment.json 文件,而不是使用 文件。

使用以下命令将配置应用于 IoT Edge 设备:

az iot edge set-modules --device-id [device id] --hub-name [hub name] --content [file path]

device ID 参数区分大小写。 content 参数指向你保存的部署清单文件。

显示了 az iot edge set-modules 命令行输出的屏幕截图。

查看设备上的模块

将模块部署到设备后,可以使用以下命令查看所有模块:

查看 IoT Edge 设备上的模块:

az iot hub module-identity list --device-id [device id] --hub-name [hub name]

device ID 参数区分大小写。

显示了 az iot hub module-identity list 命令输出的屏幕截图。

后续步骤

了解如何大规模地部署和监视 IoT Edge 模块