第 2 步:设置环境 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

第 2 步:设置环境

注意

这些步骤不适用于 nucleus 精简版。

按照本节中的步骤,将 Linux 或 Windows 设备设置为您的 Amazon IoT Greengrass 核心设备。

这些步骤假设您使用搭载 Raspberry Pi 操作系统的 Raspberry Pi。如果您使用其它设备或操作系统,请查阅您设备的相关文档。

要设置 Raspberry Pi Amazon IoT Greengrass V2
  1. SSH在 Raspberry Pi 上启用以远程连接到它。有关更多信息,请参阅 Raspberry Pi 文档中的 SSH(安全外壳)

  2. 找到你的 Raspberry Pi 的 IP 地址进行连接SSH。为此,可以在 Raspberry Pi 上运行以下命令。

    hostname -I
  3. 使用以下方式连接到你的 Raspberry Pi SSH。

    在开发计算机上运行以下命令。username替换为要登录的用户名,然后pi-ip-address替换为在上一步中找到的 IP 地址。

    ssh username@pi-ip-address
    重要

    如果您的开发计算机使用的是较早版本的 Windows,那么您可能没有 ssh 命令,或者可能有 ssh 但无法连接到您的 Raspberry Pi。要连接到你的 Raspberry Pi,你可以安装和配置 Pu TTY,这是一款免费的开源SSH客户端。请查阅 Pu TTY 文档以连接到你的 Raspberry Pi。

  4. 安装 Java 运行时, Amazon IoT Greengrass 核心软件需要运行该运行时。在 Raspberry Pi 上,使用以下命令安装 Java 11。

    sudo apt install default-jdk

    安装完成后,运行以下命令验证 Java 是否已在 Raspberry Pi 上运行。

    java -version

    此命令会打印设备上运行的 Java 版本。该输出可能类似于以下示例:

    openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
提示:在 Raspberry Pi 上设置内核参数

如果您的设备是 Raspberry Pi,则可以完成以下步骤来查看和更新其 Linux 内核参数:

  1. 打开 /boot/cmdline.txt文件。此文件指定 Raspberry Pi 启动时需要应用的 Linux 内核参数。

    例如,在基于 Linux 的系统上,你可以运行以下命令来使用 GNU nano 打开文件。

    sudo nano /boot/cmdline.txt
  2. 确认 /boot/cmdline.txt 文件包含以下内核参数。systemd.unified_cgroup_hierarchy=0 参数指定使用 cgroups v1,而非 cgroups v2。

    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

    如果 /boot/cmdline.txt 文件不包含这些参数,或者包含这些参数但参数值不同,请更新该文件以包含这些参数和值。

  3. 如果您更新了 /boot/cmdline.txt 文件,请重新启动 Raspberry Pi 以应用更改。

    sudo reboot
