Hub 入职设置 - 的托管集成 AWS IoT Device Management

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

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 在集线器启动期间使用此文件对您的设备进行身份验证、管理配置状态和存储连接设置。

注意

每台集线器设备都需要自己的配置文件,其中包含唯一的设备特定值。

使用以下过程创建或修改您的配置文件,然后将其复制到集线器。

  • 创建或修改配置文件(队列配置)

    在设备配置文件中配置以下必填字段:

    • 证书路径

      1. iot_claim_cert_path: 您的索赔证明的位置 (claim_cert.pem)

      2. iot_claim_pk_path: 您的私钥的位置 (claim_pk.key)

      3. 在实现安全存储证书处理程序时,这两个字段都使用 SECURE_STORAGE

    • 连接设置

      1. fp_template_name: 之前的ProvisioningProfile名字。

      2. endpoint_url:来自 RegisterCustomEndpoint API 响应的托管集成终端节点 URL(一个区域内的所有设备都相同)。

    • 设备标识符

      1. SN: 与您的 CreateManagedThing API 调用匹配的设备序列号(每台设备都是唯一的)

      2. 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