安装 Amazon IoT Greengrass Core 软件 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

您正在查看Amazon IoT Greengrass Version 1.Amazon IoT Greengrass Version 2是最新的主要版本Amazon IoT Greengrass. 有关使用Amazon IoT Greengrass V2,请参阅Amazon IoT Greengrass Version 2开发人员指南.

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

安装 Amazon IoT Greengrass Core 软件

这些区域有:Amazon IoT GreengrassCore 软件扩展Amazon功能添加到Amazon IoT Greengrass核心设备,使本地设备可以在本地操作它们生成的数据。

Amazon IoT Greengrass 提供了多种选项用于安装 Amazon IoT Greengrass Core 软件:

Amazon IoT Greengrass 还提供了运行 Amazon IoT Greengrass Core 软件的容器化环境。

 

下载并解压缩 Amazon IoT Greengrass Core 软件包

选择适用于您的平台的 Amazon IoT Greengrass Core 软件,下载 tar.gz 格式的文件并在设备上解压缩。您可以下载软件的最新版本。有关更多信息,请参阅 Amazon IoT Greengrass Core 软件

 

运行 Greengrass 设备设置脚本

运行 Greengrass 设备设置以配置您的设备,安装最新的Amazon IoT Greengrass核心软件版本,几分钟就可以完成。有关更多信息,请参阅 快速入门:Greengrass 设备设置

 

从 APT 存储库安装 Amazon IoT Greengrass Core 软件

您可以使用高级封装工具 (APT) 软件包管理系统在核心设备上安装最新版本的 Amazon IoT Greengrass Core 软件。由 Amazon IoT Greengrass 提供的 APT 存储库包括以下软件包:

  • aws-iot-greengrass-core. 安装Amazon IoT GreengrassCore 软件。

  • aws-iot-greengrass-keyring. 安装 GnuPG (GPG) 密钥,用于签名Amazon IoT Greengrass程序包存储库。

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

Considerations

使用 apt 命令安装 Amazon IoT Greengrass Core 软件时,您应注意以下事项:

Amazon IoT Greengrass Core 软件安装在根目录中。

apt 命令将 Amazon IoT Greengrass Core 软件安装在根文件系统的 greengrass 目录中。如果 /greengrass 已存在,则该命令将安装新软件版本,但不会覆盖任何组信息或核心配置。

不支持无线 (OTA) 更新。

您可以使用 APT 升级Amazon IoT Greengrass核心设备上的核心软件,但不支持提供的安全更新路径。Amazon IoT GreengrassOTA 更新代理。OTA 更新代理是一个软件组件,包含在Amazon IoT Greengrass核心软件包,当您使用下载并解压缩 tar.gz 文件或者运行 Greengrass 设备设置脚本安装选项。在更新失败时回滚,以此帮助保证核心在更新后继续运行。有关更多信息,请参阅 Amazon IoT Greengrass Core 软件的 OTA 更新

默认情况下,APT 会安装最新的可用版本。

当您使用默认apt install命令时,它会安装最新版本的Amazon IoT GreengrassCore 软件。如果您运行的是以前版本Amazon IoT Greengrass核心软件,并且您希望仅升级到该版本的最新可用修补程序版本,则必须在apt install命令。例如,以下命令将安装在Amazon IoT GreengrassCore 软件。

sudo apt install aws-iot-greengrass-core=1.10.3-1

您只能为任何版本的Amazon IoT GreengrassCore 软件。安装最新的修补程序后,无法使用 APT 为该版本安装以前的修补程序版本。相反,您必须手动下载软件,然后安装它。有关特定版本的Amazon IoT GreengrassCore 软件,请参阅Amazon IoT Greengrass Core 软件版本.

我们建议您保持密钥环软件包更新。

通过保持 aws-iot-greengrass-keyring 软件包更新,您可以接收用于对 Amazon IoT Greengrass APT 存储库进行身份验证的 GPG 密钥的更新。它还可以让您更轻松地升级 Amazon IoT Greengrass Core 软件。这些受信任密钥安装在 /etc/apt/trusted.gpg.d/ 中。公有密钥的有效期为两年。如果它们过期,您必须重新配置密钥环软件包:

