安装Amazon IoT Greengrass具有自动资源配置功能的核心软件 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

安装Amazon IoT Greengrass具有自动资源配置功能的核心软件

这个Amazon IoT Greengrass核心软件包括一个安装程序,可将您的设备设置为 Greengrass 核心设备。要快速设置设备,安装程序可以配置Amazon IoT事情,Amazon IoT事物组、IAM 角色和Amazon IoT核心设备运行所需的角色别名。安装程序还可以将本地开发工具部署到核心设备,因此您可以使用该设备开发和测试自定义软件组件。安装程序需要Amazon用于预置这些资源和创建部署的证书。

如果你不能提供Amazon设备凭证,您可以预置Amazon核心设备运行所需的资源。您也可以将开发工具部署到核心设备以用作开发设备。这使您能够在运行安装程序时向设备提供更少的权限。有关更多信息,请参阅安装Amazon IoT Greengrass具有手动资源配置功能的核心软件

重要

在你下载之前Amazon IoT Greengrass核心软件,检查您的核心设备是否符合要求安装并运行Amazon IoT Greengrass核心软件 v2.0。

设置设备环境

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

设置 Linux 设备

将 Linux 设备设置为Amazon IoT Greengrass V2
  1. 安装 Java 运行时,其中Amazon IoT Greengrass核心软件需要运行。我们建议你使用亚马逊 Corretto 11要么OpenJDK 11。以下命令向您展示了如何在您的设备上安装 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核心软件(通常root),有权运行sudo适用于任何用户和任何群组。

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

      sudo visudo
    2. 验证用户的权限是否与以下示例类似。

      root ALL=(ALL:ALL) ALL
  4. (可选)至运行容器化 Lambda 函数,你必须启用cgroupv1,并且必须启用并安装记忆设备cgroups。如果您不打算运行容器化 Lambda 函数,则可以跳过此步骤。

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

    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

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

  5. 如中的要求列表所示,在您的设备上安装所有其他必需的依赖项设备要求

设置 Windows 设备

注意

此功能适用于 v2.5.0 及更高版本的绿草核成分

将 Windows 设备设置为Amazon IoT Greengrass V2
  1. 安装 Java 运行时,其中Amazon IoT Greengrass核心软件需要运行。我们建议你使用亚马逊 Corretto 11要么OpenJDK 11

  2. 检查 Java 上是否可用路径系统变量,如果不是,则添加它。这个LocalSystem账户运行Amazon IoT Greengrass核心软件,因此必须将 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. 在中创建默认用户LocalSystemWindows 设备上的帐户。替换密码使用安全的密码。

    net user /add ggc_user password
    提示

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

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

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

      wmic UserAccount where "Name='ggc_user'" set 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账户。

提供Amazon设备凭证

提供你的Amazon您的设备凭证,以便安装程序可以预置所需的Amazon资源。有关所需权限的更多信息,请参阅安装程序配置资源的最低 IAM 策略

为了提供Amazon设备凭证
  • 提供你的Amazon设备凭据,以便安装程序可以配置Amazon IoT以及您的核心设备的 IAM 资源。为了提高安全性,我们建议您获取 IAM 角色的临时证书,该证书仅允许预置所需的最低权限。有关更多信息,请参阅安装程序配置资源的最低 IAM 策略

    注意

    安装程序不会保存或存储您的证书。

    在您的设备上,执行以下任一操作以检索凭证并将其提供给Amazon IoT Greengrass核心软件安装程序:

    • 使用 IAM 用户提供的长期证书:

      1. 为您的 IAM 用户提供访问密钥 ID 和私有访问密钥。有关如何检索长期证书的更多信息,请参阅管理 IAM 用户的访问密钥IAM 用户指南

      2. 运行以下命令向提供证书Amazon IoT Greengrass核心软件。

        Linux or Unix
        export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
        Windows Command Prompt (CMD)
        set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
        PowerShell
        $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
    • (推荐)使用 IAM 角色的临时安全证书:

      1. 提供您假定的 IAM 角色的访问密钥 ID、私有访问密钥和会话令牌。有关如何检索这些证书的更多信息,请参阅申请临时安全证书IAM 用户指南

      2. 运行以下命令向提供证书Amazon IoT Greengrass核心软件。

        Linux or Unix
        export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
        Windows Command Prompt (CMD)
        set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY set AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
        PowerShell
        $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" $env:AWS_SESSION_TOKEN="AQoDYXdzEJr1K...o5OytwEXAMPLE="

下载Amazon IoT Greengrass核心软件

你可以下载最新版本的Amazon IoT Greengrass核心软件来自以下位置:

注意

