Todos los productos
Search
Centro de documentos

IoT Platform:CreateRule

Última actualización: Sep 04, 2026

Crea una regla de reenvío de datos para un topic específico.

Notas de uso

Al llamar a esta operación, debe especificar ProductKey en la solicitud.

Límites de QPS

Puede llamar a esta operación de API hasta 50 veces por segundo por cuenta.

Nota

Los usuarios de Resource Access Management (RAM) de una cuenta de Alibaba Cloud comparten la cuota de dicha cuenta.

Depuración

OpenAPI Explorer calcula automáticamente el valor de la firma. Para su comodidad, se recomienda llamar a esta operación desde OpenAPI Explorer. Esta herramienta genera dinámicamente el código de ejemplo de la operación para diferentes SDK.

Parámetros de solicitud

Parámetro

Tipo

Obligatorio

Ejemplo

Descripción

Action

String

Sí

CreateRule

La operación que desea ejecutar. Establezca el valor en CreateRule.

Name

String

Sí

iot_test1

El nombre de la regla de reenvío de datos. Debe tener entre 1 y 30 caracteres, y puede contener letras, dígitos, guiones bajos (_) y guiones (-).

IotInstanceId

String

No

iot-cn-0pp1n8t****

El ID de la instancia. Puede consultar el ID de la instancia en la pestaña Overview de la consola de IoT Platform.

Importante
  • Debe especificar este parámetro si su instancia tiene un ID. De lo contrario, la llamada fallará.

  • Si la pestaña Overview o el ID de la instancia no se muestran en la consola de IoT Platform, no es necesario especificar este parámetro.

Para obtener más información sobre las instancias, consulte Descripción general.

Select

String

No

deviceName() as deviceName, items.Humidity.value as Humidity, items.Temperature.value as Temperature

La instrucción SQL SELECT que desea ejecutar. Para obtener más información, consulte Instrucciones SQL.

Nota

Este parámetro especifica los campos en las instrucciones SELECT. Por ejemplo, si la instrucción SELECT es SELECT a,b,c, establezca este parámetro en a,b,c.

ShortTopic

String

No

+/thing/event/property/post

El topic al que se aplica esta regla. El formato es ${deviceName}/topicShortName. ${deviceName} especifica el nombre del dispositivo y topicShortName especifica el nombre corto del topic.

  • Para topics de comunicación básica o basados en Thing Specification Language (TSL), el formato es ${deviceName}/topicShortName. Puede reemplazar ${deviceName} con el carácter comodín +. Este carácter indica que el topic se aplica a todos los dispositivos del producto. Valores válidos de topicShortName:

    • /thing/event/property/post: envía los datos de propiedad de un dispositivo.

    • /thing/event/${tsl.event.identifier}/post: envía los datos de evento de un dispositivo. ${tsl.event.identifier} especifica el identificador de un evento en el modelo TSL.

    • /thing/lifecycle: envía cambios en el ciclo de vida del dispositivo.

    • /thing/downlink/reply/message: envía la respuesta de un dispositivo a una solicitud de IoT Platform.

    • /thing/list/found: envía datos cuando una puerta de enlace detecta un nuevo subdispositivo.

    • /thing/topo/lifecycle: envía cambios en la topología del dispositivo.

    • /thing/event/property/history/post: envía los datos históricos de propiedad de un dispositivo.

    • /thing/event/${tsl.event.identifier}/history/post: envía los datos históricos de evento de un dispositivo. ${tsl.event.identifier} especifica el identificador de un evento en el modelo TSL.

    • /ota/upgrade: envía el estado de actualización over-the-air (OTA) de un dispositivo.

    • /ota/version/post: envía versiones de módulos OTA.

    • /thing/deviceinfo/update: envía cambios en las etiquetas del dispositivo.

    • /edge/driver/${driver_id}/point_post: envía datos transparentes desde Link IoT Edge. ${driver_id} especifica el ID del controlador que utiliza un dispositivo para acceder a Link IoT Edge.

      Para el topic que se utiliza para enviar el estado de los lotes de actualización OTA, el formato es ${packageId}/${jobId}/ota/job/status. Este topic pertenece a los topics de comunicación básica. ${packageId} especifica el ID del paquete. ${jobId} especifica el ID del lote de actualización.

  • Para topics personalizados, un ejemplo es ${deviceName}/user/get.

    Puede llamar a la operación QueryProductTopic para consultar todos los topics personalizados del producto.

    Cuando especifique un topic personalizado, puede usar los caracteres comodín + y #.

    • Puede reemplazar ${deviceName} con el carácter comodín +. Este carácter indica que el topic se aplica a todos los dispositivos del producto.

    • Puede reemplazar los campos posteriores a ${deviceName} con /user/#. El comodín # indica que el topic se aplica a todos los campos posteriores a /user.

      Para obtener más información sobre cómo utilizar caracteres comodín, consulte Uso de topics personalizados.

  • Para los topics que se utilizan para enviar cambios de estado del dispositivo, el formato es ${deviceName}.

    Puede utilizar el carácter comodín +. En este caso, se envían los cambios de estado de todos los dispositivos del producto.