wget -O aws-iot-greengrass-keyring.deb https://d1onfpft10uf5o.cloudfront.net/greengrass-apt/downloads/aws-iot-greengrass-keyring.deb sudo dpkg -i aws-iot-greengrass-keyring.deb
重要

在极少数情况下,如果由 Amazon IoT Greengrass 管理的密钥受损,则必须更新 aws-iot-greengrass-keyring 软件包,用新密钥替换受损的密钥。有关更多信息,请联系 Amazon 客户支持

Requirements

以下要求适用于使用 apt 安装 Amazon IoT Greengrass Core 软件:

  • 您的设备必须运行以下一个平台:

    架构

    OS

    分配

    Armv8 (AArch64)

    Linux

    Arch Linux

    Armv7l

    Linux

    Rasp7-10

    x86_64

    Linux

    Ubuntu 18.04

  • 您必须具有设备上的 root 访问权限。

  • 要完成以下过程中的步骤,设备上必须安装了以下 shell 命令:sudowgetcurldpkgechounzip,以及 tar

使用 apt 安装Amazon IoT GreengrassCore 软件

您可以使用 APT 软件包管理系统,在设备上安装 Amazon IoT Greengrass Core 软件。在安装软件之前,可能需要完成一些核心配置步骤。

在以下过程中,在设备上的终端窗口中运行命令。

配置 Core

  1. 如果您是第一次设置 Amazon IoT Greengrass,则必须配置您的核心。如果 adduseraddgroup 命令不可用,请改为使用 useraddgroupadd

    1. 创建 ggc_userggc_group 系统帐户。

      sudo adduser --system ggc_user sudo addgroup --system ggc_group
    2. 设置核心设备证书和密钥以及核心配置文件。

      1. 按照 在 Amazon IoT 上配置 Amazon IoT Greengrass中的步骤创建一个 Greengrass 组并注册您的核心。此过程还会生成您下载的安全资源软件包。该软件包是一个 tar.gz 文件,其中包含核心设备证书、公有-私有密钥和核心配置文件。文件的名称以 10 位哈希值开头(例如,c6973960cc-setup.tar.gz),该哈希值也用于证书和密钥文件名。

        跳过下载 Amazon IoT Greengrass Core 软件的步骤 11。

      2. 将软件包传输到您的核心设备,运行以下命令来安装安全资源。将 hash 替换为 tar.gz 文件中的 10 位哈希值。

        sudo mkdir -p /greengrass sudo tar -xzvf hash-setup.tar.gz -C /greengrass
      3. 下载根 CA 证书。有关选择适当的根 CA 证书的信息,请参阅服务器身份验证中的 Amazon IoT Core 开发人员指南.

        以下举例下载 AmazonRootCA1.pem。要使用 curl,请将命令中的 wget -O 替换为 curl

        cd /greengrass/certs/ sudo wget -O root.ca.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem

      这些步骤将证书和密钥安装到 /greengrass/certs,并将配置文件安装到 /greengrass/config。有关更多信息,请参阅 Amazon IoT Greengrass 核心配置文件

  2. 下载并运行适用于 Amazon IoT Greengrass 的依赖项检查程序。依赖项检查程序可确保您拥有 Amazon IoT Greengrass Core 软件所需的所有依赖项。如果您是从一个补丁版本升级到另一个补丁版本(例如,从 v1.10.2 到 v1.10.3),则可以跳过此步骤。

    1. 在要下载脚本的目录中,运行以下命令。要使用 curl,请将命令中的 wget 替换为 curl

      mkdir greengrass-dependency-checker-GGCv1.11.x cd greengrass-dependency-checker-GGCv1.11.x wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.11.x.zip unzip greengrass-dependency-checker-GGCv1.11.x.zip cd greengrass-dependency-checker-GGCv1.11.x sudo ./check_ggc_dependencies | more
    2. 出现 more 时,按空格键以在输出中分页。

      • 如果在 Greengrass 组中启用了流管理器 ,则还必须在部署组之前安装 Java 8 运行时。默认情况下,当您使用默认创建组工作流程中的Amazon IoT Greengrass控制台创建组。

      • 您可以安装目标 Lambda 运行时(例如 Python 3.8),并忽略有关其他缺少可选运行时先决条件的警告。

      • 您可以忽略有关缺少 shell 命令的警告。这些内容均为 OTA 更新代理所需且不包括在此安装中。

       

