终止支持通知:2026 年 10 月 7 日, AWS 将停止对的支持。 AWS IoT Greengrass Version 1 2026 年 10 月 7 日之后,您将无法再访问这些 AWS IoT Greengrass V1 资源。如需更多信息,请访问迁移自 AWS IoT Greengrass Version 1。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
什么是 AWS IoT Greengrass?
AWS IoT Greengrass 是将云功能扩展到本地设备的软件。这使得设备可以更靠近信息源来收集和分析数据,自主响应本地事件,同时在本地网络上彼此安全地通信。本地设备还可以安全地与物联网通信 AWS IoT Core 并将物联网数据导出到 AWS Cloud. AWS IoT Greengrass 开发人员可以使用 AWS Lambda 函数和预建连接器来创建部署到设备以供本地执行的无服务器应用程序。
下图显示了的基本架构 AWS IoT Greengrass。
AWS IoT Greengrass 使客户可以构建 IoT 设备和应用程序逻辑。具体而言, AWS IoT Greengrass 为在设备上运行的应用程序逻辑提供基于云的管理。在本地部署的 Lambda 函数和连接器通过本地事件以及来自云或其他来源的消息触发。
在中 AWS IoT Greengrass,设备无需连接到云即可在本地网络上安全地通信并相互交换消息。 AWS IoT Greengrass 提供本地 pub/sub 消息管理器,该管理器可以在连接中断时智能地缓冲消息,从而保留云端的入站和出站消息。
AWS IoT Greengrass 保护用户数据:
-
通过安全的设备身份验证和授权。
-
通过本地网络中的安全连接。
-
在本地设备与云之间。
设备安全凭证在撤销之前一直在组中有效,即使到云的连接中断,设备可以继续在本地安全地进行通信。
AWS IoT Greengrass 提供 Lambda 函数的安全无线更新。
AWS IoT Greengrass 包括:
-
软件分发
-
AWS IoT Greengrass 核心软件
-
AWS IoT Greengrass 核心 SDK
-
-
云服务
-
AWS IoT Greengrass API
-
-
功能
-
Lambda 运行时
-
影子实施
-
消息管理器
-
组管理
-
发现服务
-
Over-the-air 更新代理
-
流管理器
-
本地资源访问
-
本地机器学习推理
-
本地 Secrets Manager
-
内置集成了服务、协议和软件的连接器
-
主题
AWS IoT Greengrass 核心软件
C AWS IoT Greengrass ore 软件提供以下功能:
-
连接器和 Lambda 函数的部署和本地运行。
-
通过自动导出到,在本地处理数据流 AWS Cloud。
-
使用托管订阅通过本地网络在设备、连接器和 Lambda 函数之间进行的 MQTT 消息传递。
-
使用托管订阅在与设备、连接器 AWS IoT 和 Lambda 函数之间进行 MQTT 消息传送。
-
设备之间的安全连接以及 AWS Cloud 使用设备身份验证和授权。
-
设备的本地影子同步。影子可配置为与 AWS Cloud同步。
-
对本地设备和卷资源的受控访问。
-
用于运行本地推理的云训练机器学习模型的部署。
-
使设备能够发现 Greengrass 核心设备的自动 IP 地址检测。
-
全新的或更新的组配置的集中部署。下载配置数据后,核心设备将自动重启。
-
用户定义的 Lambda 函数的安全、空中下载(OTA)软件更新。
-
本地密钥的安全、加密的存储以及连接器和 Lambda 函数进行的受控访问。
AWS IoT Greengrass 核心实例通过创建和更新存储在云中的 AWS IoT Greengrass 组定义 AWS IoT Greengrass 的 API 进行配置。
AWS IoT Greengrass 核心软件版本
AWS IoT Greengrass 为安装 AWS IoT Greengrass Core 软件提供了多个选项,包括 tar.gz 下载文件、快速启动脚本以及在支持的 Debian 平台上apt安装。有关更多信息,请参阅 安装 AWS IoT Greengrass 核心软件。
以下选项卡描述了 AWS IoT Greengrass Core 软件版本中的新增内容和变更内容。
AWS IoT Greengrass groups
Greengrass 组是一系列设置和组件,例如 Greengrass 核心、设备和订阅。组用于定义交互范围。例如,一个组可能表示建筑物的一层、一辆卡车或整个采矿场所。下图显示了可以构成 Greengrass 组的组件。
在上图中:
- A:Greengrass 组定义
-
有关组设置和组件的信息。
- B:Greengrass 组设置
-
这些方法包括:
-
Greengrass 组角色。
-
证书颁发机构和本地连接配置
-
Greengrass 核心连接信息。
-
默认 Lambda 运行时环境。有关更多信息,请参阅 在组中设置 Lambda 函数的默认容器化。
-
CloudWatch 和本地日志配置。有关更多信息,请参阅 使用 进行监控 AWS IoT Greengrass logs。
-
- C:Greengrass 核心
-
代表 Greengrass 核心 AWS IoT 的东西(设备)。有关更多信息,请参阅 配置 AWS IoT Greengrass core。
- D:Lambda 函数定义
-
核心上本地运行的 Lambda 函数的列表,包含关联的配置数据。有关更多信息,请参阅 在上运行 Lambda 函数 AWS IoT Greengrass core。
- E:订阅定义
-
允许使用 MQTT 消息进行通信的订阅列表。订阅定义了:
-
消息源和消息目标。它们可以是客户端设备、Lambda 函数 AWS IoT Core、连接器和本地影子服务。
-
用于筛选消息的主题。
有关更多信息,请参阅 MQTT 消息传递工作流中的托管订阅。
-
- F:连接器定义
-
核心上本地运行的连接器的列表,包含关联的配置数据。有关更多信息,请参阅 使用 Greengrass 连接器与服务和协议集成。
- G:设备定义
-
属于 Greengrass 组的 AWS IoT 内容(称为客户端设备或设备)的列表,以及相关的配置数据。有关更多信息,请参阅 中的设备 AWS IoT Greengrass。
- H:资源定义
-
Greengrass 核心上的本地资源、机器学习资源和密钥资源的列表,包含关联的配置数据。有关更多信息,请参阅 使用 Lambda 函数和连接器访问本地资源、执行机器学习推理 和 将密钥部署到 AWS IoT Greengrass core。
在部署后,Greengrass 组定义、Lambda 函数、连接器、资源和订阅表将复制到核心设备中。有关更多信息,请参阅 部署 AWS IoT Greengrass 分组到 AWS IoT Greengrass core。
中的设备 AWS IoT Greengrass
Greengrass 群组可以包含两种类型的 AWS IoT 设备:
- Greengrass 核心
-
Greengrass 核心是运行 AWS IoT Greengrass Core 软件的设备,它允许它直接 AWS IoT Core 与 AWS IoT Greengrass 服务通信。内核有自己的设备证书,用于进行 AWS IoT Core身份验证。它有一个设备影子和一个 AWS IoT Core 注册表中的条目。Greengrass 核心运行本地 Lambda 运行时、部署代理和 IP 地址跟踪器,向该 AWS IoT Greengrass 服务发送 IP 地址信息,以允许客户端设备自动发现其群组和核心连接信息。有关更多信息,请参阅 配置 AWS IoT Greengrass core。
注意
一个 Greengrass 组必须恰好包含一个核心。
- 客户端设备
-
客户端设备(也称为联网设备、Greengrass 设备或设备)是通过 MQTT 连接到 Greengrass 核心的设备。他们有自己的用于 AWS IoT Core 身份验证的设备证书、设备影子和 AWS IoT Core 注册表中的条目。客户端进设备可以运行 FreeRTOS 或使用 AWS IoT 设备开发工具包或 AWS IoT Greengrass 发现 API,以获取用于连接和验证同一 Greengrass 组中核心的发现信息。要了解如何使用 AWS IoT 控制台为创建和配置客户端设备 AWS IoT Greengrass,请参阅模块 4:在中与客户端设备进行交互 AWS IoT Greengrass 组。或者,有关如何使用为创建和配置客户端设备的示例,请参阅《命令 AWS CLI 参考》中的 create-device-def AWS IoT Greengrass inite-definition。AWS CLI
在 Greengrass 组中,您可以创建订阅,允许客户端设备通过 MQTT 与 Lambda 函数、连接器及组中的其他客户端设备以及 AWS IoT Core 或本地影子服务进行通信。MQTT 消息传递到核心。如果核心设备丢失与云的连接,客户端设备可通过本地网络继续进行通信。客户端设备大小不一,既有基于微控制器的小型设备,也有大型设备。目前,一个 Greengrass 组最多可包含 2,500 个客户端设备。一个客户端设备最多可以是 10 个组的成员。
注意
OPC-UA 是工业通信的信息交换标准。要在 Greengrass 核心 OPC-UA 上实现对的支持,您可以使用物联网 SiteWise 连接器。连接器将工业设备数据从 OPC-UA 服务器发送到中的资产属性 AWS IoT SiteWise。
下表显示了这些设备类型的相关性。
AWS IoT Greengrass 核心设备将证书存储在两个位置:
-
/中的核心设备证书。通常,核心设备证书命名为greengrass-root/certs(例如,hash.cert.pem86c84488a5.cert.pem)。当核心连接到 AWS IoT Core 和 AWS IoT Greengrass 服务时, AWS IoT 客户端使用此证书进行相互身份验证。 -
/中的 MQTT 服务器证书。MQTT 服务器证书名为greengrass-root/ggc/var/state/serverserver.crt。此证书用于本地 MQTT 服务器(在 Greengrass 核心上)和 Greengrass 设备之间的相互身份验证。注意
greengrass-root代表在设备上安装 AWS IoT Greengrass Core 软件的路径。通常,这是/greengrass目录。
软件开发工具包
以下 AWS SDK 可用于: AWS IoT Greengrass
- AWS SDK
-
使用 AWS 软件开发工具包构建可与任何 AWS 服务交互的应用程序,包括亚马逊 S3、亚马逊 DynamoDB AWS IoT Greengrass等。 AWS IoT在的上下文中 AWS IoT Greengrass,您可以在已部署的 Lambda 函数中使用 AWS 软件开发工具包直接调用任何 AWS 服务。有关更多信息,请参阅 AWS 开发工具包。
注意
AWS 软件开发工具包中提供的特定于 Greengrass 的操作也可在 AWS IoT Greengrass API 和. AWS CLI
- AWS IoT 设备 SDK
-
AWS IoT 设备 SDK 可帮助设备连接到 AWS IoT Core 和 AWS IoT Greengrass。有关更多信息,请参阅AWS IoT 开发人员指南中的 AWS IoT Device 软件开发工具包。
客户端设备可以使用任何 AWS IoT 设备 SDK v2 平台来发现 Greengrass 核心的连接信息。连接信息包括:
-
客户端设备所属的 Greengrass 组的 ID。
-
每个组中 Greengrass 核心的 IP 地址。这些也称为核心端点。
-
组 CA 证书,设备使用该证书与核心进行双向身份验证。有关更多信息,请参阅 设备连接工作流程。
注意
在 AWS IoT 设备软件开发工具包的第 1 版中,只有 C++ 和 Python 平台提供内置的发现支持。
-
- AWS IoT Greengrass 核心 SDK
-
AWS IoT Greengrass Core SDK 使 Lambda 函数能够与 Greengrass 核心进行交互、向本地影子服务发布消息 AWS IoT、与本地影子服务进行交互、调用其他已部署的 Lambda 函数以及访问秘密资源。此软件开发工具包由 AWS IoT Greengrass 核心上运行的 Lambda 函数使用。有关更多信息,请参阅 AWS IoT Greengrass 核心软件开发工具包。
- AWS IoT Greengrass 机器学习 SDK
-
AWS IoT Greengrass 机器学习软件开发工具包使 Lambda 函数能够使用作为机器学习资源部署到 Greengrass 核心的机器学习模型。此 SDK 由在内 AWS IoT Greengrass 核上运行并与本地推理服务交互的 Lambda 函数使用。有关更多信息,请参阅 AWS IoT Greengrass Machine Learning。
支持的平台和要求
以下选项卡列出了 AWS IoT Greengrass Core软件支持的平台和要求。
注意
您可以从 AWS IoT Greengrass 核心软件下载中下载AWS IoT Greengrass 核心软件。
有关 AWS IoT Greengrass 配额(限制)的信息,请参阅中的服务配额Amazon Web Services 一般参考。
有关定价信息,请参阅 AWS IoT Greengrass 定价
AWS IoT Greengrass 下载
您可以使用以下信息来查找并下载可与 AWS IoT Greengrass结合使用的软件。
主题
AWS IoT Greengrass 核心软件
AWS IoT Greengrass Core 软件将 AWS 功能扩展到 AWS IoT Greengrass 核心设备,使本地设备能够在本地对其生成的数据进行操作。
下载此软件即表示您同意Greengrass Core 软件许可协议
有关在设备上安装 AWS IoT Greengrass Core 软件的其他选项的信息,请参阅安装 AWS IoT Greengrass 核心软件。
AWS IoT Greengrass snap 软件
AWS IoT Greengrass snap 1.11.x 使您能够在容器化环境中 AWS IoT Greengrass 通过便捷的软件包运行受限版本的以及所有必要的依赖关系。
注意
该 AWS IoT Greengrass 快照适用于 AWS IoT Greengrass 酷睿软件 v1.11.x。 AWS IoT Greengrass 不为 v1.10.x 提供快照。不受支持的版本不会收到错误修复或更新。
AWS IoT Greengrass snap 不支持连接器和机器学习 (ML) 推断。
有关更多信息,请参阅 运行 AWS IoT Greengrass 瞬间。
AWS IoT Greengrass Docker 软件
AWS 提供了 Dockerfile 和 Docker 镜像,让你更容易在 Docker 容器 AWS IoT Greengrass 中运行。
- Dockerfile
-
Dockerfile 包含用于构建自定义 AWS IoT Greengrass 容器镜像的源代码。可对映像进行修改,以在不同的平台架构上运行或减少映像的大小。有关说明,请参阅自述文件。
下载您的目标 AWS IoT Greengrass Core 软件版本。
- Docker 映像
-
Docker 镜像在 Amazon Linux 2 (x86_64) 和 Alpine Linux (x86_64、armv7L 或 Aarch64) 基础镜像上安装了 C AWS IoT Greengrass ore 软件和依赖项。您可以使用预构建的映像开始尝试 AWS IoT Greengrass。
重要
2022年6月30日, AWS IoT Greengrass 结束了对发布到亚马逊弹性容器注册表(亚马逊 ECR)和 Docker Hub 的 AWS IoT Greengrass 核心软件 v1.x Docker 镜像的维护。您可以继续从 Amazon ECR 和 Docker Hub 下载这些 Docker 映像,直至 2023 年 6 月 30(即维护结束 1 年后)为止。但是,在维护于2022年6月30日结束后, AWS IoT Greengrass 核心软件v1.x的Docker镜像不再收到安全补丁或错误修复。如果您运行的生产工作负载依赖于这些 Docker 镜像,我们建议您使用提供的 Dockerfiles 构建自己的 AWS IoT Greengrass Docker 镜像。有关更多信息,请参阅 AWS IoT Greengrass Version 1 维护政策。
从 Docker Hub
或 Amazon Elastic Container Registry (Amazon ECR) 中下载预构建映像。 -
对于 Docker Hub,使用
version标签下载特定版本的 Greengrass Docker 镜像。要查找所有可用映像的标签,请查看 Docker Hub 上的 Tags 页面。 -
若是 Amazon ECR,请使用
latest标签下载 Greengrass Docker 映像的最新可用版本。有关列出可用映像版本和从 Amazon ECR 下载映像的更多信息,请参阅运行 AWS IoT Greengrass 在 Docker 容器中。
警告
从 AWS IoT Greengrass Core 软件的 v1.11.6 开始,Greengrass Docker 镜像不再包含 Python 2.7,因为 Python 2.7 已于 2020 年停产,不再接收安全更新。如果您选择更新这些 Docker 映像,我们建议您在将更新部署到生产设备之前,先验证应用程序是否可以使用新的 Docker 映像。如果使用 Greengrass Docker 映像的应用程序需要 Python 2.7,您可以修改 Greengrass Dockerfile,为您的应用程序包含 Python 2.7。
AWS IoT Greengrass 不为 AWS IoT Greengrass 核心软件 v1.11.1 提供 Docker 镜像。
注意
默认情况下
alpine-aarch64,alpine-armv7l镜像只能在 Arm-based主机上运行。要在 x86 主机上运行这些映像,您可以安装 QEMU并在主机上挂载 QEMU 库。例如: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes -
AWS IoT Greengrass 核心 SDK
Lambda 函数使用 AWS IoT Greengrass 核心软件开发工具包在本地与 AWS IoT Greengrass 内核进行交互。这允许已部署的 Lambda 函数执行:
从下载适用于您的语言或平台的 AWS IoT Greengrass Core SDK GitHub。
有关更多信息,请参阅 AWS IoT Greengrass 核心软件开发工具包。
支持的机器学习运行时和库
要在 Greengrass 核心上执行推理,您必须为 ML 模型类型安装机器学习运行时或库。
AWS IoT Greengrass 支持以下 ML 模型类型。可以使用这些链接来查找有关如何为模型类型和设备平台安装运行时或库的信息。
机器学习示例
AWS IoT Greengrass 提供了可用于支持的 ML 运行时和库的示例。这些示例在 Greengrass Core 软件许可协议
AWS IoT Greengrass ML SDK 软件
AWS IoT Greengrass Machine Learning 使您编写的 Lambda 函数能够使用本地机器学习模型,并将数据发送到 ML 反馈连接器以进行上传和发布。
我们希望听到您的意见和建议
我们欢迎您提供反馈。要联系我们,请访问 AWS re:Post