本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 设备通信。
要返回端点信息,请使用
GetCustomEndpoint
API。有关更多信息,请参阅《RegisterCustomEndpoint托管集成 GetCustomEndpointAPI 参考指南》中的 API 和 API。
步骤 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
。 -
AuthenticationMaterial
:包括以下字段。-
SN
: 此设备的唯一序列号 -
UPC
: 此设备的通用产品代码
-
-
Owner
: 此托管事物的所有者标识符。
重要
每台设备的身份验证材料中必须有一个唯一的序列号 (SN)。
CreateManagedThing
请求示例:
{ "Role": "
CONTROLLER
", "Owner": "ThingOwner1
", "AuthenticationMaterialType": "WIFI_SETUP_QR_BAR_CODE
", "AuthenticationMaterial": "SN:123456789524
;UPC:829576019524
" }
有关更多信息,请参阅托管集成 API 参考CreateManagedThing中的。
(可选)获取托管事物
在ProvisioningStatus
继续操作UNCLAIMED
之前,必须先完成托管事务。使用 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 步:向中心设备添加身份验证材料
将证书和密钥复制到您的中心设备,然后创建设备特定的配置文件。在配置过程中,这些文件可在您的集线器和托管集成之间建立安全的通信。
复制索赔证书和密钥
-
将这些身份验证文件从
CreateProvisioningProfile
API 响应复制到您的中心设备:-
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
:来自RegisterCustomEndpoint
API 响应的托管集成终端节点 URL(一个区域内的所有设备都相同)。
-
-
设备标识符
-
SN
: 与您的CreateManagedThing
API 调用匹配的设备序列号(每台设备都是唯一的) -
UPC
来自您的CreateManagedThing
API 调用的通用产品代码(此产品的所有设备都相同)
-
{ "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。 | 否 | 此信息稍后由集线器配置后的入门流程添加,以供其他组件使用。 |
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