你可以下载特定版本的Amazon IoT Greengrass核心软件来自以下位置。替换版本有版本可供下载。

https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
要下载Amazon IoT Greengrass核心软件
  1. 在您的核心设备上,下载Amazon IoT Greengrass将核心软件转换为名为的文件greengrass-nucleus-latest.zip

    Linux or Unix
    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
    Windows Command Prompt (CMD)
    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
    PowerShell
    iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip

    下载此软件即表示您同意Greengrass 核心软件许可协议

  2. 解压缩Amazon IoT Greengrass将核心软件保存到设备上的文件夹。替换GreengrassInstaller使用你要使用的文件夹。

    Linux or Unix
    unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
    Windows Command Prompt (CMD)
    mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
    PowerShell
    Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\GreengrassInstaller rm greengrass-nucleus-latest.zip
  3. (可选)运行以下命令查看版本Amazon IoT Greengrass核心软件。

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
重要

如果你安装的版本早于 v2.4.0 的 Greengrass nucleus,则在安装后不要删除此文件夹Amazon IoT Greengrass核心软件。这个Amazon IoT Greengrass核心软件使用此文件夹中的文件来运行。

如果您下载了最新版本的软件,则安装了 v2.4.0 或更高版本,安装后可以删除此文件夹Amazon IoT Greengrass核心软件。

(可选)验证 Greengrass nucleus 软件签名
注意

此功能在 Greengrass nucleus 2.9.5 及更高版本中可用。

  1. 使用以下命令验证你的 Greengrass nucleus 工件的签名:

    Linux or Unix
    jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
    Windows Command Prompt (CMD)

    文件名可能看起来有所不同,具体取决于您安装的 JDK 版本。替换jdk17.0.6_10使用您安装的 JDK 版本。

    "C:\Program Files\Amazon Corretto\jdk17.0.6_10\bin\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
    PowerShell

    文件名可能看起来有所不同,具体取决于您安装的 JDK 版本。替换jdk17.0.6_10使用您安装的 JDK 版本。

    'C:\Program Files\Amazon Corretto\jdk17.0.6_10\bin\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
  2. 这个jarsigner调用产生的输出指示验证结果。

    1. 如果 Greengrass nucleus 压缩文件已签名,则输出将包含以下语句:

      jar verified.
    2. 如果 Greengrass nucleus 压缩文件未经过签名,则输出包含以下语句:

      jar is unsigned.
  3. 如果你提供了 Jarsigner-certs选项以及-verify-verbose选项,输出还包括详细的签名者证书信息。

安装 Amazon IoT Greengrass Core 软件

使用指定执行以下操作的参数运行安装程序:

  • 创建Amazon核心设备运行所需的资源。

  • 指定使用ggc_user系统用户在核心设备上运行软件组件。在 Linux 设备上,此命令还指定使用ggc_group系统组,安装程序会为您创建系统用户和组。

  • 设置Amazon IoT Greengrass核心软件作为系统服务,在启动时运行。在 Linux 设备上,这需要Systemd初始化系统。

    重要

    在 Windows 核心设备上,你必须设置Amazon IoT Greengrass核心软件即系统服务。

要使用本地开发工具设置开发设备,请指定--deploy-dev-tools true争论。安装完成后,部署本地开发工具最多可能需要一分钟。

有关您可以指定的参数的更多信息,请参见安装程序参数

注意

如果你在跑步Amazon IoT Greengrass在内存有限的设备上,你可以控制内存量Amazon IoT Greengrass核心软件用途。要控制内存分配,可以在中设置 JVM 堆大小选项jvmOptions你的 nucleus 组件中的配置参数。有关更多信息,请参阅使用 JVM 选项控制内存分配

