调用该接口为规则引擎中数据源添加Topic。

使用说明

调用该接口前,请先创建数据源,具体操作,请参见创建数据源的步骤1~步骤6;然后在物联网平台控制台对应实例下消息转发 > 云产品流转页面的数据源页签,查看数据源ID

重要 对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,Topic为自定义的消息Topic时,必须传入ScopeTypeProductKey。若ScopeTypeDEVICE,还需传入DeviceName

QPS限制

单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。

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

调试

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

请求参数

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

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

DataSourceId Long 1002

数据源ID。

Topic String /as/mqtt/status/gy***z/+

应用到规则引擎的具体Topic,格式一般为:/${productKey}/${deviceName}/topicShortName。其中,${productKey}是设备所属产品的ProductKey${deviceName}是具体设备的名称,topicShortName是Topic剩余部分。

  • 基础通信Topic或物模型通信Topic的格式一般为:/${productKey}/${deviceName}/topicShortName。其中,${deviceName}可以使用通配符+代替,表示产品下所有设备名称。topicShortName取值如下:
    • /thing/event/property/post 设备上报的属性消息。
    • /thing/event/${tsl.event.identifier}/post设备上报的事件消息,${}中是产品物模型中事件identifier。
    • /thing/lifecycle 设备生命周期变更消息。
    • /thing/downlink/reply/message设备响应云端指令的结果消息。
    • /thing/list/found网关上报发现子设备消息。
    • /thing/topo/lifecycle设备拓扑关系变更消息。
    • /thing/event/property/history/post设备历史属性上报消息。
    • /thing/event/${tsl.event.identifier}/history/post设备历史事件上报消息,${}中是产品物模型中事件identifier。
    • /ota/upgrade设备OTA升级状态通知消息。
    • /ota/version/post设备OTA模块版本号上报消息。
    • /thing/deviceinfo/update设备标签变更消息。

      OTA升级批次状态通知Topic也属于基础通信Topic,格式为:/${productKey}/${packageId}/${jobId}/ota/job/status。其中,${packageId}是升级包ID,${jobId}是升级批次ID。

  • 自定义消息Topic为:/${productKey}/${deviceName}/user/#,如:/${productKey}/${deviceName}/user/get

    调用QueryProductTopic接口,可以查看产品下的所有自定义Topic类。

    指定自定义Topic时,可以使用通配符+#

    • ${deviceName}可以使用通配符+代替,表示产品下所有设备;
    • 之后字段可以用/user/##表示/user层级之后的所有层级名称。
  • 设备状态变化通知Topic为:/as/mqtt/status/${productKey}/${deviceName}

    可以直接使用通配符+,表示产品下所有设备的状态变化通知。

使用通配符,请参见Topic类中的通配符

Topic数据格式的详细说明,请参见数据格式

重要 对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,仅支持自定义的消息Topic、设备状态变化通知Topic和设备生命周期变更Topic。自定义的消息Topic说明,请参见消息通信说明。若输入自定义的消息Topic,需同时传入ScopeTypeProductKey。若ScopeTypeDEVICE,还需传入DeviceName
IotInstanceId String iot-0pp1n8t***

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

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

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

ProductKey String gy***z

自定义的消息Topic所属产品的ProductKey

重要 对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,必须设置此参数。
DeviceName String device1

自定义的消息Topic所属的设备名称。

重要 对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,Topic为自定义的消息Topic时,scopeTypeDEVICE时,必须设置此参数。
ScopeType String PRODUCT

自定义的消息Topic订阅的作用域,可取值:

  • PRODUCT :产品维度,表示作用在产品下的所有设备上。即需同时传入ProductKey
  • DEVICE :设备维度,表示作用在产品下指定的设备上。即需同时传入DeviceName
重要 对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,Topic为自定义的消息Topic时,必须设置此参数。

调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见公共参数文档

返回数据

名称 类型 示例值 描述
Code String iot.system.SystemException

调用失败时,返回的错误码。更多信息,请参见错误码

ErrorMessage String 系统异常

调用失败时,返回的出错信息。

RequestId String E4C0FF92-2A86-41DB-92D3-73B60310D25E

阿里云为该请求生成的唯一标识符。

Success Boolean true

是否调用成功。

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

示例

请求示例

http(s)://iot.cn-shanghai.aliyuncs.com/?Action=CreateDataSourceItem
&DataSourceId=1002
&Topic=/as/mqtt/status/gy***z/+
&<公共请求参数>

正常返回示例

XML格式

<CreateDataSourceItemResponse>
  <RequestId>E4C0FF92-2A86-41DB-92D3-73B60310D25E</RequestId>
  <Success>true</Success>
</CreateDataSourceItemResponse>

JSON格式

{
    "RequestId": "E4C0FF92-2A86-41DB-92D3-73B60310D25E",
    "Success": true
}