在核心设备上安装并运行 Amazon IoT Greengrass - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon IoT Greengrass Version 1 2023 年 6 月 30 日进入延长寿命阶段。有关更多信息,请参阅 Amazon IoT Greengrass V1 维护策略。在此日期之后,将 Amazon IoT Greengrass V1 不会发布提供功能、增强功能、错误修复或安全补丁的更新。在上面运行的设备 Amazon IoT Greengrass V1 不会中断,将继续运行并连接到云端。我们强烈建议您迁移到 Amazon IoT Greengrass Version 2,这样可以添加重要的新功能支持其他平台

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

在核心设备上安装并运行 Amazon IoT Greengrass

注意

虽然本教程提供了有关在 Raspberry Pi 上启动 Amazon IoT Greengrass Core 软件的说明,但您可以使用任何受支持的设备。

本节中,您将在核心设备上配置、安装和运行 Amazon IoT Greengrass Core 软件。

要安装并运行 Amazon IoT Greengrass
  1. 从本指南的 Amazon IoT Greengrass Core 软件部分中,下载 Amazon IoT Greengrass Core 软件安装包。选择最适合核心设备的 CPU 架构、发行版和操作系统的安装包。

    • 对于 Raspberry Pi,请下载适用于 Armv7l 架构和 Linux 操作系统的软件包。

    • 对于 Amazon EC2 实例,请下载适用于 x86_64 架构和 Linux 操作系统的安装包。

    • 对于 NVIDIA Jetson TX2,请下载适用于 Armv8 (AArch64) 架构和 Linux 操作系统的安装包。

    • 对于 Intel Atom,请下载适用于 x86_64 架构和 Linux 操作系统的安装包。

  2. 在之前的步骤中,您已将五个文件下载到计算机:

    • greengrass-OS-architecture-1.11.6.tar.gz – 此压缩文件包含在核心设备上运行的 Amazon IoT Greengrass Core 软件。

    • certificateId-certificate.pem.crt – 设备证书文件。

    • certificateId-public.pem.key – 设备证书的公钥文件。

    • certificateId-private.pem.key – 设备证书的私钥文件。

    • AmazonRootCA1.pem – Amazon 根证书颁发机构 (CA) 文件。

    在此步骤中,您将计算机中的这些文件传输到核心设备。执行以下操作:

    1. 如果您不知道 Greengrass 核心设备的 IP 地址,请在核心设备上打开终端并运行以下命令。

      注意

      此命令可能无法为某些设备返回正确的 IP 地址。请参阅设备的文档以检索设备 IP 地址。

      hostname -I
    2. 将计算机中的这些文件传输到核心设备。文件传输步骤会根据计算机的操作系统而有所不同。选择您的操作系统,了解说明如何将文件传输到 Raspberry Pi 设备的步骤。

      注意

      对于 Raspberry Pi,默认用户名为 pi,默认密码为 raspberry

      对于 NVIDIA Jetson TX2,默认用户名为 nvidia,默认密码为 nvidia

      Windows

      要将压缩文件从计算机传输到 Raspberry Pi 核心设备,请使用 WinSCPPuTTY pscp 命令等工具。要使用 pscp 命令,请在计算机上打开命令提示符窗口并运行以下命令:

      cd path-to-downloaded-files pscp -pw Pi-password greengrass-OS-architecture-1.11.6.tar.gz pi@IP-address:/home/pi pscp -pw Pi-password certificateId-certificate.pem.crt pi@IP-address:/home/pi pscp -pw Pi-password certificateId-public.pem.key pi@IP-address:/home/pi pscp -pw Pi-password certificateId-private.pem.key pi@IP-address:/home/pi pscp -pw Pi-password AmazonRootCA1.pem pi@IP-address:/home/pi
      注意

      此命令中的版本号必须与您的 Amazon IoT Greengrass Core 软件包的版本一致。

      macOS

      要将压缩文件从 Mac 传输到 Raspberry Pi 核心设备,请在计算机上打开终端窗口,并运行以下命令。path-to-downloaded-files 通常为 ~/Downloads

      注意

      可能会提示您输入两个密码。如果是这样的话,第一个密码用于 Mac 的 sudo 命令,第二个是 Raspberry Pi 的密码。

      cd path-to-downloaded-files scp greengrass-OS-architecture-1.11.6.tar.gz pi@IP-address:/home/pi scp certificateId-certificate.pem.crt pi@IP-address:/home/pi scp certificateId-public.pem.key pi@IP-address:/home/pi scp certificateId-private.pem.key pi@IP-address:/home/pi scp AmazonRootCA1.pem pi@IP-address:/home/pi
      注意

      此命令中的版本号必须与您的 Amazon IoT Greengrass Core 软件包的版本一致。

      UNIX-like system

      要将压缩文件从您的计算机传输到 Raspberry Pi 核心设备,请在您的计算机上打开一个终端窗口并运行以下命令:

      cd path-to-downloaded-files scp greengrass-OS-architecture-1.11.6.tar.gz pi@IP-address:/home/pi scp certificateId-certificate.pem.crt pi@IP-address:/home/pi scp certificateId-public.pem.key pi@IP-address:/home/pi scp certificateId-private.pem.key pi@IP-address:/home/pi scp AmazonRootCA1.pem pi@IP-address:/home/pi
      注意

      此命令中的版本号必须与您的 Amazon IoT Greengrass Core 软件包的版本一致。

      Raspberry Pi web browser

      如果您使用了 Raspberry Pi 的 Web 浏览器来下载压缩文件,文件应该位于 Pi 的 ~/Downloads 文件夹(例如 /home/pi/Downloads)中。否则,压缩文件应位于 Pi 的 ~ 文件夹(例如 /home/pi)中。

  3. 在 Greengrass 核心设备上,打开终端,然后导航到包含 Amazon IoT Greengrass Core 软件和证书的文件夹。将 path-to-transferred-files 替换为核心设备上传输文件的路径。例如,在 Raspberry Pi 上运行 cd /home/pi

    cd path-to-transferred-files
  4. 将 Amazon IoT Greengrass Core 软件解压缩到核心设备上。运行以下命令解压缩传输到核心设备的软件档案。此命令使用 -C / 参数在核心设备的根文件夹中创建 /greengrass 文件夹。

    sudo tar -xzvf greengrass-OS-architecture-1.11.6.tar.gz -C /
    注意

    此命令中的版本号必须与您的 Amazon IoT Greengrass Core 软件包的版本一致。

  5. 将证书和密钥移至 Amazon IoT Greengrass Core 软件文件夹。运行以下命令为证书创建文件夹,并将证书和密钥移到该文件夹。将 path-to-transferred-files 替换为您在核心设备上传输文件的路径,并将 certificateId 替换为文件名中的证书 ID。例如,在 Raspberry Pi 上,将 path-to-transferred-files 替换为 /home/pi

    sudo mv path-to-transferred-files/certificateId-certificate.pem.crt /greengrass/certs sudo mv path-to-transferred-files/certificateId-public.pem.key /greengrass/certs sudo mv path-to-transferred-files/certificateId-private.pem.key /greengrass/certs sudo mv path-to-transferred-files/AmazonRootCA1.pem /greengrass/certs
  6. Amazon IoT Greengrass Core 软件使用为软件指定参数的配置文件。此配置文件指定证书文件的文件路径和要使用的 Amazon Web Services 云 端点。在此步骤中,您将为核心创建 Amazon IoT Greengrass Core 软件配置文件。执行以下操作:

    1. 获取核心 Amazon IoT 事物的 Amazon 资源名称(ARN)。执行以下操作:

      1. Amazon IoT控制台中的管理Greengrass 设备下,选择组 (V1)

      2. Greengrass 组页面上,选择您之前创建的组。

      3. 概述下,选择 Greengrass 核心

      4. 在核心详细信息页面上,复制 Amazon IoT 事物 ARN,然后将其保存以在 Amazon IoT Greengrass Core 配置文件中使用。

    2. 获取您的 Amazon Web Services 账户 在当前区域中的 Amazon IoT 设备数据端点。设备使用此端点连接至 Amazon 作为 Amazon IoT 事物。执行以下操作:

      1. Amazon IoT 控制台中,选择设置

      2. 设备数据端点下,复制端点,然后将其保存以在 Amazon IoT Greengrass Core 配置文件中使用。

    3. 创建 Amazon IoT Greengrass Core 软件配置文件。例如,您可以运行以下命令来使用 GNU nano 来创建文件。

      sudo nano /greengrass/config/config.json

      将文件的内容替换为以下 JSON 文档。

      { "coreThing" : { "caPath": "AmazonRootCA1.pem", "certPath": "certificateId-certificate.pem.crt", "keyPath": "certificateId-private.pem.key", "thingArn": "arn:aws:iot:region:account-id:thing/MyGreengrassV1Core", "iotHost": "device-data-prefix-ats.iot.region.amazonaws.com", "ggHost": "greengrass-ats.iot.region.amazonaws.com", "keepAlive": 600 }, "runtime": { "cgroup": { "useSystemd": "yes" } }, "managedRespawn": false, "crypto": { "caPath": "file:///greengrass/certs/AmazonRootCA1.pem", "principals": { "SecretsManager": { "privateKeyPath": "file:///greengrass/certs/certificateId-private.pem.key" }, "IoTCertificate": { "privateKeyPath": "file:///greengrass/certs/certificateId-private.pem.key", "certificatePath": "file:///greengrass/certs/certificateId-certificate.pem.crt" } } } }

      然后执行以下操作:

      • 如果您下载的 Amazon 根 CA 证书与 Amazon 根 CA 1 不同,请将 AmazonRootCA1.pem 的每个实例替换为 Amazon 根 CA 文件的名称。

      • certificateId 的每个实例替换为证书和密钥文件名称中的证书 ID。

      • arn:aws:iot:region:account-id:thing/MyGreengrassV1Core 替换为您之前保存的核心事物的 ARN。

      • MyGreengrassV1core 替换为您的核心事物的名称。

      • device-data-prefix-ats.iot.region.amazonaws.com 替换为您之前保存的 Amazon IoT 设备数据端点。

      • 区域替换为您的 Amazon Web Services 区域。

      有关在配置文件中可指定的配置选项详细信息,请参阅 Amazon IoT Greengrass 核心配置文件

  7. 确保您的核心设备已连接到 Internet。然后,在核心设备上启动 Amazon IoT Greengrass。

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

    您应看到 Greengrass successfully started 消息。记录 PID。

    注意

    要将核心设备设置为在系统引导时启动 Amazon IoT Greengrass,请参阅 配置初始化系统以启动 Greengrass 守护程序

    您可以运行以下命令来确认 Amazon IoT Greengrass 核心软件(Greengrass 守护程序)是否正常工作。将 PID-number 替换为您的 PID:

    ps aux | grep PID-number

    您应看到 PID 的条目,其中包含指向正在运行的 Greengrass 守护程序的路径(例如,/greengrass/ggc/packages/1.11.6/bin/daemon)。如果您在启动 Amazon IoT Greengrass 时遇到问题,请查看 故障排除 Amazon IoT Greengrass