使用 AWS IoT Greengrass 和 Docker 快速物联网解决方案原型设计的模式 官方
快速原型开发的 AWS IoT 解决方案模式
关键要点
IoT 解决方案的实施通常需要 1824 个月才能投入市场。AWS CDK、AWS IoT Greengrass 和 Docker 结合使用,可加速 IoT 解决方案的原型开发。本文介绍设备预配置、远程管理和遥控、遥测数据收集三大场景。引言
研究表明,互联网物联网 (IoT) 解决方案的实施通常需要平均 1824 个月才能推向市场并准备好进行推广。与 IoT 解决方案开发相关的常见场景包括设备预配置、遥测数据收集以及远程命令与控制。根据您的用例,设计并原型化一个 良好架构的 IoT 解决方案 需要考虑良好的设计原则和最佳实践。本文阐述如何采用一种原型设计模式,结合使用 AWS Cloud Development Kit AWS CDK、AWS IoT Greengrass 和 Docker,加速您在 AWS 上的 IoT 解决方案原型开发。
AWS CDK 利用常用编程语言的表达能力来构建和配置您在 AWS 上的云资源,从而加速云开发。IoT Greengrass 是一个开源的边缘运行时和托管云服务,用于构建、部署和管理设备软件。您可以使用此运行时在边缘运行工作负载,部署新的或遗留的应用程序,并远程管理和操作您的设备群。该运行时还提供超过 30 个 预构建的 AWS 组件,帮助您扩展边缘设备的功能,而无需编写自定义代码。
IoT Greengrass 支持多种 部署方法,包括在 Docker 容器内或作为 Docker 容器运行的方式。您可以结合使用 AWS CDK 创建的基础设施模式与容器化和自动化方法,形成一致的测试或调查 IoT 设备功能的方法。这种方法支持快速的 IoT 解决方案原型开发,而不会在原型迭代过程中留下不必要的中间工件。
解决方案概览
本文展示该方法如何支持常见的 IoT 解决方案场景,主要包括设备预配置、设备命令与控制、以及遥测数据收集。
设备预配置
安全的 IoT 设备预配置 则需要为设备配置 唯一身份标识,将这些身份注册到 AWS IoT 服务,并关联所需权限,以确保设备能够安全连接并与 AWS IoT 及其他所需 AWS 服务交互。这一要求适用于 IoT Greengrass Core 设备的设置。以下步骤展示了如何预配置一个 IoT Greengrass Core 设备:
创建 AWS IoT Core 策略。创建 AWS IoT 事物、组、证书和私钥。创建 AWS IoT 角色别名及 AWS 身份与访问管理 (IAM) 角色。设置 IoT Greengrass Core 设备。部署用于原型开发和测试的 IoT Greengrass 组件。为了简化以上步骤,采用下图所示的模式。该模式使用 AWS CDK 和 Docker 来简化并流线化所有支持资源的创建,以便您专注于构建 IoT 解决方案的差异化功能。该模式包含以下元素:
一个 AWS CDK 堆栈,以可重用构造的形式表示所需的 AWS 资源。 AWS 资源通过 AWS CDK CLI 采用 AWS CloudFormation 部署。一个 辅助脚本,该脚本下载新创建的 AWS IoT 客户端证书,并配置一个 Docker Compose 文件和一个 IoT Greengrass 设置脚本。一个 Docker 容器,该容器设置 IoT Greengrass Core 设备,并 部署 AWS 提供的组件和任何可选的自定义组件。图 1:自动化 IoT Greengrass Core 设备预配置基础原型模式
通过 AWS IoT 服务、基础设施部署和 Docker 的组合,您可以创建一个功能齐全的 IoT Greengrass Core 部署。之后,可根据您的需求继续执行 专用组件开发。
远程管理与命令控制
在构建 IoT 解决方案时,另一个常见场景是能够远程交互您的 IoT 设备。例如,请求特定工业设备的遥测数据,或安排家庭自动化事件。遵循 AWS 的最佳实践,您可以利用 MQTT 协议 的双向能力。为支持此功能,AWS 提供了 设备影子 和 AWS IoT 作业,以通过 MQTT 实现命令和控制。
在前面提到的模式基础上,您可以扩展该方法,快速启用通过 MQTT 的设备命令和控制功能。此模式的示例如图 2 所示。该模式包括:
一个 AWS CDK 堆栈, 创建额外的 AWS IoT Core 和 IAM 策略。创建新的 AWS IoT 事物组。将现有的 AWS IoT 事物添加到新组中。部署用于设备命令和控制的自定义 IoT Greengrass 组件。通过 AWS CDK CLI 使用 CloudFormation 部署资源。该模式使用 AWS CDK 运行时上下文,引用之前创建的基础 CloudFormation 堆栈中的 AWS CDK 支持资源。该模式关注于创建和测试新功能,而无需重新实现或重新部署这些资源。一旦堆栈成功部署,自定义组件将订阅指定的 MQTT 主题并监听传入的命令请求。通过此主题向设备发出命令,并在响应 MQTT 主题中接收完成状态消息。
您可以采用此方法快速原型开发自定义设备命令和控制功能,以支持您的 AWS IoT 解决方案用例。
蘑菇加速器使用教程图 2:使用 MQTT 的 IoT 设备命令和控制示例原型模式
遥测数据收集
另外,典型的 IoT 解决方案需要从物理资产、传感器或工业设备收集遥测数据。收集的数据可以支持许多 IoT 应用,例如流式分析、数字双胞胎、预测性维护和过程仿真与优化。有关更多信息,请参阅 七种 IoT 数据摄取和可视化模式。
使用设备预配置基础模式作为基础 (图 1),您可以探索将 IoT 数据摄取到 AWS 的选项,以满足您的用例需求。例如,可以在 IoT Greengrass Core 设备上使用 AWS IoT SiteWise 收集、整理和分析来自工业设备的数据。具体来说,可以创建解决方案,通过 OPCUA 协议摄取工业遥测数据。数据摄取后,可以 可视化 和 分析,以应对异常或识别工业设施之间的差异。
要实现该解决方案,请采用图 3 所示的模式。如前面的模式一样,该模式包括:
一个 AWS CDK 堆栈, 创建专用的 AWS IoT Core 和 IAM 策略。创建一个新的 AWS IoT 事物组。将现有的 AWS IoT 事物添加到新组中。部署所需的 IoT Greengrass 组件AWS IoT SiteWise OPCUA 收集器、AWS IoT SiteWise 发布器 和 IoT Greengrass 流管理器。通过 AWS CDK CLI 使用 CloudFormation 部署资源。该模式还使用 AWS CDK 运行时上下文,引用之前创建的基础 AWS CloudFormation 堆栈中的支持资源。
一旦部署,您的 IoT Greengrass Core 设备将能够从现有的 OPCUA 端点收集遥测数据,并将这些遥测数据发布到 AWS IoT SiteWise。有关更多信息,请参阅 向 AWS IoT SiteWise 相机数据。
图 3:使用 OPCUA 和 AWS IoT SiteWise 进行遥测摄取的示例原型模式
先决条件
访问一个 AWS 账户。本地安装 Docker 运行时 或 AWS Cloud9 云端集成开发环境。访问 AWS IoT Greengrass accelerators GitHub 存储库。解决方案演示
上面描述的模式可以通过 AWS IoT Greengrass accelerators GitHub 存储库获得。要探索这些和其他可用模式,可以将该存储库克隆到您的开发机器上。克隆后,您可以按照提供的说明在您的环境中设置一个 AWS IoT Greengrass Core 设备,并探索所描述的场景。
示例描述基础实现IoT Greengrass Core 设备预配置的基础模式。操作系统命令组件基础模式的扩展,展示设备命令与控制功能的示例实现。AWS IoT SiteWise 部署基础模式的扩展,展示通过 OPCUA 使用 AWS IoT SiteWise 进行工业遥测摄取。按照每个示例旁边提供的部署说明快速启动并运行。您可以自定义这些示例并将其适应不同的用例。您还可以使用现有模式作为基础创建新的 AWS CDK 堆栈,为您自己的用例创建和测试自定义组件。所有示例都可以部署到 AWS Cloud9 以进行快速实验,无需本地安装或部署任何工件。
清理
清理本文创建的资源,以免产生额外费用。
要删除创建的 CloudFormation 堆栈:
打开 AWS CloudFormation 控制台,地址为 AWS CloudFormation Console。选择要删除的堆栈以查看其详细信息。选择 删除,并确认删除每个由运行示例创建的堆栈,应从最近的堆栈开始。等待堆栈被依次删除。结论
本文阐述了如何将 AWS CDK、AWS IoT Greengrass 和 Docker 组合使用,以实现 AWS 上的快速 IoT 解决方案原型开发。通过声明式基础设施即代码及其容器化和自动化,您可以采用基于模式的原型方法,迅速构建常见的 IoT 解决方案场景。将更多时间用于构建核心功能,使您能够专注于推动 IoT 解决方案的差异化和创新能力。这也减少了整个项目的上市时间。

欲了解更多信息,请查看 AWS Cloud Development Kit (AWS CDK)、AWS IoT Greengrass 以及 AWS IoT Greengrass accelerators,帮助您创建其他原型模式。
作者简介
Maxim Chernyshev
Maxim Chernyshev 是 AWS 的高级解决方案架构师,专注于矿业、能源和工业客户。居住在澳大利亚西部的珀斯,Maxim 协助客户利用广泛的 AWS 服务和功能解决复杂而新颖的问题。Maxim 对工业 IoT、可扩展的 IT/OT 融合和网络安全充满热情。