调用该接口创建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。

说明 RAM用户共享阿里云账号配额。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateSubscribeRelation

系统规定参数。取值:CreateSubscribeRelation。

ProductKey String a1fyXVF****

该订阅中的产品的ProductKey

IotInstanceId String iot-cn-0pp1n8t****

实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID

重要
  • 若有ID值,必须传入该ID值,否则调用会失败。
  • 若无实例概览页面或ID值,则无需传入。

实例的更多信息,请参见实例概述

DeviceDataFlag Boolean true

推送消息类型是否选择设备上报消息。可选值:

  • true:是。
  • false(默认):否。
DeviceStatusChangeFlag Boolean true

推送消息类型是否选择设备状态变化通知。可选值:

  • true:是。
  • false(默认):否。
DeviceTopoLifeCycleFlag Boolean true

推送消息类型是否选择设备拓扑关系变更。可选值:

  • true:是。仅对网关产品有效。
  • false(默认):否。
FoundDeviceListFlag Boolean true

推送消息类型是否选择网关子设备发现上报。可选值:

  • true:是。仅对网关产品有效。
  • false(默认):否。
ThingHistoryFlag Boolean true

推送消息类型是否选择物模型历史数据上报。可选值:

  • true:是。
  • false(默认):否。
DeviceLifeCycleFlag Boolean true

推送消息类型是否选择设备生命周期变更。可选值:

  • true:是。
  • false(默认):否。
OtaEventFlag Boolean true

推送消息类型是否选择OTA升级状态通知。可选值:

  • true:是。
  • false(默认):否。
DeviceTagFlag Boolean true

推送消息类型是否选择设备标签变更。可选值:

  • true:是。仅当TypeAMQP时有效。
  • false(默认):否。
OtaVersionFlag Boolean true

推送消息类型是否选择OTA模块版本号上报。可选值:

  • true:是。仅当TypeAMQP时有效。
  • false(默认):否。
OtaJobFlag Boolean true

推送消息类型是否选择OTA升级批次状态通知。可选值:

  • true:是。仅当TypeAMQP时有效。
  • false(默认):否。
Type String AMQP

订阅类型:

  • MNS
  • AMQP
ConsumerGroupIds.N RepeatList nJRaJPn5U1JITGfjBO9l00****

创建的AMQP订阅中的消费组ID,TypeAMQP时必填。

调用CreateConsumerGroup创建消费组成功后,会返回消费组ID。您可以调用QueryConsumerGroupList按消费组名称查询消费组ID,也可以在物联网平台控制台,选择消息转发>服务端订阅>消费组列表,查看消费组ID。

MnsConfiguration String { "queueName": "mns-test-topic1", "regionName": "cn-shanghai", "role": { "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole", "roleName": "AliyunIOTAccessingMNSRole" } }

MNS队列的配置信息,TypeMNS时必填。

具体要求和示例见下文“MnsConfiguration定义”。

SubscribeFlags String { "jt808DeviceDataFlag": true }

标识当前订阅产品的其他类型消息。

如果订阅的是JT/T 808协议云网关产品,必须传入SubscribeFlags,取固定值为:


{
    "jt808DeviceDataFlag": true
}
说明 请求参数中的Flag不能全部为false或不传入,至少传入一个为true的Flag。
MnsConfiguration定义

名称

描述

queueName

消息服务中用来接收信息的队列名称。您需先在消息服务MNS控制台,创建队列,获取队列名称。具体操作,请参见创建队列

regionName

目标消息服务所在的阿里云地域代码,例如cn-shanghai。

role

授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息服务。授权角色信息如下:

{"roleArn":"acs:ram::5645***:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"}

请将5645***替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。

AliyunIOTAccessingMNSRole是访问控制中定义的服务角色。用于授予物联网平台访问消息服务。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。

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

是否调用成功。

  • true:调用成功。
  • false:调用失败。

示例

请求示例

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
}

错误码

访问错误中心查看更多错误码。