本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
安装具有自动资源配置功能的 AWS IoT Greengrass Core 软件
AWS IoT Greengrass 核心软件包括一个安装程序,可将您的设备设置为 Greengrass 核心设备。要快速设置设备,安装程序可以预配置核心设备运行所需 AWS IoT 的事物、事物组、IAM AWS IoT 角色和角色别名。 AWS IoT 安装程序还可以将本地开发工具部署到核心设备,因此您可以使用该设备开发和测试自定义软件组件。安装程序需要 AWS 凭据才能配置这些资源和创建部署。
如果您无法向设备提供 AWS 凭据,则可以配置核心设备运行所需的 AWS 资源。您还可以将开发工具部署到核心设备上,用作开发设备。这使您能够在运行安装程序时向设备提供较少的权限。有关更多信息,请参阅 使用手动资源配置来安装 AWS IoT Greengrass Core 软件。
重要
在下载 AWS IoT Greengrass 核心软件之前,请检查您的核心设备是否满足安装和运行 AWS IoT Greengrass 酷睿软件 v2.0 的要求。
设置设备环境
按照本节中的步骤,将 Linux 或 Windows 设备设置为您的 AWS IoT Greengrass 核心设备。
设置 Linux 设备
设置 Linux 设备用于 AWS IoT Greengrass V2
-
安装 Java 运行时, AWS IoT Greengrass 核心软件需要运行该运行时。我们建议您使用 Amazon Corretto
或 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 -
对于 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)
-
-
(可选)创建在设备上运行组件的默认系统用户和组。您也可以选择让 AWS IoT Greengrass 核心软件安装程序在安装过程中使用安装程序参数创建此用户和组。
--component-default-user有关更多信息,请参阅 安装程序参数。sudo useradd --system --create-home ggc_user sudo groupadd --system ggc_group -
验证运行 AWS IoT Greengrass Core 软件的用户(通常
root)是否有权sudo与任何用户和任何组一起运行。-
运行以下命令以打开
/etc/sudoers文件。sudo visudo -
验证用户的权限是否如以下示例所示。
root ALL=(ALL:ALL) ALL
-
-
(可选)要运行容器化 Lambda 函数,必须启用 cgroups
v1,且必须启用并装载内存和设备 cgroups。如果您不打算运行容器化 Lambda 函数,则可跳过此步骤。 要启用这些 cgroups 选项,请使用以下 Linux 内核参数启动设备。
cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0有关查看和设置设备内核参数的信息,请参阅适用于您操作系统和启动加载程序的文档。按照说明永久设置内核参数。
-
按照 设备要求 中的要求列表所示,在您的设备上安装所有其他必需的依赖关系。
设置 Windows 设备
注意
此功能适用于 Greengrass Nucleus 组件 v2.5.0 及更高版本。
要将 Windows 设备设置为 AWS IoT Greengrass V2
-
安装 Java 运行时, AWS IoT Greengrass 核心软件需要运行该运行时。我们建议您使用 Amazon Corretto
或 OpenJDK 长期支持版本。需要版本 8 或更高版本。 -
检查在 PATH
系统变量上是否有 Java 可用,如果没有,请进行添加。该 LocalSystem 帐户运行 AWS IoT Greengrass Core 软件,因此您必须将 Java 添加到 PATH 系统变量中,而不是用户的 PATH 用户变量。执行以下操作: -
按下 Windows 键打开开始菜单。
-
键入
environment variables以从开始菜单中搜索系统选项。 -
在开始菜单搜索结果中,选择编辑系统环境变量,以打开系统属性窗口。
-
选择环境变量...,打开环境变量窗口。
-
在系统变量下,选择路径,然后选择编辑。在编辑环境变量窗口中,您可以分行查看每个路径。
-
检查 Java 安装的
bin文件夹的路径是否存在。路径可能与以下示例类似。C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin -
如果路径中缺少 Java 安装的
bin文件夹,请选择新建,添加该文件夹,然后选择确定。
-
-
以管理员身份打开 Windows 命令提示符 (
cmd.exe)。 -
在 Windows 设备上的 LocalSystem 帐户中创建默认用户。
password替换为安全密码。net user /add ggc_userpassword提示
根据您的 Windows 配置,用户密码可能会设置为在将来某个日期过期。为确保您的 Greengrass 应用程序继续运行,请跟踪密码过期时间,并在密码过期之前对其进行更新。您还可以将用户的密码设置为永不过期。
-
要检查用户及其密码的过期时间,请运行以下命令。
net userggc_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"}
-
-
从微软下载该PsExec实用程序
并将其安装到设备上。 -
使用该 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 帐户中。
为设备提供 AWS 凭证
向设备提供您的 AWS 凭据,以便安装程序可以配置所需的 AWS 资源。有关所需权限的更多信息,请参阅 安装程序配置资源的最低 IAM 策略。
为设备提供 AWS 凭证
-
向设备提供您的 AWS 证书,以便安装程序可以为您的核心设备配置 AWS IoT 和 IAM 资源。为了提高安全性,我们建议您为 IAM 角色获取临时凭证,该凭证仅允许预置所需的最低权限。有关更多信息,请参阅 安装程序配置资源的最低 IAM 策略。
注意
安装程序不会保存或存储您的凭证。
在您的设备上,执行以下任一操作以检索凭证并将其提供给 AWS IoT Greengrass Core 软件安装程序:
-
(推荐)使用来自的临时证书 AWS IAM Identity Center
-
提供来自 IAM Identity Center 的访问密钥 ID、秘密访问密钥和会话令牌。有关更多信息,请参阅《IAM Identity Center 用户指南》的获取和刷新临时凭证中的手动凭证刷新。
-
运行以下命令为 AWS IoT Greengrass 核心软件提供凭据。
-
-
使用来自 IAM 角色的临时安全凭证:
-
提供来自您担任的 IAM 角色的访问密钥 ID、秘密访问密钥和会话令牌。有关如何检索这些凭证的更多信息,请参阅《IAM 用户指南》中的请求临时安全凭证。
-
运行以下命令为 AWS IoT Greengrass 核心软件提供凭据。
-
-
使用 IAM 用户的长期凭证:
-
为 IAM 用户提供访问密钥 ID 和秘密访问密钥。您可以创建 IAM 用户用于预置,稍后再将其删除。有关向用户提供的 IAM 策略,请参阅 安装程序配置资源的最低 IAM 策略。有关如何检索长期凭证的更多信息,请参阅《IAM 用户指南》中的管理 IAM 用户的访问密钥。
-
运行以下命令为 AWS IoT Greengrass 核心软件提供凭据。
-
(可选)如果您创建了 IAM 用户来预置 Greengrass 设备,请删除该用户。
-
(可选)如果您使用了现有 IAM 用户的访问密钥 ID 和秘密访问密钥,请更新该用户的密钥,使其失效。有关更多信息,请参阅《AWS Identity and Access Management 用户指南》中的更新访问密钥。
-
-
下载 AWS IoT Greengrass 核心软件
您可以从以下位置下载最新版本的 AWS IoT Greengrass Core 软件:
-
https://d2s8p88vqu9w66.cloudfront。 net/releases/greengrass
-nucleus-latest.zip
注意
您可以从以下位置下载特定版本的 AWS IoT Greengrass Core 软件。version替换为要下载的版本。
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
下载 AWS IoT Greengrass 核心软件
-
在您的核心设备上,将 AWS IoT Greengrass Core 软件下载到名为的文件中
greengrass-nucleus-latest.zip。下载此软件即表示您同意Greengrass Core 软件许可协议
。 -
(可选)验证 Greengrass Nucleus 软件签名
注意
此功能适用于 Greengrass Nucleus 版本 2.9.5 及更高版本。
-
使用以下命令验证您 Greengrass Nucleus 构件的签名:
-
jarsigner调用会生成输出,指示验证结果。-
如果 Greengrass Nucleus ZIP 文件已签署,则输出将包含以下语句:
jar verified. -
如果 Greengrass Nucleus ZIP 文件未签署,则输出将包含以下语句:
jar is unsigned.
-
-
如果您提供了 Jarsigner
-certs选项以及-verify和-verbose选项,则输出还将包含详细的签名者证书信息。
-
-
将 AWS IoT Greengrass Core 软件解压缩到设备上的某个文件夹。
GreengrassInstaller替换为要使用的文件夹。 -
(可选)运行以下命令查看 AWS IoT Greengrass 核心软件的版本。
java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
重要
如果您安装的版本早于 v2.4.0 的 Greengrass nucleus,则在安装 Core 软件后请勿删除此文件夹。 AWS IoT Greengrass C AWS IoT Greengrass ore 软件使用此文件夹中的文件运行。
如果您下载的是最新版本的软件,则需要安装 v2.4.0 或更高版本,并且可以在安装 C AWS IoT Greengrass ore 软件后删除此文件夹。
安装 AWS IoT Greengrass 核心软件
使用可指定以下操作的参数运行安装程序:
-
创建核心设备运行所需的 AWS 资源。
-
指定使用
ggc_user系统用户在核心设备上运行软件组件。在 Linux 设备上,此命令还指定使用ggc_group系统组,安装程序会为您创建系统用户和组。 -
将 AWS IoT Greengrass Core 软件设置为启动时运行的系统服务。在 Linux 设备上,这需要 Systemd
初始化系统。 重要
在 Windows 核心设备上,必须将 AWS IoT Greengrass 核心软件设置为系统服务。
要使用本地开发工具设置开发设备,请指定 --deploy-dev-tools true 参数。安装完成后,部署本地开发工具可能需要一分钟时间。
有关您可以指定的参数的更多信息,请参阅安装程序参数。
注意
如果您在内存有限的设备 AWS IoT Greengrass 上运行,则可以控制 AWS IoT Greengrass 酷睿软件使用的内存量。要控制内存分配,您可以在 Nucleus 组件的 jvmOptions 配置参数中设置 JVM 堆大小选项。有关更多信息,请参阅 使用 JVM 选项控制内存分配。
安装 AWS IoT Greengrass 核心软件
-
运行 AWS IoT Greengrass 核心安装程序。如下所示替换命令中的参数值。
注意
Windows 的路径长度限制为 260 个字符。如果您使用的是 Windows,请使用
C:\greengrass\v2或D:\greengrass\v2等根文件夹,将 Greengrass 组件的路径保持在 260 个字符的限制以下。-
或/greengrass/v2C:\greengrass\v2:用于安装 C AWS IoT Greengrass ore 软件的根文件夹的路径。 -
GreengrassInstaller。 解压 AWS IoT Greengrass 核心软件安装程序的文件夹路径。 -
region。 AWS 区域 在其中查找或创建资源。 -
MyGreengrassCore。 你的 Green AWS IoT grass 核心设备的名称。如果该事物不存在,安装程序会进行创建。安装程序下载证书以进行身份 AWS IoT 验证。有关更多信息,请参阅 设备身份验证和授权 AWS IoT Greengrass。注意
事物名称不得包含英文冒号 (
:) 字符。 -
MyGreengrassCoreGroup。 你的 Greengrass 核心设备 AWS IoT 的事物组名称。如果该事物组不存在,安装程序会进行创建并向其中添加事物。如果事物组存在且有活动的部署,则核心设备将下载并运行部署指定的软件。注意
事物组名称不得包含英文冒号 (
:) 字符。 -
GreengrassV2IoTThingPolicy。 允许 Greengrass 核心设备与和通信的 AWS IoT 策略名称。 AWS IoT AWS IoT Greengrass如果该 AWS IoT 策略不存在,则安装程序会使用此名称创建允许 AWS IoT 策略。您可以根据自己的使用案例限制此策略的权限。有关更多信息,请参阅 AWS IoT Greengrass V2 核心设备的最低 AWS IoT 政策。 -
GreengrassV2TokenExchangeRole。 允许 Greengrass 核心设备获得临时证书的 IAM 角色的名称。 AWS 如果该角色不存在,则安装程序会创建该角色并附加名为的策略。有关更多信息,请参阅 授权核心设备与 AWS 服务交互。GreengrassV2TokenExchangeRoleAccess -
GreengrassCoreTokenExchangeRoleAlias。 IAM 角色的别名,允许 Greengrass 核心设备稍后获得临时证书。如果该角色别名不存在,则安装程序会自行创建,并将其指向您指定的 IAM 角色。有关更多信息,请参阅 授权核心设备与 AWS 服务交互。
重要
在 Windows 核心设备上,
--setup-system-service true必须指定将 AWS 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。
-
-
如果您安装了 Greengrass Nucleus v2.0.4 或更高版本,请跳过此步骤。如果您下载的是最新版本的软件,则说明您安装了 v2.0.4 或更高版本。
运行以下命令为 AWS IoT Greengrass 核心软件根文件夹设置所需的文件权限。
替换为您在安装命令中指定的根文件夹,并/greengrass/v2/greengrass替换为根文件夹的父文件夹。sudo chmod 755&& sudo chmod 755/greengrass/v2/greengrass
如果您将 AWS IoT Greengrass Core 软件作为系统服务安装,则安装程序会为您运行该软件。否则,您必须手动运行该软件。有关更多信息,请参阅 运行 AWS IoT Greengrass 核心软件。
注意
默认情况下,安装程序创建的 IAM 角色不允许访问 S3 存储桶中的组件构件。要在 Amazon S3 中部署可定义构件的自定义组件,您必须为该角色添加权限以允许核心设备检索组件构件。有关更多信息,请参阅 允许访问 S3 存储桶中的组件构件。
如果您还没有适用于组件构件的 S3 存储桶,则可以在创建存储桶后添加这些权限。
注意
当 C AWS IoT Greengrass ore 软件连接到云端时,您的设备将被识别为 Core 设备。
有关如何配置和使用软件的更多信息 AWS IoT Greengrass,请参阅以下内容: