

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 什么是 AWS IoT Greengrass？
<a name="what-is-iot-greengrass"></a>

AWS IoT Greengrass 是一款开源物联网 (IoT) 边缘运行时和云服务，可帮助您在设备上构建、部署和管理物联网应用程序。您可以使用 AWS IoT Greengrass 来构建软件，使您的设备能够根据其生成的数据进行本地操作、基于机器学习模型运行预测以及筛选和聚合设备数据。 AWS IoT Greengrass 使您的设备能够在离数据生成地点更近的地方收集和分析数据，对本地事件做出自主反应，并与本地网络上的其他设备进行安全通信。Greengrass设备还可以安全地与物联网通信 AWS IoT Core 并将物联网数据导出到. AWS 云您可以使用预先构建的软件模块（称为组件） AWS IoT Greengrass 来构建边缘应用程序，这些模块可以将您的边缘设备连接到 AWS 服务或第三方服务。您还可以使用 AWS IoT Greengrass Lambda 函数、Docker 容器、本机操作系统进程或您选择的自定义运行时来打包和运行您的软件。

以下示例显示 AWS IoT Greengrass 设备如何与交互。 AWS 云

![\[AWS IoT Greengrass 设备如何与交互的概述。 AWS 云\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/greengrass-overview.png)


## 新特征
<a name="new-features"></a>

AWS IoT Greengrass V2 引入了新功能和改进。以下内容包括有关版本 2 中提供的新功能的更多信息。
+ [新增内容 AWS IoT Greengrass Version 2](greengrass-v2-whats-new.md)

## 对于首次使用以下内容的用户 AWS IoT Greengrass
<a name="first-time-user"></a>

如果您不熟悉 AWS IoT Greengrass，我们建议您阅读以下部分：
+ [如何 AWS IoT Greengrass 运作](how-it-works.md)

接下来，按照[入门教程](getting-started.md)试用的基本功能 AWS IoT Greengrass。在本教程中，你将在设备上安装 AWS IoT Greengrass Core 软件，开发 Hello World 组件，然后打包该组件进行部署。

## 对于的现有用户 AWS IoT Greengrass V1
<a name="existing-users"></a>

终止支持通知：2026 年 10 月 7 日， AWS 将终止对的支持。 AWS IoT Greengrass Version 1 2026 年 10 月 7 日之后，您将无法再访问 AWS IoT Greengrass V1 控制台或 AWS IoT Greengrass V1 资源。有关如何从版本 1 迁移至版本 2 的更多信息，请参阅[从 AWS IoT Greengrass 版本 1 迁移](migrate-from-v1.md)。

# 如何 AWS IoT Greengrass 运作
<a name="how-it-works"></a>

 AWS IoT Greengrass 客户端软件，也称为 AWS IoT Greengrass 核心软件，可在Windows和基于Linux的发行版（例如Ubuntu或Raspberry Pi操作系统）上运行，适用于采用ARM或x86架构的设备。借 AWS IoT Greengrass助，您可以对设备进行编程，使其根据其生成的数据进行本地操作，基于机器学习模型运行预测，以及筛选和聚合设备数据。 AWS IoT Greengrass 允许在本地执行您选择的 AWS Lambda 函数、Docker 容器、本机操作系统进程或自定义运行时。

AWS IoT Greengrass 提供称为组件的预建软件模块，可让您轻松扩展边缘设备功能。 AWS IoT Greengrass 组件使您能够在边缘连接到 AWS 服务和第三方应用程序。在开发物联网应用程序之后， AWS IoT Greengrass 您可以远程部署、配置和管理现场设备群中的这些应用程序。

以下示例显示 AWS IoT Greengrass 设备如何与 AWS IoT Greengrass 云服务以及中的其他 AWS 服务进行交互。 AWS 云

![\[概述了 AWS IoT Greengrass 设备如何与 AWS IoT Greengrass 云服务和其他 AWS 服务进行交互。 AWS 云\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/how-it-works.png)


## 的关键概念 AWS IoT Greengrass
<a name="concept-overview"></a>

以下是理解和使用 AWS IoT Greengrass的基本概念：

****AWS IoT 东西****  
 AWS IoT 事物是特定设备或逻辑实体的表示。有关事物的信息存储在 AWS IoT 注册表中。

****Greengrass 核心设备****  
运行 C AWS IoT Greengrass ore 软件的设备。Greengrass 核心设备是物联网的东西。 AWS 您可以将多个核心设备添加到 AWS IoT 事物组中，以创建和管理 Greengrass 核心设备组。有关更多信息，请参阅 [设置 AWS IoT Greengrass 核心设备](setting-up.md)。

****Greengrass 客户端设备****  
通过 MQTT 连接到 Greengrass 核心设备并与之通信的设备。Greengrass 客户端设备就是一回事。 AWS IoT 核心设备可以处理、筛选和聚合来自与其连接的客户端设备的数据。您可以将核心设备配置为在客户端设备、 AWS IoT Core 云服务和 Greengrass 组件之间中继 MQTT 消息。有关更多信息，请参阅 [与本地 IoT 设备交互](interact-with-local-iot-devices.md)。  
客户端设备可以运行 [FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/freertos-lib-gg-connectivity.html)，也可以使用 [AWS IoT Device SDK](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html)或 [Greengrass Discovery API](greengrass-discover-api.md) 来获取有关客户端设备可以连接到的核心设备的信息。

****Greengrass 组件****  
部署到 Greengrass 核心设备并在该设备上运行的软件模块。使用开发和部署的所有软件都建模 AWS IoT Greengrass 为一个组件。 AWS IoT Greengrass 提供了预先构建的公共组件，这些组件提供了可在应用程序中使用的特性和功能。您还可以在本地设备或云中开发自己的自定义组件。开发自定义组件后，您可以使用 AWS IoT Greengrass 云服务将其部署到单个或多个核心设备。您可以创建自定义组件并将该组件部署到核心设备。当您执行此操作时，核心设备会下载以下资源来运行该组件：  
+ **配方**：JSON 或 YAML 文件，可通过定义组件详细信息、配置和参数来描述软件模块。
+ **构件**：源代码、二进制文件或脚本，可定义将在设备上运行的软件。您可以从头开始创建构件，也可以使用 Lambda 函数、Docker 容器或自定义运行时创建组件。
+ **依赖关系**：组件之间的关系，使您可以执行自动更新或重新启动依赖组件。例如，您可以拥有依赖于加密组件的安全消息处理组件。这样可以确保加密组件的任何更新都会自动更新并重新启动消息处理组件。
有关更多信息，请参阅[AWS 提供的组件](public-components.md)和[开发 AWS IoT Greengrass 组件](develop-greengrass-components.md)。

****部署****  
发送组件并将所需组件配置应用于目标设备的过程，目标设备可以是单个 Greengrass 核心设备或一组 Greengrass 核心设备。部署会自动将任何更新的组件配置应用于目标，并包括定义为依赖关系的任何其他组件。您也可以克隆现有部署以创建使用相同组件但部署到不同目标的新部署。部署是连续的，这表示您对部署的组件或组件配置所做的任何更新都会自动发送到所有目标。有关更多信息，请参阅 [将 AWS IoT Greengrass 组件部署到设备](manage-deployments.md)。

****AWS IoT Greengrass 核心软件****  
从版本2.14开始， AWS IoT Greengrass 提供了其设备运行时的两种替代实现，一种名为nucleus的可执行文件。第一个（以前也是唯一的）Nucleus 是用 Java 实现的。该选项提供了最大的跨架构和操作系统可移植性。但是，它还依赖于 Java 虚拟机，因此会占用大量内存。  
第二个新增的 Nucleus 是用 C 实现的。该选项大大减小了其内存占用。但是，它需要分别针对不同的目标架构和操作系统进行分发（或从源代码编译）。*当需要区分两者时，我们将第一个实现称为 Greengrass 核，将后者称为 *Greengrass* nucleus lite。*  
+ **可选组件**：这些可配置组件由您的边缘设备提供， AWS IoT Greengrass 并在您的边缘设备上启用其他功能。根据您的要求，您可以选择要部署到设备上的可选组件，例如数据流、本地机器学习推理或本地命令行界面。有关更多信息，请参阅 [AWS 提供的组件](public-components.md)。
您可以通过在设备上部署新版本的组件来升级 C AWS IoT Greengrass ore 软件。

## 的特点 AWS IoT Greengrass
<a name="components-and-features"></a>

AWS IoT Greengrass Version 2 由以下元素组成：
+ **软件分发**
  + [Greengrass nucleus 组件，这是核心](greengrass-nucleus-component.md)软件的最低安装量。 AWS IoT Greengrass 此组件管理 Greengrass 组件的部署、编排和生命周期管理。
  + 与服务、协议和软件集成的其他可选的 [AWS提供的组件](public-components.md)。
  + [Greengrass 开发工具](greengrass-development-tools.md)，可用于创建、测试、构建、发布和部署自定义 Greengrass 组件。
  +  AWS IoT Device SDK[，其中包含用于自定义 Greengrass 组件的[进程间通信 (IPC) 库](interprocess-communication.md)和用于客户端设备的 Greengrass 发现库。](greengrass-discover-api.md)
  + 流管理器 SDK，可用于在核心设备上[管理数据流](manage-data-streams.md)。
+ **云服务**
  + AWS IoT Greengrass V2 API
  + AWS IoT Greengrass V2 控制台

### AWS IoT Greengrass 核心软件
<a name="greengrass-core-software"></a>

您可以使用在边缘设备上运行的 AWS IoT Greengrass Core 软件来执行以下操作：
+ 在本地设备上处理数据流，并自动导出到 AWS 云。有关更多信息，请参阅 [管理 Greengrass 核心设备上的数据流](manage-data-streams.md)。
+ Support 支持 AWS IoT 和组件之间的 MQTT 消息传递。有关更多信息，请参阅 [发布/订阅 AWS IoT Core MQTT 消息](ipc-iot-core-mqtt.md)。
+ 与通过 MQTT 连接和通信的本地设备进行交互。有关更多信息，请参阅 [与本地 IoT 设备交互](interact-with-local-iot-devices.md)。
+ 支持组件之间的本地发布和订阅消息收发。有关更多信息，请参阅 [发布/订阅本地消息](ipc-publish-subscribe.md)。
+ 部署和调用组件和 Lambda 函数。有关更多信息，请参阅 [将 AWS IoT Greengrass 组件部署到设备](manage-deployments.md)。
+ 管理组件生命周期，例如支持安装和运行脚本。有关更多信息，请参阅 [AWS IoT Greengrass 组件配方参考](component-recipe-reference.md)。
+ 对 AWS IoT Greengrass 核心软件和自定义组件执行安全 over-the-air (OTA) 软件更新。有关更多信息，请参阅[更新 AWS IoT Greengrass Core 软件（OTA）](update-greengrass-core-v2.md)和[将 AWS IoT Greengrass 组件部署到设备](manage-deployments.md)。
+ 提供本地密钥的安全、加密的存储以及组件进行的受控访问。有关更多信息，请参阅 [密钥管理器](secret-manager-component.md)。
+ 通过设备身份验证和授权，保护设备与 AWS 云端之间的连接。有关更多信息，请参阅 [设备身份验证和授权 AWS IoT Greengrass](device-auth.md)。

您可以 AWS IoT Greengrass APIs 通过创建持续的软件部署来配置和管理 Greengrass 核心设备。有关更多信息，请参阅 [将 AWS IoT Greengrass 组件部署到设备](manage-deployments.md)。

某些功能仅在某些平台上受支持。有关更多信息，请参阅 [Greengrass 功能兼容性](operating-system-feature-support-matrix.md)。

有关支持的平台、要求和下载的更多信息，请参阅[设置 AWS IoT Greengrass 核心设备](setting-up.md)。

<a name="core-software-license"></a>下载此软件即表示您同意[Greengrass Core 软件许可协议](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)。

# Greengrass 功能兼容性
<a name="operating-system-feature-support-matrix"></a>

AWS IoT Greengrass 支持运行各种操作系统的设备。某些功能仅在某些操作系统上受支持。使用下表了解每种支持的操作系统都有哪些功能可用。有关支持的操作系统、要求和如何设置 Greengrass 核心设备的更多信息，请参阅[设置 AWS IoT Greengrass 核心设备](setting-up.md)。


**消息收发**  

| 功能 | Linux | Windows | Greengrass Nucleus Lite (Linux) | 
| --- | --- | --- | --- | 
|  在 AWS IoT 和组件之间交换 MQTT 消息  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是  （ MQTT5扩展名除外） | 
|  在组件之间交换本地 publish/subscribe 消息  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|  通过 MQTT 与本地 IoT 设备进行交互  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  使用 Modbus-RTU 组件与本地 Modbus-RTU 设备进行交互  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 


**安全性**  

| 功能 | Linux | Windows | Greengrass Lite (Linux) | 
| --- | --- | --- | --- | 
|  通过设备身份验证和授权实现安全连接  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|  部署和访问来自的安全、加密的机密 AWS Secrets Manager  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  使用硬件安全模块（HSM）来安全存储设备的私有密钥和证书  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   |  [是](gg-lite-with-tpm-tutorial.md)  | 
|  使用以下方法审核核心设备 AWS IoT Device Defender  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  使用 AWS 凭证与 AWS 服务进行交互  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 


**安装**  

| 功能 | Linux | Windows | Greengrass Lite (Linux) | 
| --- | --- | --- | --- | 
|   AWS IoT Greengrass 使用自动配置进行安装  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|   AWS IoT Greengrass 使用手动配置进行安装  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|   AWS IoT Greengrass 使用 AWS IoT 队列配置进行安装  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|   AWS IoT Greengrass 使用自定义配置进行安装  |  [是](https://docs.aws.amazon.com//greengrass/v2/developerguide/custom-provisioning.html)  |  [是](https://docs.aws.amazon.com//greengrass/v2/developerguide/custom-provisioning.html)  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|  使用预先构建的 Docker 镜像 AWS IoT Greengrass 在 Docker 容器中运行  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 

**注意**  
AWS IoT Greengrass 可以在支持系统的 docker 容器中安装和运行。


**远程维护和更新**  

| 功能 | Linux | Windows | Greengrass Lite (Linux) | 
| --- | --- | --- | --- | 
|  执行安全 over-the-air（OTA）软件更新  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|  使用管理核心设备 AWS Systems Manager  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  通过 AWS IoT 安全隧道连接至核心设备  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 


**机器学习**  

| 功能 | Linux | Windows | Greengrass Lite (Linux) | 
| --- | --- | --- | --- | 
|  使用 Amazon A SageMaker I 边缘管理器执行机器学习推理  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  使用 Amazon Lookout for Vision 执行机器学习推理  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  使用 DLR 执行机器学习推理  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  使用执行机器学习推理 TensorFlow  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 


**组件功能**  

| 功能 | Linux | Windows | Greengrass Lite (Linux) | 
| --- | --- | --- | --- | 
|  部署和调用 Lambda 函数  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  在组件中运行 Docker 容器  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|  使用流管理器处理和导出大容量数据流  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|  通过生命周期脚本管理组件生命周期  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|  与设备影子交互  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  将日志上传到 Amazon CloudWatch 日志  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|  使用 CloudWatch 指标组件将数据上传到 Amazon CloudWatch 指标  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|  使用 Amazon SNS 组件将消息发布到 Amazon Simple Notification Service  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  使用流管理器将数据发布到 Amazon Kinesis Data Streams 传送流  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|  使用 Firehose 组件将数据发布到 Amazon Data Firehose 传输流  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  收集和处理实时系统遥测指标  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  为组件进程配置系统资源限制  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  暂停和恢复组件进程  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  与 AWS IoT SiteWise 使用 AWS IoT SiteWise 组件进行集成  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  使用 Kinesis Video Streams 组件的边缘连接器将视频流发布到 Amazon Kinesis Video Streams  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 


**组件开发**  

| 功能 | Linux | Windows | Greengrass Lite (Linux) | 
| --- | --- | --- | --- | 
|  在核心设备上本地开发组件  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|  使用 AWS IoT Greengrass CLI 与核心设备进行交互  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  使用本地调试控制台与核心设备交互  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 
|  在自定义组件中使用 AWS IoT Device SDK 适用于 Python 的  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|  在自定义组件中 AWS IoT Device SDK 使用 for C\$1\$1  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 
|  在自定义组件中使用 AWS IoT Device SDK 适用于 Java 的  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   | 


**设备认证**  

| 功能 | Linux | Windows | Greengrass Lite (Linux) | 
| --- | --- | --- | --- | 
|   AWS IoT Device Tester 用于验证 AWS IoT Greengrass V2 物联网设备  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-yes.png) 是   |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/zh_cn/greengrass/v2/developerguide/images/icon-no.png)没有   | 

# 选择你的 n AWS IoT Greengrass ucleus 运行时间
<a name="choosing-your-runtime"></a>

从版本2.14.0开始， AWS IoT Greengrass 提供了其设备运行时的两种替代实现，一种名为nucleus的可执行文件。尽管实现方式有所不同，但这两个运行时都与该 AWS IoT Greengrass 服务兼容， APIs 并且允许您使用 Greengrass SDK 部署提供的组件 AWS 或开发自定义组件。同样也可以混合使用设备，根据需要在同一实例集中使用任一类型的 Nucleus。

但是，为了实现所需的可移植性或特定的省内存好处，必须确保在 Greengrass 设备上部署的 Nucleus 与打算用于加速 AWS IoT 解决方案开发的组件兼容。要了解有关组件兼容性的更多信息，请参阅[组件](https://docs.aws.amazon.com/greengrass/v2/developerguide/public-components.html)。

最终，如何在两个 Greengrass 运行时选项之间进行选择将取决于您的特定用例、设备限制、功能要求和操作系统。

## Greengrass Nucleus
<a name="w2ab1b6c19b9"></a>

AWS IoT Greengrass nucleus 是功能齐全的运行时，它使您能够在各种设备 AWS IoT Greengrass 上运行，包括具有更多计算资源的网关、服务器和边缘设备。在以下情况下，可以考虑选择 Greengrass 核：
+ **计算资源：**您的设备有足够的计算资源，例如超过 128 MB 的 RAM 和相对强大的处理器（例如，大于 1 个 GHz 时钟）。
+ **需要全面的操作系统支持：**Greengrass nucleus 支持最广泛的操作系统（包括大多数 Linux 发行版和 Windows）。
+ **组件兼容性：**Greengrass nucleus 与服务团队和合作伙伴发布的现有组件完全兼容。 AWS IoT 

## Greengrass Nucleus Lite
<a name="w2ab1b6c19c11"></a>

AWS IoT Greengrass nucleus lite 是一款轻量级的开源运行时，可让您在资源受限 AWS IoT Greengrass 的设备上运行。这对于具有大量应用程序的低成本单板计算机很有用，例如智能家居中心、智能电表、智能汽车、边缘人工智能和机器人。如果您的设备符合以下条件，可考虑选择 Greengrass Nucleus Lite
+ **资源受限：**您的设备资源有限，例如 RAM 内存（512 MB 或更小）、存储（FLASH）空间或低性能处理器（小于 1）。 GHz
+ **依赖性限制：**您的设备供应商软件平台不支持 Java 或 Greengrass 核心所需的特定 JVM。
+ **操作系统：**设备运行的是支持 *systemd* 的 Linux 发行版（例如：Ubuntu、Yocto）。

### Greengrass Nucleus Lite 当前的局限性
<a name="w2ab1b6c19c11b7"></a>

正如 AWS IoT Greengrass v2.14.0 中包含的那样，Greengrass nucleus lite (v.2.0.0) 运行时提供了 Greengrass nucleus (v2.14.0) 提供的部分功能。

 AWS IoT Greengrass IPC（进程间通信）机制允许组件与 Greengrass 核通信。Nucleus 的轻量级版本支持以下子集：


| 功能 | 可用性 | 
| --- | --- | 
|  SubscribeToTopic  |  可用  | 
|  PublishToTopic  |  可用  | 
|  PublishToIoTCore  |  可用  | 
|  SubscribeToIoTCore  |  可用  | 
|  UpdateState  |  暂不可用  | 
|  SubscribeToComponentUpdates  |  暂不可用  | 
|  DeferComponentUpdate  |  暂不可用  | 
|  GetConfiguration  |  可用  | 
|  UpdateConfiguration  |  可用  | 
|  SubscribeToConfigurationUpdate  |  可用  | 
|  SubscribeToValidateConfigurationUpdates  | 暂不可用。 | 
|  SendConfigurationValidityReport  | 暂不可用。 | 
|  GetSecretValue  | 暂不可用。 | 
|  PutComponentMetric  |  暂不可用  | 
|  GetComponentDetails  |  暂不可用  | 
|  RestartComponent  |  暂不可用  | 
|  StopComponent  |  暂不可用  | 
|  CreateLocalDeployment  |  可用  | 
|  CancelLocalDeployment  |  暂不可用  | 
|  GetLocalDeploymentStatus  |  暂不可用  | 
|  ListLocalDeployments  |  暂不可用  | 
|  ListComponents  |  暂不可用  | 
|  ValidateAuthorizationToken  |  可用  | 
|  CreateDebugPassword  |  暂不可用  | 
|  PauseComponent  |  暂不可用  | 
|  ResumeComponent  | 暂不可用 | 
|  GetThingShadow  | 暂不可用 | 
|  UpdateThingShadow  | 暂不可用 | 
|  DeleteThingShadow  |  暂不可用  | 
|  ListNamedShadowsForThing  | 暂不可用 | 
|  SubscribeToCertificateUpdates  |  暂不可用  | 
|  VerifyClientDeviceIdentity  | 暂不可用 | 
|  GetClientDeviceAuthToken  | 暂不可用 | 
|  AuthorizeClientDeviceAction  | 暂不可用 | 