Where

String

No

Temperature>35

La condición que activa la regla. Para obtener más información sobre la regla, consulte Instrucciones SQL.

Nota

Este parámetro especifica los campos en la cláusula WHERE. Por ejemplo, si la instrucción WHERE es WHERE a > 10, establezca este parámetro en a>10.

ProductKey

String

No

a1T27vz****

La ProductKey del producto al que se aplica la regla.

RuleDesc

String

No

rule test

La descripción de la regla. Puede tener hasta 100 caracteres.

DataType

String

No

JSON

El formato de los datos procesados según la regla. El valor de este parámetro debe coincidir con el formato de los datos del dispositivo que desea procesar. Valores válidos:

  • JSON (predeterminado): datos JSON.

  • BINARY: datos binarios.

Nota

Si establece este parámetro en BINARY, no puede establecer TopicType en 0 ni reenviar datos a Tablestore y ApsaraDB RDS.

TopicType

Integer

No

1

  • 0: el topic de comunicación básica o basado en TSL descrito en ShortTopic. El topic para enviar el estado de los lotes de actualización OTA pertenece a los topics de comunicación básica.

  • 1: el topic personalizado.

  • 2: el topic para enviar cambios de estado del dispositivo. Se expresa en el siguiente formato completo: /as/mqtt/status/${productKey}/${deviceName}.

ResourceGroupId

String

No

rg-acfmxazb4ph****

El ID del resource group.

Importante
  • IoT Platform solo admite la gestión de resource groups por instancia. ResourceGroupId no surte efecto. Ya no es necesario especificar este parámetro.

  • El resource group que especificó al llamar a esta operación anteriormente sigue siendo válido.

Topic

String

No

/sys/g18l***/device1/thing/event/property/post

El topic completo al que se aplica la regla.

Si especifica este parámetro, no es necesario especificar ShortTopic ni TopicType.

Además de los parámetros de solicitud específicos de la operación anteriores, debe especificar parámetros de solicitud comunes al llamar a esta operación. Para obtener más información sobre los parámetros de solicitud comunes, consulte Parámetros comunes.

Nota

Para habilitar una regla, debe especificar ProductKey, ShortTopic y Select.

Parámetros de respuesta

Parámetro

Tipo

Ejemplo

Descripción

Code

String

iot.system.SystemException

El código de error devuelto si la solicitud falló. Para obtener más información, consulte Códigos de error.

ErrorMessage

String

A system exception occurred.

El mensaje de error devuelto si la solicitud falló.

RequestId

String

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

El ID de la solicitud.

RuleId

Long

100000

El ID de la regla. Si la solicitud fue exitosa, el motor de reglas genera un ID para dicha regla.

Nota

Mantenga la confidencialidad del ID de la regla. Es posible que deba proporcionarlo si desea llamar a operaciones relacionadas con reglas.

Success

Boolean

true

Indica si la solicitud fue exitosa. Valores válidos:

  • true

  • false

Ejemplos

Solicitudes de ejemplo

https://iot.cn-shanghai.aliyuncs.com/?Action=CreateRule
&Name=iot_test1
&ProductKey=a1T27vz****
&ShortTopic=+/thing/event/property/post
&Select=deviceName() as deviceName, items.Humidity.value as Humidity, items.Temperature.value as Temperature
&RuleDesc=rule test
&DataType=JSON
&Where=Temperature>35
&TopicType=1
&<Common request parameters>

Respuestas exitosas de ejemplo

Formato XML

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

Formato JSON

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

Códigos de error

Para obtener una lista de códigos de error, consulte Códigos de error del servicio.