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

设置配置以运行 AWS IoT Greengrass 资格套件

在运行测试之前,必须配置主机上的 AWS 凭证和设备的设置。

配置 AWS 凭证

您必须在 <device_tester_extract_location> /configs/config.json 文件中配置 IAM 用户凭证。使用 创建和配置 AWS 账户 中创建的适用于 AWS IoT Greengrass 的 IDT 特定用户的凭证。您可以采用以下两种方法之一来指定凭证:

  • 凭证文件

  • 环境变量

通过凭证文件配置 AWS 凭证

IDT 使用与 AWS CLI 相同的凭证文件。有关更多信息,请参阅配置和凭证文件

凭证文件的位置因您使用的操作系统而异:

  • macOS、Linux:~/.aws/credentials

  • Windows: C:\Users\UserName\.aws\credentials

用以下格式将 AWS 凭证添加到 credentials 文件中:

[default] aws_access_key_id = <your_access_key_id> aws_secret_access_key = <your_secret_access_key>

要将适用于 AWS IoT Greengrass 的 IDT 配置为使用 credentials 文件中的 AWS 凭证,请编辑 config.json 文件,如下所示:

{ "awsRegion": "us-west-2", "auth": { "method": "file", "credentials": { "profile": "default" } } }

注意

如果您未使用 default AWS 配置文件,请确保在 config.json 文件中更改配置文件名。有关更多信息,请参阅命名配置文件

通过环境变量配置 AWS 凭证

环境变量是由操作系统维护且由系统命令使用的变量。如果关闭 SSH 会话,则不会保存它们。适用于 AWS IoT Greengrass 的 IDT 可使用 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 环境变量来存储您的 AWS 凭证。

要在 Linux、macOS 或 Unix 上设置这些变量,请使用 export

export AWS_ACCESS_KEY_ID=<your_access_key_id> export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

要在 Windows 上设置这些变量,请使用 set

set AWS_ACCESS_KEY_ID=<your_access_key_id> set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

要配置 IDT 以使用环境变量,请编辑 config.json 文件中的 auth 部分。下面是一个示例 config.json 文件:

{ "awsRegion": "us-west-2", "auth": { "method": "environment" } }

设备配置

除了 AWS 凭证以外,适用于 AWS IoT Greengrass 的 IDT 还需要有关运行测试的设备的信息(例如,IP 地址、登录信息、操作系统和 CPU 架构)。

您必须使用位于 <device_tester_extract_location>/configs/device.json 中的 device.json 模板提供此信息:

[ { "id": "<pool-id>", "sku": "<sku>", "features": [ { "name": "os", "value": "linux | ubuntu | openwrt" }, { "name": "arch", "value": "x86_64 | armv7l | aarch64" } ], "hsm": { "p11Provider": "</path/to/pkcs11ProviderLibrary>", "slotLabel": "<slot-label>", "slotUserPin": "<pin>", "privateKeyLabel": "<key-label>", "openSSLEngine": "</path/to/openssl/engine>" }, "kernelConfigLocation": "", "greengrassLocation": "", "devices": [ { "id": "<device-id>", "connectivity": { "protocol": "ssh", "ip": "<ip-address>", "auth": { "method": "pki" | "password", "credentials": { "user": "<user>", "privKeyPath": "</path/to/private/key>", "password": "<your-password> } } } } ] } ]

注意

只有当 method 设置为 pki 时才指定 privKeyPath

只有当 method 设置为 password 时才指定 password

包含值的所有字段都为必填字段,如下所述:

id

一个用户定义的字母数字 ID,用于唯一地标识称作设备池的设备集合。属于池的设备必须具有相同的硬件。在运行一组测试时,池中的设备用于对工作负载进行并行化处理,多个设备用于运行不同的测试。

sku

唯一标识所测试设备的字母数字值。SKU 用于跟踪符合条件的主板。

注意

如果您希望在 AWS 合作伙伴设备目录中列出您的主板,您在此处指定的 SKU 必须与您在列表过程中使用的 SKU 相匹配。

features

包含设备支持的功能的数组。

  • 必需功能:osarch

  • 支持的操作系统/架构组合:

    • Linux,x86_64

    • Linux,ARMv7l

    • Linux,AArch64

    • Ubuntu,x86_64

    • OpenWRT,ARMv7l

    • OpenWrt,AArch64

hsm (optional)

包含用于通过 AWS IoT Greengrass 硬件安全模块 (HSM) 进行测试的配置信息,否则应省略 <hsm> 元素。有关更多信息,请参阅 硬件安全性集成

hsm.p11Provider

PKCS#11 实施的 libdl-loadable 库的绝对路径。

hsm.slotLabel

用于标识硬件模块的槽标签。

hsm.slotUserPin

用于针对模块对 AWS IoT Greengrass Core 进行身份验证的用户 PIN。

hsm.privateKeyLabel

用于标识硬件模块中的键的标签。

hsm.openSSLEngine

指向 OpenSSL 引擎的 .so 文件(用于在 OpenSSL 上启用 PKCS # 11 支持)的绝对路径。这由 AWS IoT Greengrass OTA 更新代理使用。

devices.id

用户定义的测试的设备的唯一标识符。

connectivity.protocol

用于与此设备通信的通信协议。目前,唯一支持的值是 ssh

connectivity.ip

测试的设备 IP 地址。

connectivity.auth.method

用于通过给定的连接协议访问设备的授权方法。支持的值为:

  • pki

  • password

connectivity.auth.credentials.password

该密码用于登录到正在测试的设备。仅当 connectivity.auth.method 设置为 password 时才指定此值。

connectivity.auth.credentials.privKeyPath

用于登录所测试设备的私有密钥的完整路径。仅当 connectivity.auth.method 设置为 pki 时才指定此值。

connectivity.auth.credentials.user

用于登录所测试设备的用户名。

connectivity.auth.credentials.privKeyPath

用于登录所测试设备的私有密钥的完整路径。

greengrassLocation

此值仅在您使用 AWS IoT Greengrass 的现有安装时使用。设备上 AWS IoT Greengrass 核心软件的位置。使用该属性可告知 IDT 使用设备上安装的 AWS IoT Greengrass 核心软件版本。

kernelConfigLocation

(可选)内核配置文件的路径。AWS IoT Device Tester 使用此文件检查设备是否启用了所需的内核功能。如果未指定,则 IDT 使用 /proc/config.gz/boot/config-<kernel-version> 路径搜索内核配置文件。它使用找到的第一个配置文件。