安装 Amazon IoT Greengrass Core 软件

  1. 安装 Amazon IoT Greengrass 密钥环软件包并添加存储库。要使用 curl,请将命令中的 wget -O 替换为 curl

    wget -O aws-iot-greengrass-keyring.deb https://d1onfpft10uf5o.cloudfront.net/greengrass-apt/downloads/aws-iot-greengrass-keyring.deb sudo dpkg -i aws-iot-greengrass-keyring.deb echo "deb https://dnw9lb6lzp2d8.cloudfront.net stable main" | sudo tee /etc/apt/sources.list.d/greengrass.list
    注意

    如果您在设备上保持密钥环软件包更新,则仅在首次从 APT 存储库安装 Amazon IoT Greengrass Core 软件时才需要执行此步骤。

  2. 更新您的软件包列表。

    sudo apt update
  3. 安装 Amazon IoT Greengrass Core 软件。

    sudo apt install aws-iot-greengrass-core
  4. 启动 Greengrass 守护程序。以下命令使用Systemd 脚本安装在aws-iot-greengrass-core程序包。

    systemctl start greengrass.service systemctl status greengrass.service

    如果输出显示 Active 状态为 active (running),则守护进程成功启动。

 

停止使用 APT 存储库

如果您想停止使用适用于 Amazon IoT Greengrass 的 APT 存储库,请删除软件包并更新源列表。

注意

remove 命令会删除软件包,但不会删除您的配置信息。如果您还想永久删除所有配置信息(包括设备证书、组信息和日志文件),请将以下命令中的 remove 替换为 purge

sudo apt remove aws-iot-greengrass-core aws-iot-greengrass-keyring sudo rm /etc/apt/sources.list.d/greengrass.list sudo apt update

使用 systemd 脚本管理 Greengrass 守护程序生命周期

aws-iot-greengrass-core 软件包还会安装可用于管理 Amazon IoT Greengrass Core 软件(守护程序)生命周期的 systemd 脚本。

  • 要在引导过程中启动 Greengrass 守护程序,请执行以下操作:

    systemctl enable greengrass.service
  • 要启动 Greengrass 守护程序,请执行以下操作:

    systemctl start greengrass.service
  • 要停止 Greengrass 守护程序,请执行以下操作。

    systemctl stop greengrass.service
  • 要检查 Greengrass 守护程序的状态,请执行以下操作:

    systemctl status greengrass.service

 

在 Docker 容器中运行 Amazon IoT Greengrass

Amazon IoT Greengrass 提供 Dockerfile 和 Docker 映像,使您能够更轻松地在 Docker 容器中运行 Amazon IoT Greengrass Core 软件。有关更多信息,请参阅 Amazon IoT Greengrass Docker 软件

注意

还可以在 Greengrass 核心设备上运行 Docker 应用程序。为此,应使用 Greengrass Docker 应用程序部署连接器

 

在 Snap 中运行 Amazon IoT Greengrass

Amazon IoT Greengrass快照 1.11.x 使您能够运行Amazon IoT Greengrass通过便捷的软件包,以及所有必要的依赖关系,在容器化环境中。

注意

这些区域有:Amazon IoT Greengrass快照可用于Amazon IoT GreengrassCore 软件版本 v1.11.x。Amazon IoT Greengrass不提供 v1.x 的快照。不受支持的版本不会收到错误修复或更新。

这些区域有:Amazon IoT Greengrasssnap 不支持连接器和机器学习 (ML) 推理。

对齐概念

以下是基本的捕捉概念,可帮助您了解如何使用Amazon IoT Greengrass对齐:

通道

定义安装和跟踪快照版本以进行更新的快照组件。Snap 将自动更新到当前通道的最新版本。

接口

授予对资源(如网络和用户文件)的访问权限的快照组件。

