Cree una acción de regla para una regla específica con el fin de reenviar datos procesados desde un tema hacia otro tema o hacia un servicio compatible de Alibaba Cloud.
Límites
Los servicios de destino de Alibaba Cloud compatibles con el motor de reglas varían según la región. Para obtener más información sobre las regiones y los servicios en la nube de destino compatibles con el motor de reglas, consulte Regiones y zonas.
Se pueden crear hasta 10 acciones de regla por cada regla.
Puede llamar a esta operación de API para definir acciones de regla que reenvíen datos a un tema de IoT Platform, a un grupo de consumidores AMQP o a un servicio de Alibaba Cloud. Los servicios compatibles de Alibaba Cloud incluyen Message Service (MNS), Function Compute y Tablestore. Si necesita reenviar datos a ApsaraDB RDS, debe utilizar la consola de IoT Platform.
-
Cada cuenta de Alibaba Cloud puede ejecutar un máximo de 50 consultas por segundo (QPS).
NotaLos usuarios RAM de una cuenta de Alibaba Cloud comparten la cuota de dicha cuenta.
Depuración
Parámetros de solicitud
| Parámetro | Tipo | Obligatorio | Ejemplo | Descripción |
| Action | String | Sí | CreateRuleAction | La operación que se va a realizar. Establezca el valor en CreateRuleAction. |
| Configuration | String | Sí | null | Las configuraciones de la acción de regla. Debe especificar una cadena JSON. Las configuraciones varían según el tipo de acción de regla. Para obtener más información sobre la sintaxis obligatoria y ejemplos, consulte las tablas a continuación. |
| RuleId | Long | Sí | 100000 | El ID de la regla para la cual desea crear una acción. Inicie sesión en la consola de IoT Platform, y elija Rules > Data Forwarding para consultar el ID de la regla. También puede llamar a la operación ListRule y consultar el ID de la regla en la respuesta. |
| Type | String | Sí | REPUBLISH | El tipo de acción de regla. Valores válidos:
Nota Si establece el parámetro DataType en BINARY, las reglas se crean en formato binario. Estas reglas no se pueden utilizar para reenviar datos a Tablestore. |
| IotInstanceId | String | No | iot-cn-0pp1n8t**** | El ID de la instancia. Consulte el ID de la instancia en la página Overview de la consola de IoT Platform. Importante
Para obtener más información, consulte Descripción general. |
| ErrorActionFlag | Boolean | No | false | Especifica si la acción de regla reenvía datos de operaciones con errores. Los datos de operaciones con errores se generan cuando el motor de reglas no logra reenviar datos desde el tema de IoT Platform al servicio en la nube de destino. Un fallo en el reenvío de datos indica que los reintentos de reenvío también fallaron. Valores válidos:
Valor predeterminado: false. |
Configuraciones del tipo REPUBLISH
Parámetro | Descripción |
topic | El tema de destino. Especifique un tema de comunicación de Thing Specification Language (TSL) o un tema personalizado. Puede reenviar datos a los siguientes temas de comunicación TSL descendentes: /sys/${YourProductKey}/${YourDeviceName}/thing/service/property/set/sys/${YourProductKey}/${YourDeviceName}/thing/service/${tsl.service.identifier}Reemplace la variable ${tsl.service.identifier} con un identificador de servicio definido en el modelo TSL. |
topicType | El tipo de tema. Valores válidos: 0: un tema de comunicación TSL descendente. 1: un tema personalizado. |
Ejemplos
A system topic: {"topic":"/sys/a1TXXXXXWSN/xxx_cache001/thing/service/property/set","topicType":0}
A custom topic: {"topic":"/a1TXXXXXWSN/xxx_cache001/user/update","topicType":1}
Configuraciones del tipo DATAHUB
Parámetro | Descripción |
projectName | El nombre del proyecto de DataHub que se utiliza para recibir datos. |
topicName | El nombre del tema de DataHub que se utiliza para recibir datos. |
regionName | El código de la región donde se despliega DataHub. Ejemplo: cn-shanghai. |
role | La información sobre el rol de RAM. Otorgue acceso a DataHub a IoT Platform mediante la asignación de un rol de servicio a IoT Platform. La sintaxis de un rol de RAM es: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingdatahubrole","roleName": "AliyunIOTAccessingDataHubRole"}Reemplace
|
schemaVals | El esquema de DataHub. Para obtener más información, consulte la tabla SchemaVals a continuación. |
schemaVals
Parámetro | Descripción |
name | El nombre de la columna. |
value | El valor de la columna. |
type | El tipo de datos de la columna. Valores válidos: BIGINT: entero grande DOUBLE: flotante de doble precisión BOOLEAN: booleano. TIMESTAMP: marca de tiempo. STRING: cadena. DECIMAL: decimal. |
Ejemplo
{
"schemaVals": [
{
"name": "devicename",
"value": "${deviceName}",
"type": "STRING"
},
{
"name": "msgtime",
"value": "${msgTime}",
"type": "TIMESTAMP"
}
],
"role": {
"roleArn": "acs:ram::6541***:role/aliyuniotaccessingdatahubrole",
"roleName": "AliyunIOTAccessingDataHubRole"
},
"projectName": "iot_datahub_stream",
"topicName": "device_message",
"regionName": "cn-shanghai"
}
Configuraciones del tipo OTS
Parámetro | Descripción |
instanceName | El nombre de la instancia de Tablestore que se utiliza para recibir datos. |
tableName | El nombre de la tabla que se utiliza para recibir datos. |
regionName | El código de la región donde se despliega Tablestore. Ejemplo: cn-shanghai. |
role | La información sobre el rol de RAM. Otorgue acceso a Tablestore a IoT Platform mediante la asignación de un rol de servicio a IoT Platform. La sintaxis de un rol de RAM es: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingotsrole","roleName": "AliyunIOTAccessingOTSRole"}Reemplace
|
primaryKeys | La lista de claves principales en la tabla de destino. Para obtener más información, consulte la tabla PrimaryKeys a continuación. |
PrimaryKeys
Parámetro | Descripción |
columnType | El tipo de datos de la clave principal. Valores válidos: INTEGER: entero STRING: cadena BINARY: binario |
columnName | El nombre de la clave principal. |
columnValue | El valor de la clave principal. |
option | Especifica si la clave principal es una columna de incremento automático. Establezca el parámetro en AUTO_INCREMENT o déjelo vacío. La clave principal es una columna de incremento automático si los parámetros columnType y option se establecen en INTEGER y AUTO_INCREMENT, respectivamente. |
Ejemplo
{
"instanceName": "testaaa",
"tableName": "tt",
"primaryKeys": [
{
"columnType": "STRING",
"columnName": "ttt",
"columnValue": "${tt}",
"option": ""
},
{
"columnType": "INTEGER",
"columnName": "id",
"columnValue": "",
"option": "AUTO_INCREMENT"
}
],
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingotsrole",
"roleName": "AliyunIOTAccessingOTSRole"
}
}
Configuraciones del tipo MNS
Parámetro | Descripción |
themeName | El nombre del tema de MNS que se utiliza para recibir datos. |
regionName | El código de la región donde se despliega MNS. Ejemplo: cn-shanghai. |
role | La información sobre el rol de RAM. Otorgue acceso a MNS a IoT Platform mediante la asignación de un rol de servicio a IoT Platform. La sintaxis de un rol de RAM es: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"}Reemplace
|
Ejemplo
{
"themeName": "mns-test-topic1",
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",
"roleName": "AliyunIOTAccessingMNSRole"
}
}
Configuraciones del tipo FC
Parámetro | Descripción |
functionName | El nombre de la función que se utiliza para recibir datos. |
serviceName | El nombre del servicio que se utiliza para recibir datos. |
regionName | El código de la región donde se despliega Function Compute. Ejemplo: cn-shanghai. |
role | La información sobre el rol de RAM. Otorgue acceso a Function Compute a IoT Platform mediante la asignación de un rol de servicio a IoT Platform. La sintaxis de un rol de RAM es: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingfcrole","roleName": "AliyunIOTAccessingFCRole"}Reemplace
|
Ejemplo
{
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingfcrole",
"roleName": "AliyunIOTAccessingFCRole"
},
"functionName": "weatherForecast",
"serviceName": "weather"
}
Configuraciones del tipo ONS
Debe llamar al SDK o usar la consola de Message Queue for Apache RocketMQ para otorgar acceso al servicio a IoT Platform. IoT Platform debe tener autorización para publicar mensajes en Message Queue for Apache RocketMQ. Posteriormente, podrá crear una acción de regla para reenviar datos al servicio.
Parámetro | Descripción |
instanceId | El ID de la instancia de Message Queue for Apache RocketMQ que se utiliza para recibir datos. |
topic | El nombre del tema de Message Queue for Apache RocketMQ que se utiliza para recibir datos. |
regionName | El código de la región donde se despliega Message Queue for Apache RocketMQ. Ejemplo: cn-shanghai. Para reenviar datos a través de Internet en la misma zona, use una instancia común de Message Queue for Apache RocketMQ. Para reenviar datos entre zonas, debe usar una instancia de Message Queue for Apache RocketMQ Platinum Edition. |
tag | Opcional. La etiqueta. La etiqueta no puede exceder los 128 bytes de longitud. |
role | La información sobre el rol de RAM. Otorgue acceso a Message Queue for Apache RocketMQ a IoT Platform mediante la asignación de un rol de servicio a IoT Platform. La sintaxis de un rol de RAM es: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingonsrole","roleName": "AliyunIOTAccessingONSRole"}Reemplace
|
Ejemplo
{
"instanceId": "MQ_INST_123157908552****_XXXXXX"
"topic": "aliyun-iot-XXXXX",
"regionName": "cn-hangzhou",
"role": {
"roleArn": "acs:ram::6541***:role/aliyuniotaccessingonsrole",
"roleName": "AliyunIOTAccessingONSRole"
}
}
Configuraciones del tipo AMQP
|
Parámetro |
Descripción |
|
groupId |
El ID del grupo de consumidores. |
Ejemplo
{
"groupId":"ZTh1JmyLGuZcUfv44p4z00****"
}
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, consulte Parámetros de solicitud comunes.
Parámetros de respuesta
| Parámetro | Tipo | Ejemplo | Descripción |
| ActionId | Long | 10003 | El ID de la acción. El motor de reglas genera el ID de acción si la llamada es exitosa. Nota Guarde la información para futuras referencias. Cuando llame a una operación relacionada con la acción de regla, deberá proporcionar el ID de la acción. |
| Code | String | iot.system.SystemException | El código de error devuelto si la llamada falla. Para obtener más información, consulte Códigos de error. |
| ErrorMessage | String | A system exception occurred. | El mensaje de error devuelto si la llamada falla. |
| RequestId | String | 21D327AF-A7DE-4E59-B5D1-ACAC8C024555 | El ID de la solicitud. |
| Success | Boolean | true | Indica si la llamada fue exitosa.
|
Ejemplos
Solicitudes de ejemplo
https://iot.cn-shanghai.aliyuncs.com/?Action=CreateRuleAction
&RuleId=100000
&Type=REPUBLISH
&Configuration={"topic":"/a1POX0c****/device1/user/get","topicType":1}
&<Common request parameters>
Respuestas exitosas de ejemplo
Formato XML
<CreateRuleActionResponse>
<RequestId>21D327AF-A7DE-4E59-B5D1-ACAC8C024555</RequestId>
<ActionId>10003</ActionId>
<Success>true</Success>
</CreateRuleActionResponse>
Formato JSON
{
"RequestId": "21D327AF-A7DE-4E59-B5D1-ACAC8C024555",
"ActionId": 10003,
"Success": true
}
Códigos de error
Para obtener una lista de códigos de error, visite el Centro de errores de API.