

终止支持通知：2026 年 10 月 7 日， AWS 将停止对的支持。 AWS IoT Greengrass Version 1 2026 年 10 月 7 日之后，您将无法再访问这些 AWS IoT Greengrass V1 资源。如需了解更多信息，请访问[迁移自 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)。

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

# 模块 1：Greengrass 的环境设置
<a name="module1"></a>

本模块向您展示如何准备好将 out-of-the-box Raspberry Pi、Amazon EC2 实例或其他设备用作 AWS IoT Greengrass 核心设备。 AWS IoT Greengrass 

**提示**  
或者，要使用为您设置核心设备的脚本，请参阅[快速入门：Greengrass 设备安装程序](quick-start.md)。

本模块应该需要不到 30 分钟即可完成。

在开始之前，请阅读本教程的[要求](gg-gs.md#gg-requirements)。然后，按照下列主题之一中的设置说明操作。仅选择适用于核心设备类型的主题。

**Topics**
+ [设置 Raspberry Pi](setup-filter.rpi.md)
+ [设置 Amazon EC2 实例](setup-filter.ec2.md)
+ [设置其他设备](setup-filter.other.md)

**注意**  
要了解如何使用在预构建的 Docker 容器中 AWS IoT Greengrass 运行，请参阅。[AWS IoT Greengrass 在 Docker 容器中运行](run-gg-in-docker-container.md)

# 设置 Raspberry Pi
<a name="setup-filter.rpi"></a>

按照本主题中的步骤设置 Raspberry Pi 作为 AWS IoT Greengrass 内核。

**提示**  
<a name="ggc-install-options"></a>AWS IoT Greengrass 还提供了用于安装 C AWS IoT Greengrass ore 软件的其他选项。例如，您可以使用 [Greengrass 设备](quick-start.md)设置来配置您的环境并安装最新版本的 Core 软件。 AWS IoT Greengrass 或者，在支持的 Debian 平台上，你可以使用 [APT 软件包管理器](install-ggc.md#ggc-package-manager)来安装或升级 AWS IoT Greengrass Core 软件。有关更多信息，请参阅 [安装 AWS IoT Greengrass 核心软件](install-ggc.md)。

如果您是首次设置 Raspberry Pi，则必须执行所有这些步骤。否则，可以跳至[步骤 9](#add-ggc-user-ggc-group)。不过，我们建议您使用步骤 2 中推荐的操作系统为您的 Raspberry Pi 重新创建镜像。

 

1. 下载并安装 SD 卡格式化程序，例如 [SD Memory Card Formatter](https://www.sdcard.org/downloads/formatter/)。将 SD 卡插入到您的计算机中。启动程序并选择已插入 SD 卡的驱动器。可以对 SD 卡执行快速格式化。

1. 下载 `zip` 文件格式的 [Raspbian Buster](https://downloads.raspberrypi.org/raspbian/images/raspbian-2020-02-14/) 操作系统。

1. 使用 SD 卡写入工具（例如 [Etcher](https://etcher.io/)），按照此工具的说明将下载的 `zip` 文件传输到 SD 上。由于操作系统映像很大，因此，该步骤可能需要一些时间。从您的计算机中弹出 SD 卡，然后将 microSD 卡插入您的 Raspberry Pi 上。

1. 对于第一次启动，我们建议您将 Raspberry Pi 连接到监视器 (通过 HDMI)、键盘和鼠标。接下来，将您的 Pi 连接到微型 USB 电源，然后 Raspbian 操作系统将启动。

1. 您可能需要配置 Pi 的键盘布局，然后再继续。为此，请选择右上方的 Raspberry 图标，再选择 **Preferences (首选项)**，然后选择 **Mouse and Keyboard Settings (鼠标和键盘设置)**。接下来，在 **Keyboard (键盘)** 选项卡上，选择 **Keyboard Layout (键盘布局)**，然后选择适当的键盘形式。

1. 接下来，[通过 Wi-Fi 网络将 Raspberry Pi 连接到 Internet](https://www.raspberrypi.org/documentation/configuration/wireless/desktop.md) 或者通过以太网电缆执行该操作。
**注意**  
将 Raspberry Pi 连接到计算机所连接的*相同* 网络，并确保计算机和 Raspberry Pi 能够访问 Internet，然后再继续。如果在工作环境中或者位于防火墙后面，可能需要将 Pi 和计算机连接到来宾网络，以便两个设备在同一网络上。但是，这种方法可能会断开计算机与本地网络资源（例如 Intranet）的连接。一个解决方案是将 Pi 连接到来宾 Wi-Fi 网络，将计算机连接到来宾 Wi-Fi 网络*并且* 通过以太网电缆连接到本地网络。在此配置中，计算机应该能够通过来宾 Wi-Fi 网络连接到 Raspberry Pi，并通过以太网电缆连接到本地网络资源。

1. 您必须设置 Pi 上的 [SSH](https://en.wikipedia.org/wiki/Secure_Shell) 才能远程连接到它。在您的 Raspberry Pi 上，打开[终端窗口](https://www.raspberrypi.org/documentation/usage/terminal/)并运行以下命令：

   ```
   sudo raspi-config
   ```

   您将看到以下内容：  
![\[Raspberry Pi Software Configuration Tool (raspi-config) 屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/greengrass/v1/developerguide/images/gg-get-started-001.png)

   向下滚动并选择 **Interfacing Options**，然后选择 **P2 SSH**。系统提示时，请选择 **Yes**。（使用 Tab 键，然后按 Enter）。SSH 现在应该已启用。选择**确定**。使用 Tab 键选择 **Finish (完成)**，然后按 Enter。如果 Raspberry Pi 未自动重启，请运行以下命令：

   ```
   sudo reboot
   ```

1. 在您的 Raspberry Pi 上，在终端中运行以下命令：

   ```
   hostname -I
   ```

   这将返回您的 Raspberry Pi 的 IP 地址。
**注意**  
对于下面的内容，如果收到 ECDSA 密钥指纹消息 (`Are you sure you want to continue connecting (yes/no)?`)，请输入 `yes`。Raspberry Pi 的默认密码是 **raspberry**。

   如果使用的是 macOS，请打开终端窗口并输入：

   ```
   ssh pi@IP-address
   ```

   *IP-address*是你使用`hostname -I`命令获得的 Raspberry Pi 的 IP 地址。

   如果您使用的是 Windows，则需要安装和配置 [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)。展开 **Connection (连接)**，选择 **Data (数据)**，并确保已选择 **Prompt (提示)**：  
![\[已选中提示符的 PuTTY 窗口。\]](http://docs.aws.amazon.com/zh_cn/greengrass/v1/developerguide/images/gg-get-started-001.4.png)

   接下来，选择 **Session (会话)**，输入 Raspberry Pi 的 IP 地址，然后使用默认设置选择 **Open (打开)**。  
![\[PuTTY 窗口，“Host Name (or IP address) (主机名 (或 IP 地址))”字段中包含 IP 地址。\]](http://docs.aws.amazon.com/zh_cn/greengrass/v1/developerguide/images/gg-get-started-001.5.png)

   如果显示 PuTTY 安全警报，请选择 **Yes (是)**。

   默认 Raspberry Pi 登录名和密码分别为 **pi** 和 **raspberry**。  
![\[初始 PuTTY 终端窗口。\]](http://docs.aws.amazon.com/zh_cn/greengrass/v1/developerguide/images/gg-get-started-001.6.png)
**注意**  
如果计算机使用 VPN 连接到远程网络，则可能难以使用 SSH 从计算机连接到 Raspberry Pi。

1. <a name="add-ggc-user-ggc-group"></a>现在，您可以为其设置 Raspberry Pi AWS IoT Greengrass了。首先，请从本地 Raspberry Pi 终端窗口或 SSH 终端窗口运行以下命令：
**提示**  
<a name="ggc-install-options"></a>AWS IoT Greengrass 还提供了用于安装 C AWS IoT Greengrass ore 软件的其他选项。例如，您可以使用 [Greengrass 设备](quick-start.md)设置来配置您的环境并安装最新版本的 Core 软件。 AWS IoT Greengrass 或者，在支持的 Debian 平台上，你可以使用 [APT 软件包管理器](install-ggc.md#ggc-package-manager)来安装或升级 AWS IoT Greengrass Core 软件。有关更多信息，请参阅 [安装 AWS IoT Greengrass 核心软件](install-ggc.md)。

   ```
   sudo adduser --system ggc_user
   sudo addgroup --system ggc_group
   ```

1. 为了提高 Pi 设备上的安全性，请在启动时在操作系统上启用硬链接和软链接 (symlink) 保护。

   1. 导航到 `98-rpi.conf` 文件。

      ```
      cd /etc/sysctl.d
      ls
      ```
**注意**  
如果您没有看到 `98-rpi.conf` 文件，请按照 `README.sysctl` 文件中的说明操作。

   1. 使用文本编辑器（如 Leafpad、GNU nano 或 vi）将以下两行添加到文件的末尾。您可能需要使用 `sudo` 命令以根身份进行编辑（例如，`sudo nano 98-rpi.conf`）。

      ```
      fs.protected_hardlinks = 1
      fs.protected_symlinks = 1
      ```

   1. 重启 Pi。

      ```
      sudo reboot
      ```

      在约 1 分钟后，使用 SSH 连接到 Pi，然后运行以下命令来确认更改：

      ```
      sudo sysctl -a 2> /dev/null | grep fs.protected
      ```

      您现在会看到 `fs.protected_hardlinks = 1` 和 `fs.protected_symlinks = 1`。

1. <a name="stretch-step"></a> 编辑命令行启动文件，以启用并装载内存控制组。这 AWS IoT Greengrass 允许为 Lambda 函数设置内存限制。Cgroup 还需要 AWS IoT Greengrass 在默认的[容器化](lambda-group-config.md#lambda-containerization-considerations)模式下运行。

   1.  导航到您的 `boot` 目录。

      ```
      cd /boot/
      ```

   1.  使用文本编辑器打开 `cmdline.txt`。将以下内容附加到现有行的末尾，而不是作为新行。您可能需要使用 `sudo` 命令以根身份进行编辑（例如，`sudo nano cmdline.txt`）。

      ```
      cgroup_enable=memory cgroup_memory=1
      ```

   1. 现在重启 Pi。

      ```
      sudo reboot
      ```

   您的 Raspberry Pi 现在应该已为 AWS IoT Greengrass做好准备。

1. <a name="install-java-8-runtime"></a>可选。安装[流管理器](stream-manager.md)所需的 Java 8 运行时。此教程不使用流管理器，但它将使用默认情况下启用流管理器的 **Default Group creation (默认组创建)** 工作流。在部署组之前，使用此命令在核心设备上安装 Java 8 运行时或禁用流管理器。模块 3 中提供了有关禁用流管理器的说明。

   ```
   sudo apt install openjdk-8-jdk
   ```

1. [为确保您拥有所有必需的依赖项，请从示例存储库下载并运行 Greengrass 依赖项检查器。AWS IoT Greengrass](https://github.com/aws-samples/aws-greengrass-samples) GitHub这些命令将在 `Downloads` 目录中解压和运行依赖项检查程序脚本。
**注意**  
 如果您运行的是 Raspbian 内核版本 5.4.51，则依赖项检查器可能会失败。此版本无法正确安装内存 cgroup。这可能会导致在容器模式下运行的 Lambda 函数失败。  
有关更新内核的更多信息，请参阅 Raspberry Pi 论坛中的[内核升级后未加载的 Cgroup](https://www.raspberrypi.org/forums/viewtopic.php?t=280656)。

   ```
   cd /home/pi/Downloads
   mkdir greengrass-dependency-checker-GGCv1.11.x
   cd greengrass-dependency-checker-GGCv1.11.x
   wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.11.x.zip
   unzip greengrass-dependency-checker-GGCv1.11.x.zip
   cd greengrass-dependency-checker-GGCv1.11.x
   sudo modprobe configs
   sudo ./check_ggc_dependencies | more
   ```

   出现 `more` 时，按 Spacebar 键以显示另一屏文本。
**重要**  
<a name="lambda-runtime-prereqs"></a>本教程需要 Python 3.7 运行时才能运行本地 Lambda 函数。启用流管理器后，还需要 Java 8 运行时。如果 `check_ggc_dependencies` 脚本生成提示缺少这些必备运行时的警告，请确保先安装它们，然后再继续。您可以忽略提示缺少其他可选运行时的警告。

   要获得有关 **modprobe** 命令的信息，请在终端中运行 **man modprobe**。

您的 Raspberry Pi 配置已完成。继续[模块 2：安装 AWS IoT Greengrass 核心软件](module2.md)。

# 设置 Amazon EC2 实例
<a name="setup-filter.ec2"></a>

按照本主题中的步骤设置要用作 AWS IoT Greengrass 核心的 Amazon EC2 实例。

**提示**  
或者，要使用脚本来设置您的环境并为您安装 AWS IoT Greengrass Core 软件，请参阅[快速入门：Greengrass 设备安装程序](quick-start.md)。

 尽管您可以使用 Amazon EC2 实例完成本教程，但 AWS IoT Greengrass 最好与物理硬件一起使用。我们建议您尽可能[设置 Raspberry Pi](setup-filter.rpi.md)，而不是使用 Amazon EC2 实例。如果您使用的是 Raspberry Pi，则无需按照本主题中的步骤操作。

 

1. 登录[AWS 管理控制台](https://console.aws.amazon.com/)并使用亚马逊 Linux AMI 启动亚马逊 EC2 实例。有关亚马逊 EC2实例的信息，请参阅《[亚马逊 EC2 入门指南》](https://docs.aws.amazon.com/AWSEC2/latest/GettingStartedGuide/)。

1. 在您的 Amazon EC2 实例运行后，启用端口 8883 以允许传入的 MQTT 通信，以便其他设备可以与核心连接。 AWS IoT Greengrass 

   1. 在 Amazon EC2 控制台的导航窗格中，选择**安全组**。  
![\[突出显示了安全组的导航窗格。\]](http://docs.aws.amazon.com/zh_cn/greengrass/v1/developerguide/images/gg-get-started-002.6.1.png)

   1. 选择您刚刚启动的实例的安全组，然后选择**入站规则**选项卡。

   1. 选择**编辑入站规则**。

      要启用端口 8883，您应向安全组添加自定义 TCP 规则。有关更多信息，请参阅 *Amazon EC2 用户指南*中的[向安全组添加规则](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule)。

   1. 在**编辑入站规则**页面上，选择**添加规则**，输入以下设置，然后选择**保存**。
      + 对于 **Type（类型）**，选择 **Custom TCP Rule（自定义 TCP 规则）**。
      + 对于**端口范围**，输入 **8883**。
      + 对于 **Source（源）**，请选择 **Anywhere（任何位置）**。
      + 对于**描述**，输入 **MQTT Communications**。

       

1. 连接到您的亚马逊 EC2 实例。

   1. 在导航窗格中，选择 **Instances (实例)**，选择您的实例，然后选择 **Connect (连接)**。

   1. 按照 **Connect To Your Instance (连接到您的实例)** 页面上的说明操作，[使用 SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html) 和您的私有密钥文件连接到您的实例。

   您可以对 Windows 使用 [PuTTY](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html)，对 macOS 使用终端。有关更多信息，请参阅《*亚马逊 EC2 用户指南》*中的 “[连接到您的 Linux 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)”。

   现在，您可以为设置您的 Amazon EC2 实例了 AWS IoT Greengrass。

1. 连接到 Amazon EC2 实例后，创建`ggc_user`和`ggc_group`账户：

   ```
   sudo adduser --system ggc_user
   sudo groupadd --system ggc_group
   ```
**注意**  
如果 `adduser` 命令在系统上不可用，请使用以下命令。  

   ```
   sudo useradd --system ggc_user
   ```

1. 为了提高安全性，请确保在启动时在 Amazon EC2 实例的操作系统上启用硬链接和软链接（符号链接）保护。
**注意**  
 启用硬链接和软链接保护的步骤因操作系统而异。请参阅您的发行版的文档。

   1.  运行以下命令以检查是否启用了硬链接和软链接保护：

      ```
      sudo sysctl -a | grep fs.protected
      ```

       如果硬链接和软链接设置为 `1`，则您的保护已正确启用。继续执行步骤 6。
**注意**  
软链接以 `fs.protected_symlinks` 表示。

   1. 如果硬链接和软链接未设置为 `1`，请启用这些保护。导航到您的系统配置文件。

      ```
      cd /etc/sysctl.d
      ls
      ```

   1. 使用您最喜欢的文本编辑器（Leafpad、GNU nano 或 vi）将以下两行添加到系统配置文件的末尾。在 Amazon Linux 1 上，这是 `00-defaults.conf` 文件。在 Amazon Linux 2 上，这是 `99-amazon.conf` 文件。您可能需要更改权限（使用 `chmod` 命令）以对此文件进行写入，或使用 `sudo` 命令以根身份进行编辑（例如，`sudo nano 00-defaults.conf`）。

      ```
      fs.protected_hardlinks = 1
      fs.protected_symlinks = 1
      ```

   1. 重启 Amazon EC2 实例。

      ```
      sudo reboot
      ```

      数分钟后，使用 SSH 连接到您的实例，然后运行以下命令来确认更改。

      ```
      sudo sysctl -a | grep fs.protected
      ```

      您应该看到硬链接和软链接都设置为 1。

1. 提取并运行以下脚本以挂载 [Linux 控制组](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/resource_management_guide/ch01) (cgroups)。这 AWS IoT Greengrass 允许为 Lambda 函数设置内存限制。Cgroup 还需要 AWS IoT Greengrass 在默认的[容器化](lambda-group-config.md#lambda-containerization-considerations)模式下运行。

   ```
   curl https://raw.githubusercontent.com/tianon/cgroupfs-mount/951c38ee8d802330454bdede20d85ec1c0f8d312/cgroupfs-mount > cgroupfs-mount.sh
   chmod +x cgroupfs-mount.sh 
   sudo bash ./cgroupfs-mount.sh
   ```

   您的 Amazon EC2 实例现在应该已准备就绪 AWS IoT Greengrass。

1. <a name="install-java-8-runtime"></a>可选。安装[流管理器](stream-manager.md)所需的 Java 8 运行时。此教程不使用流管理器，但它将使用默认情况下启用流管理器的 **Default Group creation (默认组创建)** 工作流。在部署组之前，使用此命令在核心设备上安装 Java 8 运行时或禁用流管理器。模块 3 中提供了有关禁用流管理器的说明。
   + 对于基于 Debian 的发行版：

     ```
     sudo apt install openjdk-8-jdk
     ```
   + 对于基于 Red Hat 的发行版：

     ```
     sudo yum install java-1.8.0-openjdk
     ```

1. [为确保您拥有所有必需的依赖项，请从示例存储库下载并运行 Greengrass 依赖项检查器。AWS IoT Greengrass](https://github.com/aws-samples/aws-greengrass-samples) GitHub这些命令可在您的 Ama EC2 zon 实例中下载、解压缩并运行依赖项检查器脚本。

   ```
   mkdir greengrass-dependency-checker-GGCv1.11.x
   cd greengrass-dependency-checker-GGCv1.11.x
   wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.11.x.zip
   unzip greengrass-dependency-checker-GGCv1.11.x.zip
   cd greengrass-dependency-checker-GGCv1.11.x
   sudo ./check_ggc_dependencies | more
   ```
**重要**  
<a name="lambda-runtime-prereqs"></a>本教程需要 Python 3.7 运行时才能运行本地 Lambda 函数。启用流管理器后，还需要 Java 8 运行时。如果 `check_ggc_dependencies` 脚本生成提示缺少这些必备运行时的警告，请确保先安装它们，然后再继续。您可以忽略提示缺少其他可选运行时的警告。

您的 Amazon EC2 实例配置已完成。继续[模块 2：安装 AWS IoT Greengrass 核心软件](module2.md)。

# 设置其他设备
<a name="setup-filter.other"></a>

按照本主题中的步骤设置要用作 AWS IoT Greengrass 核心的设备（Raspberry Pi 除外）。

**提示**  
或者，要使用脚本来设置您的环境并为您安装 AWS IoT Greengrass Core 软件，请参阅[快速入门：Greengrass 设备安装程序](quick-start.md)。

如果您不熟悉 AWS IoT Greengrass，我们建议您使用 Raspberry Pi 或 Amazon EC2 实例作为核心设备，并按照适合您设备的[设置步骤](module1.md)进行操作。

如果你打算使用 Yocto Project 构建基于 Linux 的自定义系统，你可以使用该项目中的 AWS IoT Greengrass Bitbake Recipe。`meta-aws`此方法还可以帮助您开发支持嵌入式应用程序 AWS 边缘软件的软件平台。Bitbake 版本可在您的设备上安装、配置并自动运行 AWS IoT Greengrass Core 软件。

Yocto 项目  
一个开源协作项目，可帮助您为嵌入式应用程序构建基于 Linux 的自定义系统，无论硬件架构如何。有关更多信息，请参阅 [Yocto 项目](https://www.yoctoproject.org/)。

`meta-aws`  
一个提供 Yocto 食谱的 AWS 托管项目。你可以使用这些配方在使用和 Yocto Project 构建的基于 Linux 的系统中开发 AWS 边缘软件[OpenEmbedded](https://www.openembedded.org/wiki/Main_Page)。有关此社区支持的功能的更多信息，请参阅上的[https://github.com/aws/meta-aws](https://github.com/aws/meta-aws)项目 GitHub。

`meta-aws-demos`  
包含项目演示的 AWS 托管`meta-aws`项目。有关集成过程的更多示例，请参阅中的[https://github.com/aws-samples/meta-aws-demos](https://github.com/aws-samples/meta-aws-demos)项目 GitHub。

要使用不同的设备或[受支持的平台](what-is-gg.md#gg-platforms)，请按照本主题中的步骤操作。

1. <a name="setup-jetson"></a>如果您的核心设备是 NVIDIA Jetson 设备，则必须先使用 JetPack 4.3 安装程序刷新固件。如果要配置不同的设备，请跳至步骤 2。
**注意**  
您使用的 JetPack 安装程序版本基于您的目标 CUDA Toolkit 版本。以下说明使用 JetPack 4.3 和 CUDA Toolkit 10.0。有关使用适合您设备的版本的信息，请参阅 NVIDIA 文档中的[如何安装 Jetpack](https://docs.nvidia.com/jetson/jetpack/install-jetpack/index.html)。

   1. 在运行 Ubuntu 16.04 或更高版本的物理桌面上，按照 NVIDIA 文档中的[下载和安装 JetPack ( JetPack 4.3) 中所述，使用 4.3 安装](https://docs.nvidia.com/jetson/archives/jetpack-archived/jetpack-33/index.html#jetpack/3.3/install.htm%3FTocPath%3D_____3)程序刷新固件。

      按照安装程序中的说明将所有软件包和依赖项安装在 Jetson 板上，后者必须通过 Micro-B 电缆连接到桌面。

   1. 以正常模式重启您的面板，然后将一个显示屏连接到面板。
**注意**  
使用 SSH 连接到 Jetson 板时，请使用默认用户名 (**nvidia**) 和默认密码 (**nvidia**)。

1. 运行以下命令以创建用户 `ggc_user` 和组 `ggc_group`。根据核心设备上安装的分配，运行的命令将有所不同。
   + 如果您的核心设备正在运行 OpenWrt，请运行以下命令：

     ```
     opkg install shadow-useradd
     opkg install shadow-groupadd
     useradd --system ggc_user
     groupadd --system ggc_group
     ```
   + 否则，请运行以下命令：

     ```
     sudo adduser --system ggc_user
     sudo addgroup --system ggc_group
     ```
**注意**  
如果 `addgroup` 命令在系统上不可用，请使用以下命令。  

     ```
     sudo groupadd --system ggc_group
     ```

1. <a name="install-java-8-runtime"></a>可选。安装[流管理器](stream-manager.md)所需的 Java 8 运行时。此教程不使用流管理器，但它将使用默认情况下启用流管理器的 **Default Group creation (默认组创建)** 工作流。在部署组之前，使用此命令在核心设备上安装 Java 8 运行时或禁用流管理器。模块 3 中提供了有关禁用流管理器的说明。
   + 对于基于 Debian 或基于 Ubuntua 的发行版：

     ```
     sudo apt install openjdk-8-jdk
     ```
   + 对于基于 Red Hat 的发行版：

     ```
     sudo yum install java-1.8.0-openjdk
     ```

1. [为确保您拥有所有必需的依赖项，请从示例存储库下载并运行 Greengrass 依赖项检查器。AWS IoT Greengrass](https://github.com/aws-samples/aws-greengrass-samples) GitHub这些命令将解压和运行依赖项检查程序脚本。

   ```
   mkdir greengrass-dependency-checker-GGCv1.11.x
   cd greengrass-dependency-checker-GGCv1.11.x
   wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.11.x.zip
   unzip greengrass-dependency-checker-GGCv1.11.x.zip
   cd greengrass-dependency-checker-GGCv1.11.x
   sudo ./check_ggc_dependencies | more
   ```
**注意**  
该`check_ggc_dependencies`脚本在 AWS IoT Greengrass 支持的平台上运行，需要特定的 Linux 系统命令。有关更多信息，请参阅依赖项检查程序的[自述文件](https://github.com/aws-samples/aws-greengrass-samples/blob/master/greengrass-dependency-checker-GGCv1.11.x/README.md)。

1. 按照依赖项检查程序输出的指示，在设备上安装所有必需的依赖项。对于缺少的内核级别依赖项，您可能需要重新编译内核。要安装 Linux 控制组 (`cgroups`)，您可以运行 [cgroupfs-mount](https://raw.githubusercontent.com/tianon/cgroupfs-mount/master/cgroupfs-mount) 脚本。这 AWS IoT Greengrass 允许为 Lambda 函数设置内存限制。Cgroup 还需要 AWS IoT Greengrass 在默认的[容器化](lambda-group-config.md#lambda-containerization-considerations)模式下运行。

   如果输出中没有出现错误，则 AWS IoT Greengrass 应该能够在您的设备上成功运行。
**重要**  
<a name="lambda-runtime-prereqs"></a>本教程需要 Python 3.7 运行时才能运行本地 Lambda 函数。启用流管理器后，还需要 Java 8 运行时。如果 `check_ggc_dependencies` 脚本生成提示缺少这些必备运行时的警告，请确保先安装它们，然后再继续。您可以忽略提示缺少其他可选运行时的警告。

   有关 AWS IoT Greengrass 要求和依赖关系的列表，请参阅[支持的平台和要求](what-is-gg.md#gg-platforms)。