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

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

安装 AWS IoT Greengrass Core 软件

AWS IoT Greengrass Core 软件将 AWS 功能扩展到 AWS IoT Greengrass Core 设备,使本地设备可以在本地操作它们生成的数据。

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

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

 

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

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

 

运行 Greengrass 设备设置脚本

运行 Greengrass 设备设置以配置您的设备,安装最新的 AWS IoT Greengrass Core 软件版本,然后部署 Hello World Lambda 函数,几分钟就可以完成。有关更多信息,请参阅快速启动 Greengrass设备设置

 

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

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

  • aws-iot-greengrass-core。安装 AWS IoT Greengrass 核心软件。

  • aws-iot-greengrass-keyring。安装 GnuPG (GPG)键,用于签署 AWS IoT Greengrass 包存储库。

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

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

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

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

不支持无线 (OTA) 更新。

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

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

通过保持 aws-iot-greengrass-keyring 软件包更新,您可以接收用于对 AWS IoT Greengrass APT 存储库进行身份验证的 GPG 密钥的更新。它还可以让您更轻松地升级 AWS 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
重要

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

Requirements

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

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

    架构

    OS

    分发

    Armv8 (AArch64)

    Linux

    Arch Linux

    Armv7l

    Linux

    RaspbianBuster,2019-07-10(RaspbianBuster,)

    x86_64

    Linux

    Ubuntu 18.04

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

  • 要完成以下步骤中的步骤,必须在设备上安装以下shell命令: sudo, wgetcurl, dpkg, echo, unzip,和 tar.

使用 apt 安装 AWS IoT Greengrass Core 软件

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

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

配置 Core

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

    1. 创建 ggc_userggc_group 系统帐户。

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

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

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

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

        sudo mkdir -p /greengrass sudo tar -xzvf hash-setup.tar.gz -C /greengrass
      3. 下载根 CA 证书。有关选择适当的根CA证书的信息,请参阅 服务器身份验证AWS 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。有关更多信息,请参阅 AWS IoT Greengrass 核心配置文件.

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

    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 运行时。在 AWS IoT Greengrass 控制台中使用 Default Group creation (默认组创建) 工作流程创建组时,此功能默认启用。

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

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

       

安装 AWS IoT Greengrass Core 软件

  1. 安装 AWS 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 存储库安装 AWS IoT Greengrass Core 软件时才需要执行此步骤。

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

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

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

    systemctl start greengrass.service systemctl status greengrass.service

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

 

停止使用 APT 存储库

如果您想停止使用适用于 AWS 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 软件包还会安装可用于管理 AWS 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 容器中运行 AWS IoT Greengrass

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

注意

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

 

在 Snap 中运行 AWS IoT Greengrass

目前,AWS IoT Greengrass snap 软件仅可用于 AWS IoT Greengrass Core 版本 1.8。

的 AWS IoT Greengrass sap软件下载使您可以运行 AWS IoT Greengrass 在Linux云、桌面和 IoT 环境。这些程序包或快照包含 AWS IoT Greengrass Core 软件及其依赖项。可以在您的 Linux 环境中下载并按原样使用这些软件包。

使用 AWS IoT Greengrass 快照,可以在您的 Linux 环境中运行具有有限功能的 AWS IoT Greengrass 版本。目前,Java、Node.js 和本机 Lambda 函数不受支持。机器学习推理、连接器和非容器化 Lambda 函数也不受支持。

AWS IoT Greengrass Snap 入门

由于预先打包的 AWS IoT Greengrass snap 设计为使用系统默认值,因此,您可能需要执行以下其他步骤:

  • AWS IoT Greengrass snap 配置为使用默认的 Greengrass 用户和组配置。这使它能够轻松地与以根用户身份运行的 Greengrass 组或 Lambda 函数配合使用。如果您需要使用不以根用户身份运行的 Greengrass 组或 Lambda 函数,则需要更新这些配置并将其添加到您的系统中。

  • AWS IoT Greengrass snap 使用了许多接口,必须先连接这些接口,之后 snap 才能正常运行。在安装过程中,将自动连接这些接口。如果您使用其他 选项 设置snap时,您可能需要手动连接这些接口。

有关 AWS IoT Greengrass snap 与这些修改的更多信息,请参阅 Greengrass Snap 发布说明

  1. 通过在设备的终端中运行以下命令来安装和升级 snapd:

    sudo apt-get update && sudo apt-get upgrade snapd
  2. 如果需要使用不以根用户身份运行的 Greengrass 组或 Lambda 函数,请更新默认的 Greengrass 用户和组配置,并将这些配置添加到系统中。有关使用 AWS IoT Greengrass 更新用户和组配置的更多信息,请参阅 为组中的 Lambda 函数设置默认访问身份

    • 对于 Ubuntu Core 系统:

      • 要添加 ggc_user 用户,请使用:

        sudo adduser --extrausers --system ggc_user
      • 要添加 ggc_group 组,请使用:

        sudo addgroup --extrausers --system ggc_group
    • 对于 Ubuntu 经典系统:

      • 要将 ggc_user 用户添加到 Ubuntu 经典系统,请忽略 --extrausers 标记并使用:

        sudo adduser --system ggc_user
      • 要将 ggc_group 添加到 Ubuntu 经典系统,请忽略 --extrausers 标记并使用:

        sudo addgroup --system ggc_group
  3. 在您的终端上,运行以下命令来安装 Greengrass snap:

    sudo snap install aws-iot-greengrass
    注意

    您还可以使用 AWS IoT Greengrass snap 下载链接在本地安装 Greengrass snap。如果您要从此文件本地安装并且没有关联的断言,请使用 --dangerous 标记:

    sudo snap install --dangerous aws-iot-greengrass*.snap

    --dangerous 标记 干扰 是 AWS IoT Greengrass snap连接所需接口的能力。如果使用此标记,您必须使用 snap connect 命令。 有关更多信息,请参阅 GreengrassSnap发布说明.

  4. 安装 snap 后,运行以下命令来添加 Greengrass 证书和配置文件:

    sudo snap set aws-iot-greengrass gg-certs=/path-to-the-certs/22e592db.tgz
    注意

    如有必要,您可以通过查看 AWS IoT Greengrass 核心日志,尤其是 runtime.log。您可以打印 runtime.log 到您的终端,方法是运行以下命令:

    sudo cat /var/snap/aws-iot-greengrass/current/ggc-writable/var/log/system/runtime.log
  5. 运行以下命令可验证您的设置是否正常运行:

    $ snap services aws-iot-greengrass

    您应看到以下响应:

    Service Startup Current Notes aws-iot-greengrass.greengrassd enabled active -

您的 Greengrass 设置现已完成。您现在可以使用 AWS IoT Greengrass 控制台、AWS REST API 或 AWS CLI 部署与此 snap 关联的 Greengrass 组。有关使用控制台部署 Greengrass 组的信息,请参阅将云配置部署到 AWS IoT Greengrass 核心设备。有关使用CLI或RESTAPI部署Greengrass组的信息,请参阅 CreateDeploymentAWS IoT Greengrass API参考.

有关使用snap配置本地资源访问的更多信息 AppArmor 约束,使用贴靠RESTAPI和配置贴靠接口,请参阅 GreengrassSnap发布说明.

将 AWS IoT Greengrass Core 软件安装存档

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

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

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

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

    注意

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

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

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

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

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

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

      注意

      编写此过程的前提是 AWS 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. 启动守护程序。