运行Amazon IoT Greengrass捕捉时,必须连接以下接口。请注意,greengrass-support-no-container必须先连接且永远不会断开连接。

- greengrass-support-no-container - hardware-observe - home-for-hooks - hugepages-control - log-observe - mount-observe - network - network-bind - network-control - process-control - system-observe

其他接口是可选的。如果您的 Lambda 函数需要访问特定资源,则可能需要连接到相应的接口。

刷新

快照将自动更新。这些区域有:snapd守护进程是快照包管理器,默认情况下每天检查四次更新。每个更新检查都称为刷新。刷新时,守护程序停止,快照将被更新,然后重新启动守护程序。

有关更多信息,请参阅 。金鱼网站。

中的新增功能Amazon IoT Greengrass快照版本 1.11.x

下面介绍了新增功能和更改了Amazon IoT Greengrasssnap。

  • 此版本仅支持snap_daemon用户,显示为用户 ID (UID) 和组 (GID)584788.

  • 此版本仅支持非容器化的 Lambda 函数。

    重要

    由于非容器化的 Lambda 函数必须共享同一个用户(snap_daemon),则 Lambda 函数彼此之间没有隔离。有关更多信息,请参阅 。使用组特定的配置控制 Greengrass 函数的执行.

  • 此版本支持 C、C ++、Java 8、Node.js 12.x、Python 2.7、Python 3.7 和 Python 3.8 运行时。

    注意

    为了避免冗余的 Python 运行时,Python 3.7 Lambda 函数实际上运行 Python 3.8 运行时。

Amazon IoT Greengrass Snap 入门

以下步骤帮助您安装和配置Amazon IoT Greengrass在您的设备上捕捉。

Requirements

运行Amazon IoT Greengrass捕捉时,您必须执行以下操作:

  • 运行Amazon IoT Greengrass快照支持的 Linux 发行版,例如 Ubuntu、Linux 薄荷、Debian 和 Fedora。

  • 安装snapd守护进程。这些区域有:snapd守护程序,包括snap工具管理设备上的快照环境。

有关受支持的 Linux 发行版列表和安装说明的列表,请参阅。安装 Snap中的Snap 文档.

安装和配置Amazon IoT Greengrass对齐

以下教程介绍如何安装和配置Amazon IoT Greengrass在您的设备上捕捉。

