Amazon IoT Greengrass Version 1在 2023 年 6 月 30 日之前,将不再接收功能更新,并且将仅收到安全补丁和错误修复。有关更多信息,请参阅Amazon IoT Greengrass V1维护时段。我们强烈建议您迁移到Amazon IoT Greengrass Version 2,这增加了重要的新功能并支持其他平台。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
快速入门:Greengrass 设备设置
Greengrass 设备安装程序是一个脚本,可在几分钟内安装好核心设备,让您开始使用Amazon IoT Greengrass. 使用此脚本可以:
配置您的设备并安装Amazon IoT GreengrassCore 软件。
配置基于云的资源。
可以选择使用 Hello World Lambda 函数部署 Greengrass 组并将 MQTT 消息发送到Amazon IoT来自 的Amazon IoT Greengrass核心。此操作如下图所示设置 Greengrass 环境。
要求
Greengrass 设备安装程序具有以下要求:
-
您的核心设备必须使用支持的平台。设备必须安装了适当的软件包管理器:
apt
、yum
或opkg
。 -
运行脚本的 Linux 用户必须具有以
sudo
身份运行的权限。 -
您必须提供您的Amazon Web Services 账户凭证。有关更多信息,请参阅 提供Amazon Web Services 账户证书。
注意 Greengrass 设备安装程序会在设备上安装最新版本的 Amazon IoT Greengrass 核心软件。安装 Amazon IoT Greengrass 核心软件即表示您同意 Greengrass 核心软件许可协议
。
运行 Greengrass 设备安装程序
您只需几个步骤即可运行 Greengrass 设备安装程序。在你提供你的Amazon Web Services 账户证书时,脚本会预置您的 Greengrass 核心设备,并在几分钟内部署 Greengrass 组。在目标设备上的终端窗口中运行以下命令。
以下步骤介绍如何在交互模式下运行脚本,这会提示您输入或接受每个输入值。有关如何以无提示方式运行脚本的信息,请参阅 在无提示模式下运行 Greengrass 设备安装程序。
-
提供凭证。在此过程中,我们假定您提供临时安全凭证作为环境变量。
export AWS_ACCESS_KEY_ID=
AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
注意 如果您在 Raspbian 上运行 Greengrass 设备安装程序或 OpenWrt platform,复制这些命令。重新启动设备后,必须再次提供它们。
-
下载并启动脚本。您可以使用
curl
或wget
下载脚本。-
wget
:wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass-interactive
-
curl
:curl https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh > gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass-interactive
-
在命令提示符下继续输入值。您可按 Enter 键使用默认值,也可键入自定义值,然后按 Enter。
该脚本将如下所示的状态消息写入终端。
-
如果核心设备正在运行 Raspbian 或 OpenWrt,请在提示时重新启动设备,提供安全安全安全安全安全安全安全安全安全安全并重新启动脚本。
-
当提示重新启动设备时,请运行以下命令之一。
-
对于 Raspbian 平台:
sudo reboot
-
适用于 OpenWrt provs.
reboot
-
设备重新启动后,打开终端并提供您的凭证作为环境变量。
export AWS_ACCESS_KEY_ID=
AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
-
重新启动脚本。
sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass-interactive
-
当提示是使用上一个会话中的输入值还是启动新安装时,输入
yes
以重复使用输入值。注意 在需要重新启动的平台上,上一个会话中的输入值(凭证除外)将临时存储在
GreengrassDeviceSetup.config.info
文件中。
安装完成后,终端会显示如下所示的状态消息。
-
-
查看脚本使用您提供的输入值配置的新 Greengrass 组。
-
登录到。Amazon Web Services Management Console
在您的计算机上打开Amazon IoT控制台。 注意 确保Amazon Web Services 区域在控制台中选择的内容与您用于配置 Greengrass 环境的相同。区域默认为美国西部(俄勒冈)。
-
在导航窗格中,展开Greengrass 设备,然后选择组 (V1)以查找新创建的组。
-
-
如果您包含了 Hello World Lambda 函数,则 Greengrass 设备安装程序会将 Greengrass 组部署到您的核心设备。要测试 Lambda 函数,或者要了解如何从组中移除 Lambda 函数,请继续执行以下操作验证 Lambda 函数是否在核心设备上运行入门教程的模块 3-1。
注意 确保Amazon Web Services 区域在控制台中选择的内容与您用于配置 Greengrass 环境的相同。区域默认为美国西部(俄勒冈)。
如果您没有包含 Hello World Lambda 函数,可以运行创建你自己的 Lambda 函数或者尝试其他 Greengrass 功能。例如,您可以将 Docker 应用程序部署连接器添加到组,并使用它将 Docker 容器部署到您的核心设备。
排查问题
可以使用以下信息解决与相关的问题Amazon IoT Greengrass设备设置。
Error: 找不到 Python (python3.7)。正在尝试安装它...
解决方案:当使用 Amazon EC2 实例时,您可能会看到此错误。当 Python 未安装在/usr/bin/python3.7
folder。要解决此错误,请在安装 Python 后将其移至正确的目录:
sudo ln -s /usr/local/bin/python3.7 /usr/bin/python3.7
其他问题排查
排查方面的其他问题Amazon IoT Greengrass设备安装程序时,您可以在日志文件中查找调试信息:
有关 Greengrass 设备安装程序配置的问题,请查阅
/tmp/greengrass-device-setup-bootstrap-
文件。epoch-timestamp
.log有关 Greengrass 组或核心环境安装的问题,请查阅与
gg-device-setup-latest.sh
目录相同或指定位置中的GreengrassDeviceSetup-
文件。date
-time
.log
有关故障排除的更多帮助,请参阅排除 Amazon IoT Greengrass 的故障或者查看Amazon IoT Greengrasstag onAmazonre: Post
Greengrass 设备安装程序配置选项
您可以配置 Greengrass 设备安装程序以访问您的Amazon资源并设置您的 Greengrass 环境。
提供Amazon Web Services 账户证书
Greengrass 设备设置使用您的Amazon Web Services 账户凭据来访问您的Amazon资源的费用。它支持为 IAM 用户提供长期安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全
首先,获取您的凭证。
要使用长期安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全。有关为长期凭证创建访问密钥的信息,请参阅管理 IAM 用户的访问密钥中的IAM 用户指南.
要使用临时安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全密钥 有关从中获取临时安全安全安全安全安全安全安全安全安全安全安全安全安全安全Amazon STS
assume-role
命令,请参阅将临时安全凭证用于。Amazon CLI中的IAM 用户指南.
在本教程中,我们假定 IAM 用户或 IAM 角色具有管理员访问权限。
然后,通过以下两种方式之一为 Greengrass 设备设置提供您的凭证:
作为环境变量。在启动脚本之前设置
AWS_ACCESS_KEY_ID
、AWS_SECRET_ACCESS_KEY
和AWS_SESSION_TOKEN
(如果需要)环境变量,如运行 Greengrass 设备安装程序中的步骤 1 所示。作为输入值。启动脚本后,直接在终端中输入访问密钥 ID、秘密访问密钥和会话令牌(如果需要)值。
Greengrass 设备安装程序不会保存或存储您的凭证。
提供输入值
在交互模式下,Greengrass 设备安装程序会提示您提供输入值。您可按 Enter 键使用默认值,也可键入自定义值,然后按 Enter。在无提示模式下,您可以在启动脚本后提供输入值。
- Amazon访问密钥 ID
-
长期或临时安全凭证中的访问密钥 ID。仅当您不提供凭证作为环境变量时,才将此选项指定为输入值。有关更多信息,请参阅 提供Amazon Web Services 账户证书。
无提示模式的选项名称:
--aws-access-key-id
- Amazon私有访问密钥
-
长期或临时安全凭证中的秘密访问密钥。仅当您不提供凭证作为环境变量时,才将此选项指定为输入值。有关更多信息,请参阅 提供Amazon Web Services 账户证书。
无提示模式的选项名称:
--aws-secret-access-key
- Amazon会话令牌
-
临时安全凭证中的会话令牌。仅当您不提供凭证作为环境变量时,才将此选项指定为输入值。有关更多信息,请参阅 提供Amazon Web Services 账户证书。
无提示模式的选项名称:
--aws-session-token
- Amazon Web Services 区域
-
这些区域有:Amazon Web Services 区域您想要创建 Greengrass 组的位置。有关支持的列表Amazon Web Services 区域s,请参阅Amazon IoT Greengrass中的Amazon Web Services 一般参考.
默认值:
us-west-2
无提示模式的选项名称:
--region
- Group name
-
Greengrass 组的名称。
默认值:
GreengrassDeviceSetup_Group_
guid
无提示模式的选项名称:
--group-name
- 核心名称
-
Greengrass 核心的名称。核心是运行 Amazon IoT Greengrass 核心软件的 Amazon IoT 设备(事物)。核心被添加到 Amazon IoT 注册表和 Greengrass 组。如果您提供了名称,则该名称在Amazon Web Services 账户和Amazon Web Services 区域.
默认值:
GreengrassDeviceSetup_Core_
guid
无提示模式的选项名称:
--core-name
- Amazon IoT Greengrass 核心软件安装路径
-
设备文件系统中您想要在安装 Amazon IoT Greengrass 核心软件的位置。
默认值:
/
无提示模式的选项名称:
--ggc-root-path
- Hello World Lambda 函数
-
指示是否在 Greengrass 组中包含 Hello World Lambda 函数。该函数每五秒钟向
hello/world
主题发布一条 MQTT 消息。该脚本在中创建并发布此用户定义的 Lambda 函数Amazon Lambda并将其添加到您的 Greengrass 组。该脚本还会在组中创建一个订阅,该订阅允许函数向 Amazon IoT 发送 MQTT 消息。
注意 这是一个 Python 3.7 Lambda 函数。如果设备上未安装 Python 3.7 且脚本无法安装,则脚本会在终端中输出一条错误消息。要将 Lambda 函数包含在组中,必须手动安装 Python 3.7 并重新启动脚本。要创建不使用 Lambda 函数的 Greengrass 组,请重新启动脚本,然后输入
no
当系统提示包含该函数时。默认值:
no
无提示模式的选项名称:
--hello-world-lambda
-此选项没有值。如果要创建函数,请将其包含在命令中。 - 部署超时
-
Greengrass 设备安装程序停止检查 Greengrass 组部署状态之前的秒数。仅当组包含 Hello World Lambda 函数时才使用此功能。否则,不会部署该组。
部署时间取决于您的网速。如果网速较慢,您可以增加此值。
默认值:
180
无提示模式的选项名称:
--deployment-timeout
- 日志路径
-
包含 Greengrass 组和核心设置操作相关信息的日志文件的位置。使用此日志可对 Greengrass 组和核心设置过程中遇到的部署和其他问题进行故障排除。
默认值:
./
无提示模式的选项名称:
--log-path
- 详细程度
-
指示在脚本运行时是否在终端中打印详细的日志信息。您可以使用此信息对设备安装程序进行故障排除。
默认值:
no
无提示模式的选项名称:
--verbose
-此选项没有值。如果要打印详细日志信息,请将其包含在命令中。
在无提示模式下运行 Greengrass 设备安装程序
您可以在无提示模式下运行 Greengrass 设备安装程序,以便脚本不会提示您输入任何值。要在无提示模式下运行,请在启动脚本后指定 bootstrap-greengrass
模式和输入值。如果要使用输入值的默认值,则可以省略输入值。
该过程取决于你是否提供你的Amazon Web Services 账户在启动脚本之前,安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全安全
-
提供您的凭证作为环境变量。以下示例导出临时凭证,其中包括会话令牌。
export AWS_ACCESS_KEY_ID=
AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
注意 如果您在 Raspbian 上运行 Greengrass 设备安装程序或 OpenWrt platform,复制这些命令。重新启动设备后,必须再次提供它们。
-
下载并启动脚本。根据需要提供输入值。例如:
-
要使用所有默认值,请执行以下操作:
wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass
-
要指定自定义值,请执行以下操作:
wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass --region us-east-1 --group-name Custom_Group_Name --core-name Custom_Core_Name --ggc-root-path /custom/ggc/root/path --deployment-timeout 300 --log-path /customized/log/path --hello-world-lambda --verbose
注意 要使用
curl
下载脚本,请在命令中将wget -q -O
替换为curl
。 -
-
如果核心设备正在运行 Raspbian 或 OpenWrt,请在提示时重新启动设备,提供安全安全安全安全安全安全安全安全安全安全并重新启动脚本。
-
当提示重新启动设备时,请运行以下命令之一。
-
对于 Raspbian 平台:
sudo reboot
-
适用于 OpenWrt provs.
reboot
-
设备重新启动后,打开终端并提供您的凭证作为环境变量。
export AWS_ACCESS_KEY_ID=
AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
-
重新启动脚本。
sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass
-
当提示是使用上一个会话中的输入值还是启动新安装时,输入
yes
以重复使用输入值。注意 在需要重新启动的平台上,上一个会话中的输入值(凭证除外)将临时存储在
GreengrassDeviceSetup.config.info
文件中。
安装完成后,终端会显示如下所示的状态消息。
-
-
如果您包含了 Hello World Lambda 函数,则 Greengrass 设备安装程序会将 Greengrass 组部署到您的核心设备。要测试 Lambda 函数,或者要了解如何从组中移除 Lambda 函数,请继续执行以下操作验证 Lambda 函数是否在核心设备上运行入门教程的模块 3-1。
注意 确保Amazon Web Services 区域在控制台中选择的内容与您用于配置 Greengrass 环境的相同。区域默认为美国西部(俄勒冈)。
如果您没有包含 Hello World Lambda 函数,可以运行创建你自己的 Lambda 函数或者尝试其他 Greengrass 功能。例如,您可以将 Docker 应用程序部署连接器添加到组,并使用它将 Docker 容器部署到您的核心设备。
-
下载并启动脚本。提供您的凭证和您要指定的任何其他输入值。以下示例说明如何提供临时凭证,其中包括会话令牌。
-
要使用所有默认值,请执行以下操作:
wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass --aws-access-key-id AKIAIOSFODNN7EXAMPLE --aws-secret-access-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY --aws-session-token AQoDYXdzEJr1K...o5OytwEXAMPLE=
-
要指定自定义值,请执行以下操作:
wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass --aws-access-key-id AKIAIOSFODNN7EXAMPLE --aws-secret-access-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY --aws-session-token AQoDYXdzEJr1K...o5OytwEXAMPLE= --region us-east-1 --group-name Custom_Group_Name --core-name Custom_Core_Name --ggc-root-path /custom/ggc/root/path --deployment-timeout 300 --log-path /customized/log/path --hello-world-lambda --verbose
注意 如果您在 Raspbian 上运行 Greengrass 设备安装程序或 OpenWrt platforms. 重新启动设备后,必须再次提供它们。
要使用
curl
下载脚本,请在命令中将wget -q -O
替换为curl
。 -
-
如果核心设备正在运行 Raspbian 或 OpenWrt,请在提示时重新启动设备,提供安全安全安全安全安全安全安全安全安全安全并重新启动脚本。
-
当提示重新启动设备时,请运行以下命令之一。
-
对于 Raspbian 平台:
sudo reboot
-
适用于 OpenWrt provs.
reboot
-
重新启动脚本。您必须在命令中包含您的凭证,但不包括其他输入值。例如:
sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass --aws-access-key-id AKIAIOSFODNN7EXAMPLE --aws-secret-access-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY --aws-session-token AQoDYXdzEJr1K...o5OytwEXAMPLE=
-
当提示是使用上一个会话中的输入值还是启动新安装时,输入
yes
以重复使用输入值。注意 在需要重新启动的平台上,上一个会话中的输入值(凭证除外)将临时存储在
GreengrassDeviceSetup.config.info
文件中。
安装完成后,终端会显示如下所示的状态消息。
-
-
如果您包含了 Hello World Lambda 函数,则 Greengrass 设备安装程序会将 Greengrass 组部署到您的核心设备。要测试 Lambda 函数,或者要了解如何从组中移除 Lambda 函数,请继续执行以下操作验证 Lambda 函数是否在核心设备上运行入门教程的模块 3-1。
注意 确保Amazon Web Services 区域在控制台中选择的内容与您用于配置 Greengrass 环境的相同。区域默认为美国西部(俄勒冈)。
如果您没有包含 Hello World Lambda 函数,可以运行创建你自己的 Lambda 函数或者尝试其他 Greengrass 功能。例如,您可以将 Docker 应用程序部署连接器添加到组,并使用它将 Docker 容器部署到您的核心设备。