设备预置 MQTT API - AWS IoT Core

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

设备预置 MQTT API

队列预置服务支持以下 MQTT API:

此 API 支持简洁二进制对象表示法 (CBOR) 格式和 JavaScript 对象表示法 (JSON) 格式的响应缓冲区,具体取决于主题的 payload-format。但是,为了清楚起见,本节中的响应和请求示例以 JSON 格式显示。

payload-format 响应格式数据类型
cbor 简洁二进制对象表示法 (CBOR)
json JavaScript 对象表示法 (JSON)
重要

在发布请求消息主题之前,请订阅响应主题以接收响应。此 API 使用的消息使用 MQTT 的发布/订阅协议来提供请求和响应交互。

如果您未在发布请求之前 订阅响应主题,则无法收到该请求的结果。

CreateCertificateFromCsr

从证书签名请求 (CSR) 创建证书。AWS IoT提供由 Amazon Root 证书颁发机构 (CA) 签发的客户端证书。新证书的状态为 PENDING_ACTIVATION。当您调用 RegisterThing 使用此证书预置事物时,证书状态将如模板中所述,更改为 ACTIVEINACTIVE

注意

为了安全起见,certificateOwnershipToken返回方CreateCertificateFromCsr会在一小时后过期。RegisterThing必须在certificateOwnershipToken过期时间。如果令牌过期,设备可以调用CreateCertificateFromCsr以生成新证书。

CreateCertificateFromCsr 请求

发布包含 $aws/certificates/create-from-csr/payload-format 主题的消息。

payload-format

消息负载格式为 cborjson

CreateCertificateFromCsr 请求负载

{ "certificateSigningRequest": "string" }
certificateSigningRequest

CSR,采用 PEM 格式。

CreateCertificateFromCsr 响应

订阅 $aws/certificates/create-from-csr/payload-format/accepted

payload-format

消息负载格式为 cborjson

CreateCertificateFromCsr 响应负载

{ "certificateOwnershipToken": "string", "certificateId": "string", "certificatePem": "string" }
certificateOwnershipToken

在预置期间证明证书所有权的令牌。

certificateId

证书的 ID。证书管理操作仅接受 certificateId。

certificatePem

PEM 格式的证书数据。

CreateCertificateFromCsr 错误

要接收错误响应,请订阅 $aws/certificates/create-from-csr/payload-format/rejected

payload-format

消息负载格式为 cborjson

CreateCertificateFromCsr 错误负载

{ "statusCode": int, "errorCode": "string", "errorMessage": "string" }
statusCode

状态代码。

errorCode

错误代码。

errorMessage

错误消息。

CreateKeysAndCertificate

创建新的密钥和证书。AWS IoT提供由 Amazon Root 证书颁发机构 (CA) 签发的客户端证书。新证书的状态为 PENDING_ACTIVATION。当您调用 RegisterThing 使用此证书预置事物时,证书状态将如模板中所述,更改为 ACTIVEINACTIVE

注意

为了安全起见,certificateOwnershipToken返回方CreateKeysAndCertificate会在一小时后过期。RegisterThing必须在certificateOwnershipToken过期时间。如果令牌过期,设备可以调用CreateKeysAndCertificate以生成新证书。

CreateKeysAndCertificate 请求

$aws/certificates/create/payload-format 上发布带有空消息负载的消息。

payload-format

消息负载格式为 cborjson

CreateKeysAndCertificate 响应

订阅 $aws/certificates/create/payload-format/accepted

payload-format

消息负载格式为 cborjson

CreateKeysAndCertificate 响应

{ "certificateId": "string", "certificatePem": "string", "privateKey": "string", "certificateOwnershipToken": "string" }
certificateId

证书 ID。

certificatePem

PEM 格式的证书数据。

privateKey

私有密钥。

certificateOwnershipToken

在预置期间证明证书所有权的令牌。

CreateKeysAndCertificate 错误

要接收错误响应,请订阅 $aws/certificates/create/payload-format/rejected

payload-format

消息负载格式为 cborjson

CreateKeysAndCertificate 错误负载

{ "statusCode": int, "errorCode": "string", "errorMessage": "string" }
statusCode

状态代码。

errorCode

错误代码。

errorMessage

错误消息。

RegisterThing

使用预定义的模板预置事物。

RegisterThing 请求

$aws/provisioning-templates/templateName/provision/payload-format 上发布消息。

payload-format

消息负载格式为 cborjson

templateName

预置模板名称。

RegisterThing 请求负载

{ "certificateOwnershipToken": "string", "parameters": { "string": "string", ... } }
certificateOwnershipToken

证明证书所有权的令牌。令牌在您通过 MQTT 创建证书时由 AWS IoT 时生成。

parameters

可选。来自设备的键/值对由预先预置挂钩用于评估注册请求。

RegisterThing 响应

订阅 $aws/provisioning-templates/templateName/provision/payload-format/accepted

payload-format

消息负载格式为 cborjson

templateName

预置模板名称。

RegisterThing 响应负载

{ "deviceConfiguration": { "string": "string", ... }, "thingName": "string" }
deviceConfiguration

在模板中定义的设备配置。

thingName

预置期间创建的 IoT 事物的名称。

RegisterThing 错误响应

要接收错误响应,请订阅 $aws/provisioning-templates/templateName/provision/payload-format/rejected

payload-format

消息负载格式为 cborjson

templateName

预置模板名称。

RegisterThing 错误响应负载

{ "statusCode": int, "errorCode": "string", "errorMessage": "string" }
statusCode

状态代码。

errorCode

错误代码。

errorMessage

错误消息。