Amazon IoT Greengrass Version 1在 2023 年 6 月 30 日之前,将不再接收功能更新,并且将仅收到安全补丁和错误修复。有关更多信息,请参阅Amazon IoT Greengrass V1维护时段。我们强烈建议您迁移到Amazon IoT Greengrass Version 2,这增加了重要的新功能并支持其他平台。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
什么是 Amazon IoT Greengrass?
Amazon IoT Greengrass 是将云功能扩展到本地设备的软件。这使得设备可以更靠近信息源来收集和分析数据,自主响应本地事件,同时在本地网络上彼此安全地通信。本地设备也可以安全地与Amazon IoT Core并将IoT 数据导出到Amazon Web Services 云.Amazon IoT Greengrass开发人员可以使用Amazon Lambda函数和预构建连接器以创建部署到设备来本地执行的无服务器应用程序。
下图演示了 Amazon IoT Greengrass 的基本架构。

Amazon IoT Greengrass 使客户能够构建 IoT 设备和应用程序逻辑。具体来说,Amazon IoT Greengrass 对设备上运行的应用程序逻辑提供基于云的管理。在本地部署的 Lambda 函数和连接器通过本地事件以及来自云或其他来源的消息触发。
在 Amazon IoT Greengrass 中,设备可在本地网络上安全地通信并互相交换消息而不必连接到云。Amazon IoT Greengrass 提供了一个本地发布/订阅消息管理器,该管理器可在丢失连接的情况下智能地缓冲消息,使云的入站和出站消息得到保留。
Amazon IoT Greengrass 保护用户数据:
-
通过安全的设备身份验证和授权。
-
通过本地网络中的安全连接。
-
在本地设备与云之间。
设备安全凭证在撤销之前一直在组中有效,即使到云的连接中断,设备可以继续在本地安全地进行通信。
Amazon IoT Greengrass提供安全、 over-the-air Lambda 函数的更新。
Amazon IoT Greengrass 包含以下内容:
-
软件分发
-
Amazon IoT Greengrass Core 软件
-
Amazon IoT Greengrass 核心开发工具包
-
-
云服务
-
Amazon IoT Greengrass API
-
-
功能
-
Lambda 运行时
-
影子实施
-
消息管理器
-
组管理
-
发现服务
-
Over-the-air 更新代理
-
流管理器
-
本地资源访问
-
本地机器学习推理
-
本地 Secrets Manager
-
内置集成了服务、协议和软件的连接器
-
主题
Amazon IoT Greengrass Core 软件
Amazon IoT Greengrass Core 软件提供了以下功能:
-
连接器和 Lambda 函数的部署和本地运行。
-
在本地处理数据流,并自动导出到Amazon Web Services 云.
-
使用托管订阅通过本地网络在设备、连接器和 Lambda 函数之间进行的 MQTT 消息传递。
-
MQTT 消息传递在Amazon IoT以及使用托管订阅的设备、连接器和 Lambda 函数。
-
设备和之间的安全连接Amazon Web Services 云使用设备身份验证和授权。
-
设备的本地影子同步。影子可配置为与同步Amazon Web Services 云.
-
对本地设备和卷资源的受控访问。
-
用于运行本地推理的云训练机器学习模型的部署。
-
使设备能够发现 Greengrass 核心设备的自动 IP 地址检测。
-
全新的或更新的组配置的集中部署。下载配置数据后,核心设备将自动重启。
-
保护, over-the-air (OTA) 用户定义的 Lambda 函数的软件更新。
Amazon IoT Greengrass核心实例通过配置Amazon IoT Greengrass创建和更新的 APIAmazon IoT Greengrass存储在云中的组定义。
Amazon IoT Greengrass Core 软件版本
Amazon IoT Greengrass 提供了多种选项用于安装 Amazon IoT Greengrass Core 软件,包括 targ.gz 下载文件、快速启动脚本,以及在支持的 Debian 平台上安装 apt
。有关更多信息,请参阅 安装 Amazon IoT Greengrass Core 软件。
以下选项卡介绍了 Amazon IoT Greengrass Core 软件版本的新增功能和更改。
Amazon IoT Greengrass 组
Greengrass 组是一系列设置和组件,例如 Greengrass 核心、设备和订阅。组用于定义交互范围。例如,一个组可能表示建筑物的一层、一辆卡车或整个采矿场所。下图显示了可以构成 Greengrass 组的组件。

