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

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

安装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 设备设置为您的 Linux 或 Windows 设备Amazon IoT Greengrass核心设备。

为设置 Linux 设备Amazon IoT Greengrass V2

  1. 安装 Java 运行时,Amazon IoT Greengrass核心软件需要运行。建议使用Amazon 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

    安装完成后,运行以下命令以验证 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/sudoersfile。

      sudo visudo
    2. 确认该用户的权限类似于以下示例。

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

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

    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

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

    提示:在 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
  5. 按照中的要求列表在设备上安装所有其他必需的依赖项设备要求.

注意

此功能适用于 v2.5.0 及更高版本Greengrass 核组件.

为设置 Windows 设备Amazon IoT Greengrass V2

  1. 安装 Java 运行时,Amazon IoT Greengrass核心软件需要运行。建议使用Amazon Corretto 11要么OpenJDK 11.

  2. 检查 Java 是否在上可用路径系统变量,如果不是,则将其添加。这些区域有: LocalSystem 账户运行Amazon IoT Greengrass核心软件,因此必须将 Java 添加到 PATH 系统变量中,而不是为用户添加 PATH 用户变量。执行以下操作:

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

    2. 类型environment variables从 “开始” 菜单中搜索系统选项。

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

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

    5. 下面系统变量,sectPath (路径),然后选择编辑. 在里面编辑环境变量窗口,你可以在单独的行上查看每条路径。

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

      C:\Program Files\Amazon Corretto\jdk11.0.13_8\bin
    7. 如果 Java 安装是bin中缺少文件夹Path (路径),选择new将其添加,然后选择好吧.

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

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

    net user /add ggc_user password
    提示

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

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

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

      wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
  5. 下载并安装PsExec实用程序来自设备上的微软。

  6. 使用 PsExec 实用程序,用于将默认用户的用户名和密码存储在 Credential Manager 实例中 LocalSystem 账户。Replace(替换)密码使用您之前设置的用户密码。

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

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

    注意

    在 Windows 设备上, LocalSystem 账户运行 Greengrass 核心,你必须使用 PsExec 实用程序,用于将默认用户信息存储在 LocalSystem 账户。使用 Credential Manager 应用程序将此信息存储在当前登录用户的 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来自以下位置的核心软件。Replace(替换)版本有待下载的版本。

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将核心软件保存到设备上的某个文件夹。Replace(替换)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核心软件。

安装 Amazon IoT Greengrass Core 软件

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

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

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

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

    重要

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

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

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

注意

如果你正在跑步Amazon IoT Greengrass在内存有限的设备上,你可以控制内存量Amazon IoT Greengrass核心软件用途。要控制内存分配,可以在中设置 JVM 堆大小选项jvmOptions你的核心组件中的配置参数。有关更多信息,请参阅 使用 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 核心设备与 Greengrass 通信的策略Amazon IoT和Amazon IoT Greengrass. 如果Amazon IoT策略不存在,安装程序会创建一个许可策略Amazon IoT使用此名称的策略。您可以根据自己的用例限制此策略的权限。有关更多信息,请参阅 最低Amazon IoT用于 的 策略Amazon IoT Greengrass V2核心设备

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

    8. GreengrassCoreTokenExchangeRoleAlias. IAM 角色的别名,允许 Greengrass 核心设备稍后获得临时证书。如果角色别名不存在,安装程序会创建它并将其指向您指定的 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. 如果您已安装,请跳过本步骤Greengrassv2.0.4 或更高版本。如果您下载了最新版本的软件,则安装了 v2.0.4 或更高版本。

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

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

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

注意

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

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

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