本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Hub 入职设置
在开始队列配置入门流程之前,请完成每台中心设备的这些设置步骤。本节介绍如何创建托管事物、设置目录结构和配置所需的证书。
设置步骤
步骤 1:注册自定义终端节点
创建专用的通信端点,您的设备使用该端点与托管集成交换数据。此端点为所有 device-to-cloud消息(包括设备命令、状态更新和通知)建立安全的连接点。
要注册终端节点
-
使用 RegisterCustomEndpointAPI 创建用于 device-to-managed集成通信的端点。
RegisterCustomEndpoint请求示例
aws iot-managed-integrations register-custom-endpoint响应:
{ [ACCOUNT-PREFIX]-ats.iot.AWS-REGION.amazonaws.com }注意
存储端点地址。你将需要它来进行 future 设备通信。
要返回端点信息,请使用
GetCustomEndpointAPI。有关更多信息,请参阅托管集成 GetCustomEndpointAPI 参考指南中的 API 和 API。RegisterCustomEndpoint
步骤 2:创建配置文件
配置文件包含您的设备连接到托管集成所需的安全凭证和配置设置。
创建队列配置文件
-
调用 CreateProvisioningProfileAPI 生成以下内容:
-
用于定义设备连接设置的配置模板
-
用于设备身份验证的索赔证书和私钥
重要
安全地存储索赔证书、私钥和模板 ID。您需要这些凭据才能将设备加入托管集成。如果您丢失了这些凭据,则必须创建新的配置文件。
-
CreateProvisioningProfile请求示例
aws iot-managed-integrations create-provisioning-profile \ --provisioning-type FLEET_PROVISIONING \ --name PROFILE_NAME
响应:
{ "Arn":"arn:aws:iotmanagedintegrations:AWS-REGION:ACCOUNT-ID:provisioning-profile/PROFILE-ID", "ClaimCertificate": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7.....w3rrszlaEXAMPLE= -----END CERTIFICATE-----", "ClaimCertificatePrivateKey": "-----BEGIN RSA PRIVATE KEY----- MIICiTCCAfICCQ...3rrszlaEXAMPLE= -----END RSA PRIVATE KEY-----", "Id": "PROFILE-ID", "PROFILE-NAME", "ProvisioningType": "FLEET_PROVISIONING" }
步骤 3:创建托管事物(队列配置)
使用 CreateManagedThing API 为您的中心设备创建托管事物。每个中心都需要自己的托管东西和独特的身份验证材料。有关更多信息,请参阅《托管集成 CreateManagedThingAPI 参考》中的 API。
创建托管事物时,请指定以下参数:
-
Role:CONTROLLER对于不支持命令和控制的集线器,将此值设置为,否则设置为DEVICE。 -
AuthenticationMaterialType:将此值设置为WIFI_SETUP_QR_BAR_CODE。 -
AuthenticationMaterial:包括以下字段。你可以使用其中UPC一个,也可以同时使用,EAN但不能两者兼而有之。-
SN: 此设备的唯一序列号 -
UPC: 此设备的通用产品代码 -
EAN: 此设备的国际商品编号
-
重要
每台设备的身份验证材料中必须有一个唯一的序列号 (SN)。
CreateManagedThing请求示例:
{ "Role": "CONTROLLER", "AuthenticationMaterialType": "WIFI_SETUP_QR_BAR_CODE", "AuthenticationMaterial": "SN:123456789524;UPC:829576019524" }
有关更多信息,请参阅托管集成 API 参考CreateManagedThing中的。
(可选)获取托管事物
在ProvisioningStatus继续操作PRE_ASSOCIATED之前,必须先完成托管事务。有关的更多信息 ProvisioningStatus,请参阅设备配置。使用 GetManagedThing API 验证您的托管事物是否存在且已准备好进行配置。有关更多信息,请参阅托管集成 API 参考GetManagedThing中的。
步骤 4:创建目录结构
为您的配置文件和证书创建目录。默认情况下,Hub 入职流程使用。/data/aws/iotmi/config/iotmi_config.json
您可以在配置文件中为证书和私钥指定自定义路径。本指南使用默认路径/data/aws/iotmi/certs。
mkdir -p /data/aws/iotmi/config mkdir -p /data/aws/iotmi/certs /data/ aws/ iotmi/ config/ certs/
第 5 步:向中心设备添加身份验证材料
将证书和密钥复制到您的中心设备,然后创建设备特定的配置文件。在配置过程中,这些文件可在您的集线器和托管集成之间建立安全的通信。
复制索赔证书和密钥
-
将这些身份验证文件从
CreateProvisioningProfileAPI 响应复制到您的中心设备:-
claim_cert.pem: 索赔证书(适用于所有设备) -
claim_pk.key: 索赔证书的私钥
将两个文件都放在
/data/aws/iotmi/certs目录中。重要
以 PEM 格式存储证书和私钥时,请通过正确处理换行符来确保格式正确。对于 PEM 编码的文件,
(\n)必须将换行符替换为实际的行分隔符,因为仅存储转义的换行符以后将无法正确检索。注意
如果您使用安全存储,请将这些凭据存储在您的安全存储位置而不是文件系统中。有关更多信息,请参阅 创建用于安全存储的自定义证书处理程序。
-
步骤 6:创建设备配置文件
创建包含唯一设备标识符、证书位置和配置设置的配置文件。SDK 在集线器启动期间使用此文件对您的设备进行身份验证、管理配置状态和存储连接设置。
注意
每台集线器设备都需要自己的配置文件,其中包含唯一的设备特定值。
使用以下过程创建或修改您的配置文件,然后将其复制到集线器。
-
创建或修改配置文件(队列配置)。
在设备配置文件中配置以下必填字段:
-
证书路径
-
iot_claim_cert_path: 您的索赔证明的位置 (claim_cert.pem) -
iot_claim_pk_path: 您的私钥的位置 (claim_pk.key) -
在实现安全存储证书处理程序时,这两个字段都使用
SECURE_STORAGE
-
-
连接设置
-
fp_template_name: 之前的ProvisioningProfile名字。 -
endpoint_url:来自RegisterCustomEndpointAPI 响应的托管集成终端节点 URL(一个区域内的所有设备都相同)。
-
-
设备标识符
-
SN: 与您的CreateManagedThingAPI 调用匹配的设备序列号(每台设备都是唯一的) -
UPC来自您的CreateManagedThingAPI 调用的通用产品代码(此产品的所有设备都相同)
-
{ "ro": { "iot_provisioning_method": "FLEET_PROVISIONING", "iot_claim_cert_path": "<SPECIFY_THIS_FIELD>", "iot_claim_pk_path": "<SPECIFY_THIS_FIELD>", "fp_template_name": "<SPECIFY_THIS_FIELD>", "endpoint_url": "<SPECIFY_THIS_FIELD>", "SN": "<SPECIFY_THIS_FIELD>", "UPC": "<SPECIFY_THIS_FIELD>" }, "rw": { "iot_provisioning_state": "NOT_PROVISIONED" } } -
配置文件的内容
查看iotmi_config.json文件内容。
| 键 | 值 | 由客户添加? | 注意 |
|---|---|---|---|
iot_provisioning_method |
FLEET_PROVISIONING |
是 | 指定要使用的配置方法。 |
iot_claim_cert_path |
您指定的文件路径或SECURE_STORAGE。例如,/data/aws/iotmi/certs/claim_cert.pem |
是 | 指定要使用的文件路径或SECURE_STORAGE。 |
iot_claim_pk_path |
您指定的文件路径或SECURE_STORAGE。例如,/data/aws/iotmi/certs/claim_pk.pem |
是 | 指定要使用的文件路径或SECURE_STORAGE。 |
fp_template_name |
队列配置模板名称应等于之前使用的名称。ProvisioningProfile |
是 | 等于之前使用的名称 ProvisioningProfile |
endpoint_url |
托管集成的终端节点 URL。 | 是 | 您的设备使用此 URL 连接到托管集成云。要获取此信息,请使用 RegisterCustomEndpointAPI。 |
SN |
设备序列号。例如 AIDACKCEVSQ6C2EXAMPLE。 |
是 | 您必须为每台设备提供此唯一信息。 |
UPC |
设备通用产品代码。例如 841667145075。 |
是 | 您必须为设备提供此信息。 |
managed_thing_id |
托管事物的 ID。 | 否 | 此信息将在集线器配置后通过入职流程添加。 |
iot_provisioning_state |
供应状态。 | 是 | 置备状态必须设置为NOT_PROVISIONED。 |
iot_permanent_cert_path |
物联网证书路径。例如 /data/aws/iotmi/iot_cert.pem。 |
否 | 此信息将在集线器配置后通过入职流程添加。 |
iot_permanent_pk_path |
物联网私钥文件路径。例如 /data/aws/iotmi/iot_pk.pem。 |
否 | 此信息将在集线器配置后通过入职流程添加。 |
client_id |
将用于 MQTT 连接的客户端 ID。 | 否 | 此信息稍后由集线器配置后的入门流程添加,以供其他组件使用。 |
mqtt_keep_alive_interval |
射程为 30-1200,单位以秒为单位。默认值是 300。 | 是 | 使用它来设置 MQTT 连接的保持连接间隔。 |
event_manager_upper_bound |
默认值是 500。 | 否 | 此信息稍后由集线器配置后的入门流程添加,以供其他组件使用。 |
第 7 步:将配置文件复制到集线器
将您的配置文件复制到/data/aws/iotmi/config或您的自定义目录路径。您将在入门过程中提供此HubOnboarding二进制文件路径。
用于舰队配置
/data/ aws/ iotmi/ config/ iotmi_config.json certs/ claim_cert.pem claim_pk.key