为 IoT Edge 准备开发和测试环境

适用于:IoT Edge 1.4 checkmark IoT Edge 1.4

IoT Edge 将现有的业务逻辑移到在边缘运行的设备。 若要准备将应用程序和工作负载作为 IoT Edge 模块运行,则需要将其生成为容器。 本文提供有关如何配置开发环境的指导,以便可以成功创建 IoT Edge 解决方案。 设置好开发环境后,即可了解如何开发自己的 IoT Edge 模块

在任何 IoT Edge 解决方案中,至少需要考虑两台计算机:运行 IoT Edge 模块的 IoT Edge 设备,以及生成、测试和部署模块的开发计算机。 本文重点介绍开发计算机。 出于测试目的,两台计算机可以是相同的。 你可以在开发计算机上运行 IoT Edge 并向其部署模块。

操作系统

IoT Edge 在一组特定的支持操作系统上运行。 开发 IoT Edge 时,可使用大多数可以运行容器引擎的操作系统。 容器引擎是开发计算机上的一项要求,用于将模块构建为容器并将其推送到容器注册表。

如果开发计算机无法运行 IoT Edge,请跳到本文的测试工具部分,了解如何在本地测试和调试。

开发计算机和 IoT Edge 设备的操作系统无需一致。 但是,容器操作系统必须在开发计算机和 IoT Edge 设备之间保持一致。 例如,你可以在 Windows 计算机上开发模块并将其部署到 Linux 设备。 Windows 计算机需要运行 Linux 容器来为 Linux 设备构建模块。

容器引擎

IoT Edge 的核心概念是,通过将业务和云逻辑打包到容器中,可将其远程部署到设备。 若要构建容器,则需要在开发计算机上安装容器引擎。

生产中 IoT Edge 设备唯一支持的容器引擎是 Moby。 但是,任何与开放容器计划(如 Docker)兼容的容器引擎均可构建 IoT Edge 模块映像。

开发工具

Azure IoT Edge 开发工具是用于开发和测试 IoT Edge 模块的命令行工具。 可创建新的 IoT Edge 方案,构建模块映像,在模拟器中运行模块以及监控发送到 IoT 中心的消息。 iotedgedev 工具是推荐用于开发 IoT Edge 模块的工具。

Visual Studio 和 Visual Studio Code 都具有附加扩展,可帮助开发 IoT Edge 解决方案。 这些扩展提供语言特定模板,以帮助创建和部署新的 IoT Edge 方案。 适用于 Visual Studio 和 Visual Studio Code 的 Azure IoT Edge 扩展可帮助编码、构建、部署和调试 IoT Edge 解决方案。 可创建包含多个模块的整个 IoT Edge 解决方案,并且扩展会在每次添加新模块时自动更新部署清单模板。 这些扩展还支持在 Visual Studio 或 Visual Studio Code 中管理 IoT 设备。 可将模块部署到设备,监视状态,并在消息到达 IoT 中心时查看消息。 这两个扩展最后均使用 IoT EdgeHub 开发工具来启用开发计算机上模块的本地运行和调试。

IoT Edge 开发工具

Azure IoT Edge 开发工具使用命令行功能简化了 IoT Edge 开发。 此工具提供用于开发、调试和测试模块的 CLI 命令。 无论是在计算机上手动安装依赖项还是使用预先构建的 IoT Edge 开发容器在容器中运行 iotedgedev 工具,IoT Edge 开发工具都可以与开发系统配合使用。

有关详细信息和入门,请参阅 IoT Edge 开发工具 wiki

Visual Studio Code 扩展

适用于 Visual Studio Code 的 Azure IoT Edge 扩展提供基于编程语言(包括 C、C#、Java、Node.js 和 Python)生成的 IoT Edge 模块模板。 还包含 Azure Functions (C#) 的模板。

重要

Azure IoT Edge Visual Studio Code 扩展处于维护模式iotedgedev 工具是推荐用于开发 IoT Edge 模块的工具。

有关详细信息和下载,请参阅适用于 Visual Studio Code 的 Azure IoT Edge

除 IoT Edge 扩展外,你可能会发现安装其他扩展也有助于开发。 例如,可使用适用于 Visual Studio Code 的 Docker 支持来管理映像、容器和注册表。 此外,所有主要支持的语言都具有 Visual Studio Code 的扩展,可在开发模块时提供帮助。

Azure IoT 中心扩展可用作 Azure IoT Edge 扩展的配套工具。

Visual Studio 2017/2019 扩展

适用于 Visual Studio 的 Azure IoT Edge 工具提供了基于 C# 和 C 构建的 IoT Edge 模块模板。

重要

Azure IoT Edge Visual Studio 扩展处于维护模式。 iotedgedev 工具是推荐用于开发 IoT Edge 模块的工具。

有关详细信息和下载,请参阅适用于 Visual Studio 2017 的 Azure IoT Edge 工具适用于 Visual Studio 2019 的 Azure IoT Edge 工具

测试工具

有几种测试工具可以帮助你更有效地模拟 IoT Edge 设备或调试模块。 下表显示了工具之间的大致比较,以下各个部分更具体地描述了每个工具。

生产部署仅支持 IoT Edge 运行时,但借助以下工具可模拟或轻松创建 IoT Edge 设备以进行开发和测试。 这些工具不是互斥的,可协同工作以获得完整的开发体验。

工具 也称为 支持的平台 最适用于
IoT EdgeHub 开发工具 iotedgehubdev Windows、Linux、macOS 模拟设备来调试模块。
IoT Edge 开发容器 iotedgedev Windows、Linux、macOS 开发而无需安装依赖项。

IoT EdgeHub 开发工具

Azure IoT EdgeHub 开发工具提供本地开发和调试体验。 该工具可在没有 IoT Edge 运行时的情况下帮助启动 IoT Edge 模块,以便可在本地创建、开发、测试、运行和调试 IoT Edge 模块和解决方案。 无需将映像推送到容器注册表并将其部署到设备进行测试。

IoT EdgeHub 开发工具旨在与 Visual Studio 和 Visual Studio Code 扩展以及 IoT Edge 开发工具协同工作。 开发工具支持内部循环开发以及外部循环测试,还支持与 DevOps 工具集成。

重要

IoT EdgeHub 开发工具处于维护模式。 请考虑使用安装了 IoT Edge 运行时的 Linux 虚拟机、物理设备或 EFLOW

有关详细信息和安装,请参阅 Azure IoT EdgeHub 开发工具

IoT Edge 开发容器

Azure IoT Edge 开发容器是一个 Docker 容器,具有 IoT Edge 开发所需的所有依赖项。 使用此容器可使用想要开发的任何语言(包括 C#、Python、Node.js 和 Java)轻松入门。 只需安装一个容器引擎,如 Docker 或 Moby,就可以将容器拉取到开发计算机上。

有关详细信息,请参阅 Azure IoT Edge 开发容器

DevOps 工具

准备为大量生产方案开发大规模解决方案时,请利用现代 DevOps 原则,包括自动化、监控和简化的软件工程流程。 IoT Edge 具有支持 DevOps 工具的扩展,包括 Azure DevOps、Azure DevOps Projects 和 Jenkins。 如果要自定义现有管道或使用其他 DevOps 工具(如 CircleCI 或 TravisCI),则可以使用 IoT Edge 开发工具中包含的 CLI 功能执行此操作。

有关详细信息、指南和示例,请参阅以下页面: