AWS IoT Greengrass
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

配置您的设备

要配置设备,您必须执行以下操作:安装 AWS IoT Greengrass 依赖项,配置 AWS IoT Greengrass 核心软件,配置主机以访问设备以及在设备上配置用户权限。

在所测试设备上验证 AWS IoT Greengrass 依赖项

您必须先设置设备(如 AWS IoT Greengrass 入门中所述),然后适用于 AWS IoT Greengrass 的 IDT 才能测试设备。有关支持的平台的信息,请参阅支持的平台

配置 AWS IoT Greengrass 软件

适用于 AWS IoT Greengrass 的 IDT 将测试设备是否与特定版本的 AWS IoT Greengrass 兼容。IDT 提供了两种在设备上测试 AWS IoT Greengrass 的选项:

  • 下载并使用某一版本的 AWS IoT Greengrass 核心软件。IDT 为您安装此软件。

  • 使用设备上已安装的 AWS IoT Greengrass 核心软件版本。

注意

每个版本的 AWS IoT Greengrass 都有相应的 IDT 版本。您必须下载与所用的 AWS IoT Greengrass 版本对应的 IDT 版本。

有两种在设备上安装 AWS IoT Greengrass 的选项:

  • 下载 AWS IoT Greengrass 核心软件和配置适用于 AWS IoT Greengrass 的 IDT 以使用它。

  • 使用 AWS IoT Greengrass 核心软件的现有安装。

以下各节介绍了这些选项。您只需要使用其中一个选项。

选项 1:下载 AWS IoT Greengrass 核心软件并配置 AWS IoT Device Tester 以使用该软件

您可以从 AWS IoT Greengrass Core 软件下载 页面下载 AWS IoT Greengrass 核心软件。

  1. 找到正确的架构和 Linux 发行版,然后选择 Download (下载)

  2. 将该 tar.gz 文件复制到 <device-tester-extract-location>/products/greengrass/ggc

注意

请勿更改 AWS IoT Greengrass tar.gz 文件的名称。对于相同的操作系统和架构,请勿在此目录中放置多个文件。例如,在该目录中同时放置 greengrass-linux-armv7l-1.7.1.tar.gzgreengrass-linux-armv7l-1.8.1.tar.gz 文件将导致测试失败。

选项 2:使用 AWS IoT Greengrass 及 AWS IoT Device Tester 的现有安装

通过将 greengrassLocation 属性添加到 <device_tester_extract_location>/configs 文件夹中的 device.json 文件,将 IDT 配置为测试设备上安装的 AWS IoT Greengrass 核心软件。例如:

"greengrassLocation" : "<path-to-greengrass-on-device>"

有关 device.json 文件的更多信息,请参阅设备配置

在 Linux 设备上,AWS IoT Greengrass 核心软件的默认位置为 /greengrass

注意

您的设备应具有尚未开始的 AWS IoT Greengrass 核心软件安装。

确保您已在设备上添加 ggc_user 用户和 ggc_group。有关更多信息,请参阅 AWS IoT Greengrass 的环境设置

配置主机以访问所测试设备

IDT 在主机上运行,并且必须能够使用 SSH 连接到您的设备。您必须创建一个 SSH 密钥对并授权您的密钥,以便登录所测试设备而无需指定密码。

以下有关创建 SSH 密钥的说明是在假设您使用 SSH-KEYGEN 的情况下编写的。如果您使用的是另一个 SSL 实施,请参阅该实施的文档。

  1. 创建 SSH 密钥。IDT 使用 SSH 密钥对所测试设备进行身份验证。您可以使用 Open SSH ssh-keygen 命令创建 SSH 密钥对。如果您的主机上已有一个 SSH 密钥对,则最佳做法是专门为 IDT 创建一个 SSH 密钥对。这使您能够在完成测试后删除主机连接到设备的功能(无需输入密码)。它还使您能够仅向需要远程设备的人员授予其访问权。

    注意

    Windows 未预装 SSH 客户端。有关在 Windows 上安装 SSH 客户端的信息,请参阅下载 SSH 客户端软件

    ssh-keygen 命令会提示您输入要存储密钥对的名称和路径。默认情况下,密钥对文件的名称为 id_rsa(私有密钥)和 id_rsa.pub(公有密钥)。在 macOS 和 Linux 上,这些文件的默认位置为 ~/.ssh/。在 Windows 上,默认路径为 C:\Users\<user-name>\.ssh

    根据提示,输入密钥短语来保护您的 SSH 密钥。有关更多信息,请参阅生成新的 SSH 密钥

  2. 向所测试设备添加经过授权的 SSH 密钥。IDT 必须使用您的 SSH 私有密钥登录所测试设备。要授权 SSH 私有密钥以登录所测试设备,请在主机上使用 ssh-copy-id 命令。此命令会将您的公有密钥添加到所测试设备上的 ~/.ssh/authorized_keys 文件中。例如:

    $ ssh-copy-id <remote-ssh-user>@<remote-device-ip>

    其中 remote-ssh-user 是用于登录所测试设备的用户名,remote-device-ip 是用于运行测试的所测试设备的 IP 地址。例如:

    ssh-copy-id pi@192.168.1.5

    系统提示时,输入在 ssh-copy-id 命令中指定的用户名所对应的密码。

    ssh-copy-id 公有密钥的名称为 id_rsa.pub 并且存储在默认位置(macOS 和 Linux 上的位置为 ~/.ssh/,Windows 上的位置为 C:\Users\<user-name>\.ssh)。如果为公有密钥提供其他名称或将其存储在其他位置,则必须使用 -i 选项与 ssh-copy-id 指定 SSH 公有密钥的完全限定路径(例如,ssh-copy-id -i ~/my/path/myKey.pub)。有关创建 SSH 密钥和复制公有密钥的更多信息,请参阅 SSH-COPY-ID

在您的设备上配置用户权限

IDT 将对所测试设备中的各种目录和文件执行操作。其中一些操作需要提升的权限(使用 sudo)。要自动执行这些操作,适用于 AWS IoT Greengrass 的 IDT 必须能够在不提示输入密码的情况下使用 sudo 运行命令。

请在所测试设备上执行以下步骤,以允许在不提示输入密码的情况下进行 sudo 访问。

注意

username 是指 IDT 用来访问所测试设备的 SSH 用户。

将用户添加到 sudo 组

  1. 在所测试设备上,运行 sudo usermod -aG sudo <username>

  2. 注销,然后重新登录,以使更改生效。

  3. 确认您的用户名已成功添加,运行 sudo echo test。如果系统未提示您输入密码,则说明已正确配置您的用户。