设置 Linux 设备用于 Amazon IoT Greengrass V2
  1. 安装 Java 运行时, Amazon IoT Greengrass 核心软件需要运行该运行时。我们建议您使用 Amazon Corrett o 或JDK开放长期支持版本。需要版本 8 或更高版本。以下命令向您展示了如何在设备JDK上安装 Open。

    • 对于基于 Debian 或基于 Ubuntua 的发行版:

      sudo apt install default-jdk
    • 对于基于 Red Hat 的发行版:

      sudo yum install java-11-openjdk-devel
    • 对于 Amazon Linux 2:

      sudo amazon-linux-extras install java-openjdk11
    • 对于 Amazon Linux 2023:

      sudo dnf install java-11-amazon-corretto -y

    安装完成后,运行以下命令以验证 Java 是否在您的 Linux 设备上运行。

    java -version

    此命令会打印设备上运行的 Java 版本。例如,在基于 Debian 的发行版上,输出可能与以下示例类似。

    openjdk version "11.0.9.1" 2020-11-04
    OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
    OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
  2. (可选)创建在设备上运行组件的默认系统用户和组。您也可以选择让 Amazon IoT Greengrass 核心软件安装程序在安装过程中使用安装程序参数创建此用户和组。--component-default-user有关更多信息,请参阅 安装程序参数

    sudo useradd --system --create-home ggc_user sudo groupadd --system ggc_group
  3. 验证运行 Amazon IoT Greengrass Core 软件的用户(通常root)是否有权sudo与任何用户和任何组一起运行。

    1. 运行以下命令以打开 /etc/sudoers 文件。

      sudo visudo
    2. 验证用户的权限是否如以下示例所示。

      root ALL=(ALL:ALL) ALL
  4. (可选)要运行容器化 Lambda 函数,必须启用 cgroups v1,且必须启用并装载内存设备 cgroups。如果您不打算运行容器化 Lambda 函数,则可跳过此步骤。

    要启用这些 cgroups 选项,请使用以下 Linux 内核参数启动设备。

    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

    有关查看和设置设备内核参数的信息,请参阅适用于您操作系统和启动加载程序的文档。按照说明永久设置内核参数。

  5. 按照 设备要求 中的要求列表所示,在您的设备上安装所有其他必需的依赖关系。

要将 Windows 设备设置为 Amazon IoT Greengrass V2
  1. 安装 Java 运行时, Amazon IoT Greengrass 核心软件需要运行该运行时。我们建议您使用 Amazon Corrett o 或JDK开放长期支持版本。需要版本 8 或更高版本。

  2. 检查PATH系统变量上是否有 Java 可用,如果没有,请添加它。该 LocalSystem 帐户运行 Amazon IoT Greengrass Core 软件,因此您必须将 Java 添加到PATH系统变量中,而不是为PATH用户添加用户变量。执行以下操作:

    1. 按下 Windows 键打开开始菜单。

    2. 键入 environment variables 以从开始菜单中搜索系统选项。

    3. 在开始菜单搜索结果中,选择编辑系统环境变量,以打开系统属性窗口。

    4. 选择环境变量...,打开环境变量窗口。

    5. 系统变量下,选择路径,然后选择编辑。在编辑环境变量窗口中,您可以分行查看每个路径。

    6. 检查 Java 安装的 bin 文件夹的路径是否存在。路径可能与以下示例类似。

      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
    7. 如果路径中缺少 Java 安装的 bin 文件夹,请选择新建,添加该文件夹,然后选择确定

  3. 以管理员身份打开 Windows 命令提示符 (cmd.exe)。

  4. 在 Windows 设备上的 LocalSystem 帐户中创建默认用户。password替换为安全密码。

    net user /add ggc_user password
    提示

    根据您的 Windows 配置,用户密码可能会设置为在将来某个日期过期。为确保您的 Greengrass 应用程序继续运行,请跟踪密码过期时间,并在密码过期之前对其进行更新。您还可以将用户的密码设置为永不过期。

    • 要检查用户及其密码的过期时间,请运行以下命令。

      net user ggc_user | findstr /C:expires
    • 要将用户密码设置为永不过期,请运行以下命令。

      wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
    • 如果你使用的是已弃用该wmic命令的 Windows 10 或更高版本,请运行以下 PowerShell 命令。

      Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
  5. 从微软下载该PsExec实用程序并将其安装到设备上。

  6. 使用该 PsExec 实用程序将默认用户的用户名和密码存储在 LocalSystem 账户的凭据管理器实例中。password替换为您之前设置的用户密码。

    psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password

    如果 PsExec License Agreement打开,选择 Accept同意许可并运行命令。

    注意

    在 Windows 设备上,该 LocalSystem 帐户运行 Greengrass 核心,您必须使用 PsExec 该实用程序在帐户中存储默认用户信息。 LocalSystem 使用凭据管理器应用程序将此信息存储在当前登录用户的 Windows 帐户中,而不是 LocalSystem 帐户中。