调用该接口创建MNS或AMQP服务端订阅。
使用说明
服务端订阅分两种类型:
- MNS订阅:将订阅的消息推送到消息服务(MNS)的队列中,您的服务端应用通过监听MNS队列接收设备消息,参见使用MNS服务端订阅。直接调用本接口即可创建MNS订阅。
-
AMQP订阅:将产品下所有已订阅类型的消息通过AMQP通道推送至您的服务端,请参见配置AMQP服务端订阅。请按以下流程操作AMQP订阅:
1. 调用CreateConsumerGroup创建消费组,返回消费组ID。AMQP订阅中,消息将被推送到指定消费组,AMQP客户端携带消费组ID接入物联网平台,消费消息,请参见AMQP客户端接入说明。
2. 调用本接口创建AMQP订阅。
3. (可选)调用CreateConsumerGroupSubscribeRelation在AMQP订阅中添加消费组。调用DeleteConsumerGroupSubscribeRelation删除AMQP订阅中多个消费组中的指定消费组。
4. (可选)运行AMQP订阅时,调用QueryConsumerGroupStatus查询某个消费组的状态,包括在线客户端信息、消息消费速率、消息堆积数、最近消息消费时间,调用ResetConsumerGroupPosition清空消费组的堆积消息。
QPS限制
单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | CreateSubscribeRelation | 系统规定参数。取值:CreateSubscribeRelation。 |
ProductKey | String | 是 | a1fyXVF**** | 该订阅中的产品的ProductKey。 |
IotInstanceId | String | 否 | iot-cn-0pp1n8t**** | 实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID。 重要
实例的更多信息,请参见实例概述。 |
DeviceDataFlag | Boolean | 否 | true | 推送消息类型是否选择设备上报消息。可选值:
|
DeviceStatusChangeFlag | Boolean | 否 | true | 推送消息类型是否选择设备状态变化通知。可选值:
|
DeviceTopoLifeCycleFlag | Boolean | 否 | true | 推送消息类型是否选择设备拓扑关系变更。可选值:
|
FoundDeviceListFlag | Boolean | 否 | true | 推送消息类型是否选择网关子设备发现上报。可选值:
|
ThingHistoryFlag | Boolean | 否 | true | 推送消息类型是否选择物模型历史数据上报。可选值:
|
DeviceLifeCycleFlag | Boolean | 否 | true | 推送消息类型是否选择设备生命周期变更。可选值:
|
OtaEventFlag | Boolean | 否 | true | 推送消息类型是否选择OTA升级状态通知。可选值:
|
DeviceTagFlag | Boolean | 否 | true | 推送消息类型是否选择设备标签变更。可选值:
|
OtaVersionFlag | Boolean | 否 | true | 推送消息类型是否选择OTA模块版本号上报。可选值:
|
OtaJobFlag | Boolean | 否 | true | 推送消息类型是否选择OTA升级批次状态通知。可选值:
|
Type | String | 否 | AMQP | 订阅类型:
|
ConsumerGroupIds.N | RepeatList | 否 | nJRaJPn5U1JITGfjBO9l00**** | 创建的AMQP订阅中的消费组ID,Type为AMQP时必填。 调用CreateConsumerGroup创建消费组成功后,会返回消费组ID。您可以调用QueryConsumerGroupList按消费组名称查询消费组ID,也可以在物联网平台控制台,选择消息转发>服务端订阅>消费组列表,查看消费组ID。 |
MnsConfiguration | String | 否 | { "queueName": "mns-test-topic1", "regionName": "cn-shanghai", "role": { "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole", "roleName": "AliyunIOTAccessingMNSRole" } } | MNS队列的配置信息,Type为MNS时必填。 具体要求和示例见下文“MnsConfiguration定义”。 |
SubscribeFlags | String | 否 | { "jt808DeviceDataFlag": true } | 标识当前订阅产品的其他类型消息。 如果订阅的是JT/T 808协议云网关产品,必须传入SubscribeFlags,取固定值为:
|
名称 |
描述 |
---|---|
queueName |
消息服务中用来接收信息的队列名称。您需先在消息服务MNS控制台,创建队列,获取队列名称。具体操作,请参见创建队列。 |
regionName |
目标消息服务所在的阿里云地域代码,例如cn-shanghai。 |
role |
授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息服务。授权角色信息如下:
请将
|
MnsConfiguration示例:
{
"queueName": "mns-test-topic1",
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",
"roleName": "AliyunIOTAccessingMNSRole"
}
}
调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见公共参数文档。
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
Code | String | iot.system.SystemException | 调用失败时,返回的错误码。更多信息,请参见错误码。 |
ErrorMessage | String | 系统异常 | 调用失败时,返回的出错信息。 |
RequestId | String | 21D327AF-A7DE-4E59-B5D1-ACAC8C024555 | 阿里云为该请求生成的唯一标识符。 |
Success | Boolean | true | 是否调用成功。
|
示例
请求示例
https://iot.cn-shanghai.aliyuncs.com/?Action=CreateSubscribeRelation
&OtaEventFlag=true
&ProductKey=a1Zkii7****
&Type=AMQP
&ConsumerGroupIds.1=Xs95KifeaSKbi8tKkcoD00****
&<公共请求参数>
正常返回示例
XML
格式
<CreateSubscribeRelationResponse>
<RequestId>C21DA94F-07D7-482F-8A0C-5BB0E3CC1A82</RequestId>
<Success>true</Success>
</CreateSubscribeRelationResponse>
JSON
格式
{
"RequestId": "C21DA94F-07D7-482F-8A0C-5BB0E3CC1A82",
"Success": true
}
错误码
访问错误中心查看更多错误码。