注意
  • 虽然本教程使用 Amazon EC2 实例(x86 t2.micro Ubuntu 20.04),但您可以运行Amazon IoT GreengrassSnap 与物理硬件,如 Raspberry Pi。

  • 这些区域有:snapd守护进程预安装在 Ubuntu 上。

  1. 安装core18通过在设备的终端中运行以下命令来捕捉:

    sudo snap install core18

    这些区域有:core18对齐是基本对齐,它提供了一个具有常用库的运行时环境。此快照是从Ubuntu 18.04 LTS.

  2. 升级snapd通过运行以下命令:

    sudo snap install --channel=edge snapd; sudo snap refresh --channel=edge snapd
    注意

    snapd支持Amazon IoT Greengrass快照尚未到达稳定通道。建议使用--channel=edge而不是--channel=stable.

  3. 运行snap list命令来检查您是否有Amazon IoT GreengrassSnap 安装。

    以下示例响应显示snapd已安装,但aws-iot-greengrass不是。

    Name Version Rev Tracking Publisher Notes amazon-ssm-agent 3.0.161.0 2996 latest/stable/… aws✓ classic core 16-2.48 10444 latest/stable canonical✓ core core18 20200929 1932 latest/stable canonical✓ base lxd 4.0.4 18150 4.0/stable/… canonical✓ - snapd 2.48+git548.g929ccfb 10526 latest/edge canonical✓ snapd
  4. 选择以下任一选项以安装Amazon IoT Greengrass对齐 1.11.x。

    • 安装Amazon IoT Greengrass快照,请运行以下命令:

      sudo snap install aws-iot-greengrass

      响应示例:

      aws-iot-greengrass 1.11.3 from Amazon Web Services (aws) installed
    • 要从早期版本迁移到 v1.11.x 或更新到最新的可用修补程序版本,请运行以下命令:

      sudo snap refresh --channel=1.11.x aws-iot-greengrass

    与其他快照一样,Amazon IoT Greengrass快照使用通道来管理次要版本。快照会自动更新为当前通道的最新可用版本。例如,如果您指定--channel=1.11.x,您的Amazon IoT Greengrass快照将更新为 v1.11.3。

    您可以运行snap info aws-iot-greengrass命令获取可用通道列表Amazon IoT Greengrass.

  5. 运行Amazon IoT Greengrass快照,连接以下接口:

    重要

    您必须先连接greengrass-support-no-container并且永远不会断开它。

    sudo snap connect aws-iot-greengrass:greengrass-support-no-container sudo snap connect aws-iot-greengrass:hardware-observe sudo snap connect aws-iot-greengrass:home-for-hooks sudo snap connect aws-iot-greengrass:hugepages-control sudo snap connect aws-iot-greengrass:log-observe sudo snap connect aws-iot-greengrass:mount-observe sudo snap connect aws-iot-greengrass:network sudo snap connect aws-iot-greengrass:network-bind sudo snap connect aws-iot-greengrass:network-control sudo snap connect aws-iot-greengrass:process-control sudo snap connect aws-iot-greengrass:system-observe
  6. 要访问 Lambda 函数所需的特定资源,您可以连接到其他接口。

    运行以下命令以获取Amazon IoT Greengrass快照支持的接口:

    snap connections aws-iot-greengrass

    响应示例:

    Interface Plug Slot Notes camera aws-iot-greengrass:camera - - dvb aws-iot-greengrass:dvb - - gpio aws-iot-greengrass:gpio - - gpio-memory-control aws-iot-greengrass:gpio-memory-control - - greengrass-support aws-iot-greengrass:greengrass-support-no-container :greengrass-support - hardware-observe aws-iot-greengrass:hardware-observe :hardware-observe manual hardware-random-control aws-iot-greengrass:hardware-random-control - - home aws-iot-greengrass:home-for-greengrassd - - home aws-iot-greengrass:home-for-hooks :home manual hugepages-control aws-iot-greengrass:hugepages-control :hugepages-control manual i2c aws-iot-greengrass:i2c - - iio aws-iot-greengrass:iio - - joystick aws-iot-greengrass:joystick - - log-observe aws-iot-greengrass:log-observe :log-observe manual mount-observe aws-iot-greengrass:mount-observe :mount-observe manual network aws-iot-greengrass:network :network - network-bind aws-iot-greengrass:network-bind :network-bind - network-control aws-iot-greengrass:network-control :network-control - opengl aws-iot-greengrass:opengl :opengl - optical-drive aws-iot-greengrass:optical-drive :optical-drive - process-control aws-iot-greengrass:process-control :process-control - raw-usb aws-iot-greengrass:raw-usb - - removable-media aws-iot-greengrass:removable-media - - serial-port aws-iot-greengrass:serial-port - - spi aws-iot-greengrass:spi - - system-observe aws-iot-greengrass:system-observe :system-observe -

    如果您在 “插槽” 列中看到连字符 (-),则表示相应的接口未连接。

  7. 跟随配置Amazon IoT Greengrass上的Amazon IoT创建 Greengrass 组并下载安全资源和配置文件;例如c6973960cc-setup.tar.gz.

    此压缩文件包含核心设备证书和加密密钥,它们支持在 Amazon IoT Core 与 config.json 文件(其中包含特定于 Greengrass 核心的配置信息)之间进行安全通信。此信息包括证书文件的位置和 Amazon IoT Core 终端节点。

    注意

    如果您将文件下载到其他设备,请按照启动Amazon IoT Greengrass在核心设备上将文件传输到Amazon IoT Greengrass核心设备。

  8. 对于Amazon IoT Greengrass捕捉,请确保更新config.json文件,如以下所示:

    • Replacehash,其中包含用于安全资源和配置文件名的 10 位哈希号。

    • 运行tar -xzf hash-setup.tar.gz -C my-certs/命令来解压缩hash-setup.tar.gz文件。

    { ... "crypto" : { "principals" : { "SecretsManager" : { "privateKeyPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/hash.private.key" }, "IoTCertificate" : { "privateKeyPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/hash.private.key", "certificatePath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/hash.cert.pem" } }, "caPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/root.ca.pem" }, "writeDirectory": "/var/snap/aws-iot-greengrass/current/ggc-write-directory", "pidFileDirectory": "/var/snap/aws-iot-greengrass/current/pidFileDirectory" }
  9. 运行以下命令以添加您的Amazon IoT Greengrass证书和配置文件:

    sudo snap set aws-iot-greengrass gg-certs=/home/ubuntu/my-certs

