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

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

第 2 步:设置您的环境

按照本节中的步骤设置要用作Amazon IoT Greengrass核心设备的 Linux 或 Windows 设备。

这些步骤假设你在树莓派操作系统中使用树莓派。如果您使用其他设备或操作系统,请查阅设备的相关文档。

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

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

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

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

    ssh username@pi-ip-address
    重要

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

  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文件。此文件指定树莓派启动时要应用的 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 Cor retto OpenJDK 长期支持版本。需要版本 8 或更高版本。以下命令向您展示了如何在您的设备上安装 OpenJDK。

    • 对于基于 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
    • 对于亚马逊 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 函数,必须启用 c groups 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 Cor retto OpenJDK 长期支持版本。需要版本 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 帐户中创建默认用户。将密码替换为安全密码。

    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 账户的凭据管理器实例中。将密码替换为您之前设置的用户密码。

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

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

    注意

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