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

通过 Visual Studio Code 部署 Azure IoT Edge 模块

适用于:IoT Edge 1.4 checkmark IoT Edge 1.4

重要

IoT Edge 1.4 是受支持的版本。 如果你使用的是较低的版本,请参阅更新 IoT Edge

使用业务逻辑创建 IoT Edge 模块后,需要将其部署到设备后才能在边缘操作。 如果多个模块共同协作来收集和处理数据,可同时部署它们并声明用于连接它们的路由规则。

本文介绍了如何创建 JSON 部署清单,然后使用此文件将部署推送至 IoT Edge 设备。 要了解如何创建基于设备的共享标记而面向多台设备的部署,请参阅使用 Visual Studio Code 大规模地部署 IoT Edge 模块

先决条件

配置部署清单

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

若要使用 Visual Studio Code 部署模块,请将部署清单本地保存为 .JSON 文件。 在下一部分通过运行命令将配置应用到设备时,会用到这个文件路径。

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

注意

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

{
  "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.1",
              "createOptions": "{}"
            }
          },
          "edgeHub": {
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-hub:1.1",
              "createOptions": "{\"HostConfig\":{\"PortBindings\":{\"443/tcp\":[{\"HostPort\":\"443\"}],\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}]}}}"
            }
          }
        },
        "modules": {
          "SimulatedTemperatureSensor": {
            "version": "1.0",
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0",
              "createOptions": "{}"
            }
          }
        }
      }
    },
    "$edgeHub": {
      "properties.desired": {
        "schemaVersion": "1.1",
        "routes": {
            "route": "FROM /messages/* INTO $upstream"
        },
        "storeAndForwardConfiguration": {
          "timeToLiveSecs": 7200
        }
      }
    },
    "SimulatedTemperatureSensor": {
      "properties.desired": {}
    }
  }
}

登录以访问 IoT 中心

可使用适用于 Visual Studio Code 的 Azure IoT 扩展来执行与 IoT 中心相关的操作。 为让操作顺利进行,需登录 Azure 帐户并选择要使用的 IoT 中心。

  1. 在 Visual Studio Code 中打开“资源管理器”视图。

  2. 在资源管理器底部,展开“Azure IoT 中心”部分。

    Screenshot showing the expanded Azure I o T Hub section.

  3. 单击“Azure IoT 中心”部分标题中的“...” 。 如果没有看到省略号,请将鼠标悬停在标题处。

  4. 选择“选择 IoT 中心”。

  5. 如果尚未登录 Azure 帐户,请按照提示登录。

  6. 选择 Azure 订阅。

  7. 选择 IoT 中心。

部署到设备

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

  1. 在 Visual Studio Code 资源管理器视图中,展开“Azure IoT 中心”部分,然后展开“设备”节点。

  2. 右键单击要使用部署清单配置的 IoT Edge 设备。

    提示

    若要确认已选择的设备为 IoT Edge 设备,请选择它以展开模块列表并验证是否存在“$ edgeHub”和“$ edgeAgent” 。 每个 IoT Edge 设备都包含这两个模块。

  3. 选择“为单个设备创建部署”。

  4. 导航至要使用的部署清单 JSON 文件,然后单击“选择 Edge 部署清单”。

    Screenshot showing where to select the I o T Edge Deployment Manifest.

部署结果已显示在 Visual Studio Code 输出内容中。 如果目标设备正在运行且连接到了 Internet,则会在几分钟内成功应用部署。

查看设备上的模块

将模块部署至设备后,可在“Azure IoT 中心”部分查看所有模块。 选择 IoT Edge 设备旁边的箭头将其展开。 其中会显示当前正在运行的所有模块。

如果最近部署了新模块到设备,请将鼠标悬停在“Azure IoT 中心设备”部分标题处,并选择刷新图标以更新该视图。

右键单击模块名称,查看并编辑此模块孪生。

后续步骤

了解如何使用 Visual Studio Code 大规模部署和监视 IoT Edge 模块