部署 Lambda 函数

本节介绍如何将客户管理 Lambda 函数部署在Amazon IoT Greengrasssnap。

重要

Amazon IoT Greengrass快照 v1.11 仅支持非容器化的 Lambda 函数。

  1. 运行以下命令以启动Amazon IoT Greengrass守护程序:

    sudo snap start aws-iot-greengrass

    响应示例:

    Started.
  2. 运行以下命令以确认守护程序正在运行:

    snap services aws-iot-greengrass.greengrassd

    响应示例:

    Service Startup Current Notes aws-iot-greengrass.greengrassd disabled active -
  3. 跟随模块 3(第 1 部分):Lambda 函数上的Amazon IoT Greengrass来创建和部署一个你好世界 Lambda 函数。但是,在部署 Lambda 函数之前,请完成下一步。

  4. 请确保您的 Lambda 函数作为snap_daemon用户并处于无容器模式。要更新您的 Greengrass 组的设置,请在Amazon IoT Greengrass控制台:

    1. 登录到 Amazon IoT Greengrass 控制台。

    2. 在Amazon IoT控制台的导航窗格中,选择Greengrass经典版本 (V1)Groups.

    3. UNDERGreengrass 组下,选择目标组。

    4. 在组配置页面上的导航窗格中,选择设置.

    5. UNDERLambda 运行时环境中,执行以下操作:

      1. 适用于默认 Lambda 函数用户 ID/组 ID中,选择另一个用户 ID/组 ID,然后输入584788代表这两者的UID (number) (UID (数字))GID (number) (GID (数字)).

      2. 适用于默认 Lambda 函数容器化中,选择无容器.

停止Amazon IoT Greengrass守护程序

您可以使用snap stop命令停止服务。

停止Amazon IoT Greengrass守护进程,请运行以下命令:

sudo snap stop aws-iot-greengrass

该命令应返回Stopped..

要检查您是否已成功停止此快照,请运行以下命令:

snap services aws-iot-greengrass.greengrassd

响应示例:

Service Startup Current Notes aws-iot-greengrass.greengrassd disabled inactive -

卸载Amazon IoT Greengrass对齐

卸载Amazon IoT Greengrass快照,请运行以下命令:

sudo snap remove aws-iot-greengrass

响应示例:

aws-iot-greengrass removed

排查 方面的问题Amazon IoT Greengrass对齐

使用以下信息可帮助您解决与Amazon IoT Greengrasssnap。

获得权限被拒绝的错误。

解决方案:权限被拒绝的错误通常是由于缺少接口。有关缺少接口的列表和详细的故障排除信息,可以使用snappy-debug工具。

运行以下命令以安装此工具。

sudo snap install snappy-debug

响应示例:

snappy-debug 0.36-snapd2.45.1 from Canonical✓ installed

运行sudo snappy-debug命令在单独的终端会话中。操作将继续执行,直到出现权限被拒绝的错误。

例如,如果您的 Lambda 函数尝试读取$HOME目录中,您可能会收到以下响应:

INFO: Following '/var/log/syslog'. If have dropped messages, use: INFO: $ sudo journalctl --output=short --follow --all | sudo snappy-debug kernel.printk_ratelimit = 0 = AppArmor = Time: Dec 6 04:48:26 Log: apparmor="DENIED" operation="mknod" profile="snap.aws-iot-greengrass.greengrassd" name="/home/ubuntu/my-file.txt" pid=12345 comm="touch" requested_mask="c" denied_mask="c" fsuid=0 ouid=0 File: /home/ubuntu/my-file.txt (write) Suggestion: * add 'home' to 'plugs'

此示例显示创建/home/ubuntu/my-file.txt文件导致权限错误。它还建议您添加homeplugs. 但是,这一规定不适用。这些区域有:home-for-greengrassdhome-for-hooks插头仅授予只读访问权限。

有关更多信息,请参阅 。快速调试快照中的Snap 文档.

错误:无法执行以下任务:-为快照 “aws-iot-iot-绿草”([启动快照 .aws-iot-绿草/绿草/服务] 的服务运行服务命令 “启动” 失败,退出状态 1:快照 .aws-iot-绿草/绿草/服务的 Job 失败,因为控制进程退出时出现错误代码。 有关详细信息,请参阅 “系统 CTL 状态快照 .aws-Iot-绿草/绿草/服务” 和 “日记-xe”。)

解决方案:snap start aws-iot-greengrass命令无法启动Amazon IoT GreengrassCore 软件。

有关更多故障排除信息,请运行以下命令:

sudo snap run aws-iot-greengrass.greengrassd

响应示例:

Couldn't find /snap/aws-iot-greengrass/44/greengrass/config/config.json.

这个例子表明Amazon IoT Greengrass找不到config.json文件。您可以检查配置文件和证书文件。

/var/快照/aws-iot-绿草/当前/ggc-写目录/包/1.11.3/根/合并不是绝对路径或者是符号链接。

解决方案:这些区域有:Amazon IoT Greengrass快照仅支持非容器化的 Lambda 函数。请确保您在无容器模式下运行 Lambda 函数。有关更多信息,请参阅 。选择 Lambda 函数容器化时的注意事项中的Amazon IoT Greengrass Version 1开发人员指南.

在运行 sudo 快照刷新 snap 命令后,快照守护进程无法重新启动。

解决方案:请按照安装和配置Amazon IoT Greengrass对齐添加Amazon IoT Greengrass证书和配置文件添加到Amazon IoT Greengrasssnap。

将 Amazon IoT Greengrass Core 软件安装存档

当您升级到新版本的 Amazon IoT Greengrass 核心软件时,您可以将当前安装的版本存档。这将保留您当前的安装环境,因此,您可以在同一硬件上测试新的软件版本。这还使您能够出于任何原因轻松回滚到您的存档版本。

存档当前安装并安装新版本

  1. 下载您要升级到的 Amazon IoT Greengrass Core 软件安装程序包。

  2. 将此程序包复制到目标核心设备。有关描述如何传输文件的说明,请参阅此步骤

    注意

    稍后,您将当前的证书、密钥和配置文件复制到新的安装。

    在核心设备终端中,在以下步骤中运行命令。

  3. 确保 Greengrass 守护进程在您的核心设备上停止。

    1. 要检查守护程序是否正在运行,请执行以下操作:

      ps aux | grep -E 'greengrass.*daemon'

      如果输出包含 root/greengrass/ggc/packages/ggc-version/bin/daemon 条目,则表示守护程序正在运行。

      注意

      编写此过程的前提是 Amazon IoT Greengrass 核心软件已安装在 /greengrass 目录中。

    2. 停止 守护程序:

      cd /greengrass/ggc/core/ sudo ./greengrassd stop
  4. 将当前 Greengrass 根目录移至其他目录。

    sudo mv /greengrass /greengrass_backup
  5. 将新的软件解压缩到核心设备上。替换命令中的 os-architectureversion 占位符。

    sudo tar –zxvf greengrass-os-architecture-version.tar.gz –C /
  6. 将存档的证书、密钥和配置文件复制到新的安装。

    sudo cp /greengrass_backup/certs/* /greengrass/certs sudo cp /greengrass_backup/config/* /greengrass/config
  7. 启动守护程序:

    cd /greengrass/ggc/core/ sudo ./greengrassd start

现在,您可以进行一个组部署来测试新的安装。如果出现故障,您可以还原已存档的安装。

还原已存档的安装

  1. 停止守护程序。

  2. 删除新的 /greengrass 目录。

  3. /greengrass_backup 目录移回 /greengrass

  4. 启动守护程序。