在上图中:
- A: Greengrass 组定义
-
有关组设置和组件的信息。
- B:Greengrass 组设置
-
其中包括:
-
Greengrass 组角色。
-
证书颁发机构和本地连接配置
-
Greengrass 核心连接信息。
-
默认为 Lambda 运行时环境。有关更多信息,请参阅 在组中设置Lambda函数的默认容器化。
-
CloudWatch 和本地日志配置。有关更多信息,请参阅 利用 Amazon IoT Greengrass 日志进行监控。
-
- C:Greengrass 核心
-
表示 Greengrass 核心的 Amazon IoT 事物(设备)。有关更多信息,请参阅 配置 Amazon IoT Greengrass 核心。
- D:Lambda 函数定义
-
核心上本地运行的 Lambda 函数的列表,包含关联的配置数据。有关更多信息,请参阅 在Amazon IoT Greengrass核心上运行 Lambda 函数。
- E: 订阅定义
-
允许使用 MQTT 消息进行通信的订阅列表。订阅定义了:
-
消息源和消息目标。这些可以是客户端设备、Lambda 函数、连接器、Amazon IoT Core和本地影子服务。
-
用于筛选消息的主题。
有关更多信息,请参阅 MQTT 消息传递工作流中的托管订阅。
-
- F:连接器定义
-
核心上本地运行的连接器的列表,包含关联的配置数据。有关更多信息,请参阅 使用 Greengrass 连接器与服务和协议集成。
- G:设备定义
-
列表Amazon IoT作为 Greengrass 组成员的事物(称为客户端设备或设备)以及关联的配置数据。有关更多信息,请参阅 Amazon IoT Greengrass 中的设备。
- H:资源定义
-
Greengrass 核心上的本地资源、机器学习资源和密钥资源的列表,包含关联的配置数据。有关更多信息,请参阅使用 Lambda 函数和连接器访问本地资源、执行机器学习推理和将密钥部署到 Amazon IoT Greengrass 核心。
在部署后,Greengrass 组定义、Lambda 函数、连接器、资源和订阅表将复制到核心设备中。有关更多信息,请参阅 将 Amazon IoT Greengrass 组部署到 Amazon IoT Greengrass 核心。
Amazon IoT Greengrass 中的设备
Greengrass 组可以包含两种类型的 Amazon IoT 设备:
- Greengrass 核心
-
Greengrass 核心是运行 Amazon IoT Greengrass Core 软件的设备,该软件允许核心直接与 Amazon IoT Core 和 Amazon IoT Greengrass 服务进行通信。核心具有自己的设备证书,用于在 Amazon IoT Core 中进行身份验证。它有一个设备影子和一个 Amazon IoT Core 注册表中的条目。Greengrass 核心运行本地 Lambda 运行时、部署代理和 IP 地址跟踪器(用于将 IP 地址信息发送到Amazon IoT Greengrass服务,以允许客户端设备自动发现其组和核心连接信息。有关更多信息,请参阅 配置 Amazon IoT Greengrass 核心。
注意
一个 Greengrass 组必须恰好包含一个核心。
- 客户端设备
-
客户端设备(也称为连接的设备、Greengrass,或者设备) 是通过 MQTT 连接到 Greengrass 核心的设备。他们有自己的设备证书Amazon IoT Core身份验证、设备影子和Amazon IoT Core注册机构。客户端设备可以运行FreeRTOS或者使用Amazon IoT设备软件开发工具包要么Amazon IoT Greengrass查找 API以获取用于连接和验证同一 Greengrass 组中核心的发现信息。要了解如何使用Amazon IoT用于创建和配置客户端设备的控制台Amazon IoT Greengrass,请参阅模块 4:在中与客户端设备交互Amazon IoT Greengrass组. 或者,如需向您演示如何使用Amazon CLI为创建和配置客户端设备Amazon IoT Greengrass,请参阅create-device-definition中的Amazon CLI命令参考.
在 Greengrass 组中,您可以创建订阅来允许客户端设备通过 MQTT 与 Lambda 函数、连接器、组中的其他客户端设备以及与Amazon IoT Core或本地影子服务。MQTT 消息传递到核心。如果核心设备丢失与云的连接,客户端设备可通过本地网络继续进行通信。客户端设备的大小可能不同-从基于微控制器的小型设备到大型设备。目前,一个 Greengrass 组最多可包含 2500 个客户端设备。一个客户端设备最多可以是 10 个组的成员。
注意
OPC-UA 是一种用于工业通信的信息交换标准。要在 Greengrass 核心上实现对 OPC-UA 的支持,您可以使用IoT SiteWise 连接器. 该连接器可将工业设备数据从 OPC-UA 服务器发送到 Amazon IoT SiteWise 中的资产属性。
下表显示了这些设备类型的相关性。

这些区域有:Amazon IoT Greengrass核心设备在两个位置存储证书:
-
/
中的核心设备证书。通常,核心设备证书命名为greengrass-root
/certs
(例如,hash
.cert.pem86c84488a5.cert.pem
)。当核心连接到 Amazon IoT Core 和 Amazon IoT Greengrass 服务时,Amazon IoT 客户端将使用此证书进行相互身份验证。 -
/
中的 MQTT 服务器证书。MQTT 服务器证书名为greengrass-root
/ggc/var/state/serverserver.crt
。此证书用于本地 MQTT 服务器(在 Greengrass 核心上)和 Greengrass 设备之间的相互身份验证。注意
greengrass-root
表示在您的设备上安装 Amazon IoT Greengrass 核心软件的路径。通常,这是/greengrass
目录。
软件开发工具包
以下Amazon-提供的开发工具包可用于Amazon IoT Greengrass:
- Amazon 开发工具包
-
使用AmazonSDK 用于构建与任何应用程序交互的应用程序Amazon服务,包括Amazon S3、Amazon DynamoDB、Amazon IoT、Amazon IoT Greengrass,以及其他. 在... 的背景下Amazon IoT Greengrass,您可以使用。Amazon已部署的 Lambda 函数中的开发工具包可以直接调用任何Amazon服务。有关更多信息,请参阅 Amazon 开发工具包。
注意
特定于 Greengrass 的操作在Amazon开发工具包还可用于Amazon IoT GreengrassAPI和Amazon CLI.
- Amazon IoT Device SDK
-
这些区域有:Amazon IoT设备开发工具包可帮助设备连接Amazon IoT Core和Amazon IoT Greengrass. 有关更多信息,请参阅 。Amazon IoT设备开发工具包中的Amazon IoT开发人员指南.
客户端设备可以使用任何Amazon IoT用于发现 Greengrass 核心的连接信息的设备 SDk v2 平台。连接信息包括:
-
客户端设备所属的 Greengrass 组的 ID。
-
每个组中Greengrass 核心的 IP 地址。这些也称为核心端点.
-
组 CA 证书,用于与核心进行双向身份验证。有关更多信息,请参阅 设备连接工作流程。
注意
在 v1 的Amazon IoT设备开发工具包,只有 C++ 和 Python 平台提供内置的发现支持。
-
- Amazon IoT Greengrass 核心开发工具包
-
这些区域有:Amazon IoT Greengrass核心开发工具包使 Lambda 函数能够与 Greengrass 核心进行交互,将消息发布到Amazon IoT、与本地影子服务交互,调用其他部署的 Lambda 函数和访问密钥资源。此开发工具包由上运行的 Lambda 函数使用Amazon IoT Greengrasscore 有关更多信息,请参阅 Amazon IoT Greengrass 核心开发工具包。
- Amazon IoT GreengrassMachine Learning 开发工具包
-
这些区域有:Amazon IoT GreengrassMachine Learning 开发工具包允许 Lambda 函数使用作为机器学习资源部署到 Greengrass 核心的机器学习模型。此开发工具包由上运行的 Lambda 函数使用Amazon IoT Greengrasscore 并与本地推理服务交互。有关更多信息,请参阅 Amazon IoT GreengrassMachine Learning SDK。
支持的平台和要求
以下选项卡列出了支持的平台和 Amazon IoT Greengrass Core 软件的要求。
注意
您可以下载。Amazon IoT GreengrassCore 软件Amazon IoT Greengrass核心软件下载。
有关以下内容的信息Amazon IoT Greengrass配额(限制),请参阅Service Quotas中的Amazon Web Services 一般参考.
有关定价信息,请参阅 Amazon IoT Greengrass 定价
Amazon IoT Greengrass 下载
您可以使用以下信息来查找并下载可与 Amazon IoT Greengrass 结合使用的软件。
主题
Amazon IoT Greengrass Core 软件
这些区域有:Amazon IoT GreengrassCore 软件扩展Amazon功能放在Amazon IoT Greengrass核心设备,使本地设备可以在本地操作它们生成的数据。
下载此软件即表示您同意Greengrass 核心软件许可协议
有关在设备上安装 Amazon IoT Greengrass Core 软件的其他选项的信息,请参阅安装 Amazon IoT Greengrass Core 软件。
Amazon IoT Greengrass Snap 软件
Amazon IoT Greengrasssnap 1.11.x 使您能够运行受限版本的Amazon IoT Greengrass在容器化环境中通过方便的软件包以及所有必要的依赖关系。
注意
这些区域有:Amazon IoT Greengrass快照可用于Amazon IoT GreengrassCore 软件 v1.11.x。Amazon IoT Greengrass不为 1.10.x 提供快照。不受支持的版本不会收到错误修复或更新。
这些区域有:Amazon IoT Greengrasssnap 不支持连接器与机器学习 (ML) 推理。
有关更多信息,请参阅 在 Snap 中运行 Amazon IoT Greengrass。
Amazon IoT Greengrass Docker 软件
Amazon 提供 Dockerfile 和 Docker 镜像,使您能够更轻松地在 Docker 容器中运行 Amazon IoT Greengrass。
- Dockerfile
-
Dockerfile 包含用于构建自定义 Amazon IoT Greengrass 容器映像的源代码。可对映像进行修改,以在不同的平台架构上运行或减少映像的大小。有关说明,请参阅自述文件。
下载您的目标 Amazon IoT Greengrass Core 软件版本。
- Docker 镜像
-
Docker 映像在 Amazon Linux 2 (x86_64) 和 Alpine Linux(x86_64、Armv7l 或 AArch64)基本映像上安装了 Amazon IoT Greengrass Core 软件和依赖项。您可以使用预构建的映像开始尝试 Amazon IoT Greengrass。
重要
2022 年 6 月 30 日Amazon IoT Greengrass的维护已结束Amazon IoT Greengrass核心软件 v1.x Docker 映像发布到亚马逊Elastic Container Registry (Amazon ECR) 和 Docker Hub。您可以继续从 Amazon ECR 和 Docker Hub 下载这些 Docker 映像,直到 2023 年 6 月 30 日,也就是维护结束一年后。但是,Amazon IoT Greengrass2022 年 6 月 30 日维护结束后,核心软件 v1.x Docker 映像不再收到安全补丁或错误修复。如果您运行的生产工作负载依赖于这些 Docker 映像,我们建议您使用 Dockerfiles 构建自己的 DockerfilesAmazon IoT Greengrass提供。有关更多信息,请参阅 Amazon IoT Greengrass Version 1维护策略。
从下载预构建的映像Docker Hub
或Amazon EElastic Container Registry (Amazon ECR)。 -
对于 Docker Hub,请使用。
版本
tag 下载一个特定版本的 Greengrass Docker 镜像。要查找所有可用映像的标签,请查看 Docker Hub 上的 Tags (标签) 页面。 -
对于亚马逊 ECR,请使用
latest
标记以下载 Greengrass Docker 镜像的最新可用版本。有关发布可用映像版本和从 Amazon ECR 下载图片的更多信息,请参阅在 Docker 容器中运行 Amazon IoT Greengrass.
警告
从 v1.11.6 版开始Amazon IoT Greengrass核心软件,Greengrass Docker 映像不再包含 Python 2.7,因为 Python 2.7 已达到 end-of-life 在 2020 年,不再接收安全更新。如果您选择更新到这些 Docker 映像,我们建议您在将更新部署到生产设备之前验证您的应用程序是否可以使用新的 Docker 映像。如果使用 Greengrass Docker 镜像的应用程序需要 Python 2.7,则可以修改 Greengrass Dockerfile 以在应用程序中包含 Python 2.7。
Amazon IoT Greengrass不提供 Docker 镜像Amazon IoT GreengrassCore 软件 v1.11.1。
注意
默认情况下,
alpine-aarch64
和alpine-armv7l
映像只能在基于 ARM 的主机上运行。要在 x86 主机上运行这些映像,您可以安装 QEMU并在主机上挂载 QEMU 库。例如: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
-
Amazon IoT Greengrass 核心开发工具包
Lambda 函数使用Amazon IoT Greengrass与之交互的核心 SDKAmazon IoT Greengrass本地核心。这允许已部署的 Lambda 函数执行:
下载Amazon IoT Greengrass适用于您的语言或平台的核心 SDK GitHub.
有关更多信息,请参阅 Amazon IoT Greengrass 核心开发工具包。
支持的机器学习运行时和库
要在 Greengrass 核心上执行推理,您必须为 ML 模型类型安装机器学习运行时或库。
Amazon IoT Greengrass 支持以下 ML 模型类型。可以使用这些链接来查找有关如何为模型类型和设备平台安装运行时或库的信息。
机器学习示例
Amazon IoT Greengrass 提供了可用于支持的 ML 运行时和库的示例。这些示例在 Greengrass Core 软件许可协议
Amazon IoT Greengrass ML 开发工具包软件
这些区域有:Amazon IoT GreengrassMachine Learning SDK使您编写的 Lambda 函数能够使用本地机器学习模型,并将数据发送到ML 反馈用于上传和发布的连接器。
我们希望听到您的意见和建议
我们欢迎您提供反馈。要与我们联系,请访问。Amazonre: Post