安装 Amazon IoT Greengrass Core 软件
  1. 运行Amazon IoT Greengrass核心安装程序。按如下方式替换命令中的参数值。

    1. /greengrass/v2要么C:\greengrass\v2: 用于安装的根文件夹的路径Amazon IoT Greengrass核心软件。

    2. GreengrassInstaller。您解压缩的文件夹的路径Amazon IoT Greengrass核心软件安装程序。

    3. 领域。这个Amazon Web Services 区域在其中查找或创建资源。

    4. MyGreengrassCore。的名字Amazon IoT适合你的 Greengrass 核心设备。如果该东西不存在,则安装程序会创建它。安装程序下载证书以进行身份验证Amazon IoT事情。有关更多信息,请参阅Amazon IoT Greengrass 的设备身份验证和授权

      注意

      事物名称不能包含冒号 (:) 字符。

    5. MyGreengrassCoreGroup。的名字Amazon IoT你的 Greengrass 核心设备的事物组。如果事物组不存在,安装程序会创建它并将事物添加到其中。如果事物组存在且处于活动部署状态,则核心设备会下载并运行部署指定的软件。

      注意

      事物组名称不能包含冒号 (:) 字符。

    6. Greengrassv2IoThingPolicy。的名字Amazon IoT允许 Greengrass 核心设备与之通信的策略Amazon IoT和Amazon IoT Greengrass。如果Amazon IoT策略不存在,安装程序创建了许可证Amazon IoT这个名字的策略。您可以根据自己的用例限制此政策的权限。有关更多信息,请参阅Amazon IoT Greengrass V2核心设备的最低Amazon IoT政策

    7. Greengrassv2TokenExchangeRole。允许 Greengrass 核心设备临时使用的 IAM 角色的名称Amazon证书。如果角色不存在,则安装程序会创建该角色并创建并附加名为的策略GreengrassV2TokenExchangeRoleAccess。有关更多信息,请参阅授权核心设备与Amazon服务

    8. GreengrassCoreTokenExchangeRoleAlias。允许 Greengrass 核心设备稍后获取临时证书的 IAM 角色的别名。如果角色别名不存在,安装程序会创建它并将其指向您指定的 IAM 角色。有关更多信息,请参阅授权核心设备与Amazon服务

    Linux or Unix
    sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \ -jar ./GreengrassInstaller/lib/Greengrass.jar \ --aws-region region \ --thing-name MyGreengrassCore \ --thing-group-name MyGreengrassCoreGroup \ --thing-policy-name GreengrassV2IoTThingPolicy \ --tes-role-name GreengrassV2TokenExchangeRole \ --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias \ --component-default-user ggc_user:ggc_group \ --provision true \ --setup-system-service true
    Windows Command Prompt (CMD)
    java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^ -jar ./GreengrassInstaller/lib/Greengrass.jar ^ --aws-region region ^ --thing-name MyGreengrassCore ^ --thing-group-name MyGreengrassCoreGroup ^ --thing-policy-name GreengrassV2IoTThingPolicy ^ --tes-role-name GreengrassV2TokenExchangeRole ^ --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias ^ --component-default-user ggc_user ^ --provision true ^ --setup-system-service true
    PowerShell
    java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ` -jar ./GreengrassInstaller/lib/Greengrass.jar ` --aws-region region ` --thing-name MyGreengrassCore ` --thing-group-name MyGreengrassCoreGroup ` --thing-policy-name GreengrassV2IoTThingPolicy ` --tes-role-name GreengrassV2TokenExchangeRole ` --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias ` --component-default-user ggc_user ` --provision true ` --setup-system-service true
    重要

    在 Windows 核心设备上,必须指定--setup-system-service true来设置Amazon IoT Greengrass核心软件即系统服务。

    如果成功,安装程序会打印以下消息:

    • 如果你指定--provision,安装程序会打印Successfully configured Nucleus with provisioned resource details如果它成功配置了资源。

    • 如果你指定--deploy-dev-tools,安装程序会打印Configured Nucleus to deploy aws.greengrass.Cli component如果它成功创建了部署。

    • 如果你指定--setup-system-service true,安装程序会打印Successfully set up Nucleus as a system service如果它将软件设置为服务并运行。

    • 如果你不指定--setup-system-service true,安装程序会打印Launched Nucleus successfully如果成功并运行了该软件。

  2. 如果您已安装,请跳过此步骤绿草核v2.0.4 或更高版本。如果您下载了最新版本的软件,则安装了 v2.0.4 或更高版本。

    运行以下命令为你设置所需的文件权限Amazon IoT Greengrass核心软件根文件夹。替换/greengrass/v2使用您在安装命令中指定的根文件夹,然后替换/greengras使用父文件夹作为您的根文件夹。

    sudo chmod 755 /greengrass/v2 && sudo chmod 755 /greengrass

如果你安装了Amazon IoT Greengrass核心软件作为系统服务,安装程序为您运行软件。否则,必须手动运行该软件。有关更多信息,请参阅运行Amazon IoT GreengrassCore 软件

注意

默认情况下,安装程序创建的 IAM 角色不允许访问 S3 存储桶中的组件对象。要在 Amazon S3 中部署定义构件的自定义组件,您必须向该角色添加权限以允许您的核心设备检索组件构件。有关更多信息,请参阅允许访问 S3 存储桶以获取组件项目

如果您还没有用于存放组件工件的 S3 存储桶,则可以在创建存储桶后稍后添加这些权限。

有关如何配置和使用该软件的更多信息,以及Amazon IoT Greengrass,请参阅以下内容: