本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Greengrass V1 核心设备升级至 Greengrass V2
验证应用程序和组件可在 Amazon IoT Greengrass V2 核心设备上运行后,您可以在当前运行 v1.x 的设备(例如生产设备)上安装 Amazon IoT Greengrass Core 软件 v2.x。然后,部署 Greengrass V2 组件,以在设备上运行您的 Greengrass 应用程序。
要将设备实例集从 V1 升级到 V2,请为每台要升级的设备完成以下步骤。您可以使用事物组将 V2 组件部署到核心设备实例集中。
提示
我们建议您创建一个脚本来自动执行设备实例集的升级过程。如果您使用 Amazon Systems Manager 管理实例集,则可以使用 Systems Manager 在每台设备上运行该脚本,将您的实例集从 V1 升级至 V2。
您可以联系您的 Amazon Enterprise Support 代表,询问有关如何以最佳方式自动执行升级过程的问题。
第 1 步:安装 Amazon IoT Greengrass Core 软件 v2.x
从以下选项中进行选择,在 V1 核心设备上安装 Amazon IoT Greengrass Core 软件 v2.x:
-
要以更少的步骤升级,您可以在安装 v2.x 软件之前卸载 v1.x 软件。
-
要在最短停机时间内升级,您可以同时安装两个版本的 Amazon IoT Greengrass Core 软件。安装 Amazon IoT Greengrass Core 软件 v2.x 并验证 V2 应用程序是否正常运行后,即可卸载 Amazon IoT Greengrass Core 软件 v1.x。在选择此选项之前,请考虑同时运行两个版本的 Amazon IoT Greengrass Core 软件所需的额外 RAM。
在安装 v2.x 之前卸载 Amazon IoT Greengrass Core v1.x
如果要按顺序升级,请先卸载 Amazon IoT Greengrass Core 软件 v1.x,再在设备上安装 v2.x。
卸载 Amazon IoT Greengrass Core 软件 v1.x
-
如果 Amazon IoT Greengrass Core 软件 v1.x 作为服务运行,则您必须停止、禁用并移除该服务。
-
停止正在运行的 Amazon IoT Greengrass Core 软件 v1.x 服务。
sudo systemctl stop greengrass
-
等待直至系统停止。您可以使用
list
命令检查服务的状态。sudo systemctl list-units --type=service | grep greengrass
-
禁用服务。
sudo systemctl disable greengrass
-
移除服务。
sudo rm /etc/systemd/system/greengrass.service
-
-
如果 Amazon IoT Greengrass Core 软件 v1.x 未作为服务运行,请使用以下命令停止进程守护程序。将
greengrass-root
替换为 Greengrass 根文件夹的名称。默认位置是/greengrass
。cd /
greengrass-root
/ggc/core/ sudo ./greengrassd stop -
(可选)将 Greengrass 根文件夹以及自定义写入文件夹(如果适用)备份到设备上的其他文件夹中。
-
使用以下命令将当前 Greengrass 根文件夹复制到其他文件夹,然后移除该根文件夹。
sudo cp -r /
greengrass-root
/path/to/greengrass-backup
rm -rf /greengrass-root
-
使用以下命令将写入文件夹移至其他文件夹,然后移除该写入文件夹。
sudo cp -r /
write-directory
/path/to/write-directory-backup
rm -rf /write-directory
-
然后,您可以使用 Amazon IoT Greengrass V2 安装说明在您的设备上安装该软件。
提示
要在将核心设备从 V1 迁移到 V2 时重复使用其身份,请按照说明通过手动预置安装 Amazon IoT Greengrass Core 软件。首先从设备中移除 V1 核心软件,然后重复使用 V1 核心设备的 Amazon IoT 事物和证书,并更新证书的 Amazon IoT 策略以授予 v2.x 软件所需的权限。
在已经运行 v1.x 的设备上安装 Amazon IoT Greengrass Core 软件 v2.x
如果您在已经运行 Amazon IoT Greengrass Core 软件 v1.x 的设备上安装 Amazon IoT Greengrass Core v2.x 软件,请记住以下几点:
-
V2 核心设备的 Amazon IoT 事物名称必须是唯一的。请勿使用与 V1 核心设备相同的事物名称。
-
用于 Amazon IoT Greengrass Core 软件 v2.x 的端口必须与用于 v1.x 的端口不同。
-
将 V1 流管理器配置为使用 8088 以外的端口。有关更多信息,请参阅配置流管理器。
-
将 V1 MQTT 代理配置为使用 8883 以外的端口。有关更多信息,请参阅为本地消息收发配置 MQTT 端口。
-
-
Amazon IoT Greengrass V2 不提供重命名 Greengrass 系统服务的选项。如果您将 Greengrass 作为系统服务运行,则必须执行以下操作之一,以避免系统服务名称发生冲突:
-
在安装 v2.x 之前,请重命名 v1.x 的 Greengrass 服务。
-
在没有系统服务的情况下安装 Amazon IoT Greengrass Core 软件 v2.x,然后手动将该软件配置为系统服务,并使用
greengrass
以外的其他名称。
重命名 v1.x Greengrass 服务
-
停止 Amazon IoT Greengrass Core 软件 v1.x 服务。
sudo systemctl stop greengrass
-
等待系统停止。服务可能需要数分钟才会停止。您可以使用
list-units
命令检查服务是否已停止。sudo systemctl list-units --type=service | grep greengrass
-
禁用服务。
sudo systemctl disable greengrass
-
对服务进行重命名。
sudo mv /etc/systemd/system/greengrass.service /etc/systemd/system/
greengrass-v1
.service -
重新加载服务并启动。
sudo systemctl daemon-reload sudo systemctl reset-failed sudo systemctl enable greengrass-v1 sudo systemctl start greengrass-v1
-
然后,您可以使用 Amazon IoT Greengrass V2 安装说明在您的设备上安装该软件。
提示
要在将核心设备从 V1 迁移到 V2 时重复使用其身份,请按照说明通过手动预置安装 Amazon IoT Greengrass Core 软件。首先从设备中移除 V1 核心软件,然后重复使用 V1 核心设备的 Amazon IoT 事物和证书,并更新证书的 Amazon IoT 策略以授予 v2.x 软件所需的权限。
第 2 步:将 Amazon IoT Greengrass V2 组件部署至核心设备
在设备上安装 Amazon IoT Greengrass Core 软件 v2.x 后,创建包含以下资源的部署。要将组件部署到由相似设备组成的实例集,请为包含这些设备的事物组创建部署。
-
您通过 V1 Lambda 函数创建的 Lambda 函数组件。有关更多信息,请参阅 运行 Amazon Lambda 函数。
-
如果您使用 V1 订阅,则为旧版订阅路由器组件。
-
如果您使用流管理器,则为流管理器组件。有关更多信息,请参阅 管理 Greengrass 核心设备上的数据流。
-
如果您使用本地密钥,则为密钥管理器组件。
-
如果您使用 V1 连接器,则为 Amazon 提供的连接器组件。
-
如果您使用 Docker 容器,则为 Docker 应用程序管理器组件。有关更多信息,请参阅 运行 Docker 容器。
-
如果您使用机器学习推理,则为用于提供机器学习支持的组件。有关更多信息,请参阅 执行机器学习推理。
-
如果您使用已连接的设备,则为客户端设备支持的组件。您还必须启用客户端设备支持,并将客户端设备与核心设备关联。有关更多信息,请参阅 与本地 IoT 设备交互。
-
如果您将日志从 Greengrass 核心设备上传至 Amazon CloudWatch Logs,则为日志管理器组件。有关更多信息,请参阅 监控 Amazon IoT Greengrass 日志。
-
如果您与 Amazon IoT SiteWise 集成,请按照说明将 V2 核心设备设置为 Amazon IoT SiteWise 网关。Amazon IoT SiteWise 提供了为您部署 Amazon IoT SiteWise 组件的安装脚本。
-
您为实现自定义功能而开发的用户定义组件。
有关创建和修改部署的更多信息,请参阅将 Amazon IoT Greengrass 组件部署至设备。