Cria uma ação de regra para uma regra especificada, encaminhando dados processados de um tópico para outro tópico ou para um serviço compatível da Alibaba Cloud.
Limites
Os serviços de destino da Alibaba Cloud compatíveis com o mecanismo de regras variam conforme a região. Para obter mais informações sobre as regiões e os serviços de nuvem de destino suportados pelo mecanismo de regras, consulte Regiões e zonas.
É possível criar no máximo 10 ações de regra para cada regra.
Chame esta operação de API para definir ações de regra que encaminhem dados para um tópico da IoT Platform, um grupo de consumidores AMQP ou um serviço da Alibaba Cloud. Os serviços compatíveis incluem Message Service (MNS), Function Compute e Tablestore. Se precisar encaminhar dados para o ApsaraDB RDS, utilize o console da IoT Platform.
-
Cada conta da Alibaba Cloud pode executar no máximo 50 consultas por segundo (QPS).
NotaUsuários RAM de uma conta da Alibaba Cloud compartilham a cota dessa conta.
Depuração
Parâmetros da solicitação
| Parâmetro | Tipo | Obrigatório | Exemplo | Descrição |
| Action | String | Sim | CreateRuleAction | A operação que você deseja executar. Defina o valor como CreateRuleAction. |
| Configuration | String | Sim | null | As configurações da ação de regra. Especifique uma string JSON. As configurações variam conforme o tipo da ação de regra. Para obter mais informações sobre a sintaxe necessária e exemplos, consulte as tabelas a seguir. |
| RuleId | Long | Sim | 100000 | O ID da regra para a qual você deseja criar uma ação. Faça login no console da IoT Platform, e escolha Rules > Data Forwarding para visualizar o ID da regra. Também é possível chamar a operação ListRule e verificar o ID da regra na resposta. |
| Type | String | Sim | REPUBLISH | O tipo da ação de regra. Valores válidos:
Nota Se você definir o parâmetro DataType como BINARY, as regras serão criadas no formato binário. Essas regras não podem ser usadas para encaminhar dados ao Tablestore. |
| IotInstanceId | String | Não | iot-cn-0pp1n8t**** | O ID da instância. Visualize o ID da instância na página Overview do console da IoT Platform. Importante
Para mais detalhes, consulte Visão geral. |
| ErrorActionFlag | Boolean | Não | false | Define se a ação de regra encaminha dados de operações com erro. Esses dados são gerados quando o mecanismo de regras falha ao encaminhar dados do tópico da IoT Platform para o serviço de nuvem de destino. Uma falha no encaminhamento indica que as tentativas de reenvio também falharam. Valores válidos:
Valor padrão: false. |
Configurações do tipo REPUBLISH
Parâmetro | Descrição |
topic | O tópico de destino. Especifique um tópico de comunicação TSL (Thing Specification Language) ou um tópico personalizado. É possível encaminhar dados para os seguintes tópicos de comunicação TSL downstream: /sys/${YourProductKey}/${YourDeviceName}/thing/service/property/set/sys/${YourProductKey}/${YourDeviceName}/thing/service/${tsl.service.identifier}Substitua a variável ${tsl.service.identifier} por um identificador de serviço definido no modelo TSL. |
topicType | O tipo do tópico. Valores válidos: 0: tópico de comunicação TSL downstream. 1: tópico personalizado. |
Exemplos
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}
Configurações do tipo DATAHUB
Parâmetro | Descrição |
projectName | Nome do projeto DataHub usado para receber dados. |
topicName | Nome do tópico DataHub usado para receber dados. |
regionName | Código da região onde o DataHub está implantado. Exemplo: cn-shanghai. |
role | Informações sobre a função RAM. Conceda acesso da IoT Platform ao DataHub atribuindo uma função de serviço à IoT Platform. Sintaxe da função RAM: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingdatahubrole","roleName": "AliyunIOTAccessingDataHubRole"}Substitua
|
schemaVals | Schema do DataHub. Para mais informações, consulte a tabela SchemaVals a seguir. |
schemaVals
Parâmetro | Descrição |
name | Nome da coluna. |
value | Valor da coluna. |
type | Tipo de dados da coluna. Valores válidos: BIGINT: inteiro grande DOUBLE: ponto flutuante de precisão dupla BOOLEAN: booleano. TIMESTAMP: carimbo de data/hora. STRING: string. DECIMAL: decimal. |
Exemplo
{
"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"
}
Configurações do tipo OTS
Parâmetro | Descrição |
instanceName | Nome da instância do Tablestore usada para receber dados. |
tableName | Nome da tabela usada para receber dados. |
regionName | Código da região onde o Tablestore está implantado. Exemplo: cn-shanghai. |
role | Informações sobre a função RAM. Conceda acesso da IoT Platform ao Tablestore atribuindo uma função de serviço à IoT Platform. Sintaxe da função RAM: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingotsrole","roleName": "AliyunIOTAccessingOTSRole"}Substitua
|
primaryKeys | Lista de chaves primárias na tabela de destino. Para mais informações, consulte a tabela PrimaryKeys a seguir. |
PrimaryKeys
Parâmetro | Descrição |
columnType | Tipo de dados da chave primária. Valores válidos: INTEGER: inteiro STRING: string BINARY: binário |
columnName | Nome da chave primária. |
columnValue | Valor da chave primária. |
option | Define se a chave primária é uma coluna de incremento automático. Defina o parâmetro como AUTO_INCREMENT ou deixe-o vazio. A chave primária será uma coluna de incremento automático se os parâmetros columnType e option estiverem definidos como INTEGER e AUTO_INCREMENT, respectivamente. |
Exemplo
{
"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"
}
}
Configurações do tipo MNS
Parâmetro | Descrição |
themeName | Nome do tópico MNS usado para receber dados. |
regionName | Código da região onde o MNS está implantado. Exemplo: cn-shanghai. |
role | Informações sobre a função RAM. Para conceder acesso da IoT Platform ao MNS, atribua uma função de serviço à IoT Platform. Sintaxe da função RAM: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"}Substitua
|
Exemplo
{
"themeName": "mns-test-topic1",
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",
"roleName": "AliyunIOTAccessingMNSRole"
}
}
Configurações do tipo FC
Parâmetro | Descrição |
functionName | Nome da função usada para receber dados. |
serviceName | Nome do serviço usado para receber dados. |
regionName | Código da região onde o Function Compute está implantado. Exemplo: cn-shanghai. |
role | Informações sobre a função RAM. Conceda acesso da IoT Platform ao Function Compute atribuindo uma função de serviço à IoT Platform. Sintaxe da função RAM: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingfcrole","roleName": "AliyunIOTAccessingFCRole"}Substitua
|
Exemplo
{
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingfcrole",
"roleName": "AliyunIOTAccessingFCRole"
},
"functionName": "weatherForecast",
"serviceName": "weather"
}
Configurações do tipo ONS
Chame o SDK ou use o console do Message Queue for Apache RocketMQ para conceder acesso da IoT Platform ao serviço. A IoT Platform precisa de autorização para publicar mensagens no Message Queue for Apache RocketMQ. Somente então crie uma ação de regra para encaminhar dados ao serviço.
Parâmetro | Descrição |
instanceId | ID da instância do Message Queue for Apache RocketMQ usada para receber dados. |
topic | Nome do tópico do Message Queue for Apache RocketMQ usado para receber dados. |
regionName | Código da região onde o Message Queue for Apache RocketMQ está implantado. Exemplo: cn-shanghai. Para encaminhar dados pela Internet na mesma zona, utilize uma instância comum do Message Queue for Apache RocketMQ. Para encaminhar dados entre zonas diferentes, use uma instância do Message Queue for Apache RocketMQ Platinum Edition. |
tag | Opcional. A tag. O tamanho da tag não pode exceder 128 bytes. |
role | Informações sobre a função RAM. Conceda acesso da IoT Platform ao Message Queue for Apache RocketMQ atribuindo uma função de serviço à IoT Platform. Sintaxe da função RAM: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingonsrole","roleName": "AliyunIOTAccessingONSRole"}Substitua
|
Exemplo
{
"instanceId": "MQ_INST_123157908552****_XXXXXX"
"topic": "aliyun-iot-XXXXX",
"regionName": "cn-hangzhou",
"role": {
"roleArn": "acs:ram::6541***:role/aliyuniotaccessingonsrole",
"roleName": "AliyunIOTAccessingONSRole"
}
}
Configurações do tipo AMQP
|
Parâmetro |
Descrição |
|
groupId |
O ID do grupo de consumidores. |
Exemplo
{
"groupId":"ZTh1JmyLGuZcUfv44p4z00****"
}
Além dos parâmetros de solicitação específicos da operação mencionados acima, especifique os parâmetros de solicitação comuns ao chamar esta operação. Para mais informações, consulte Parâmetros de solicitação comuns.
Parâmetros de resposta
| Parâmetro | Tipo | Exemplo | Descrição |
| ActionId | Long | 10003 | O ID da ação. O mecanismo de regras gera o ID da ação se a chamada for bem-sucedida. Nota Guarde essa informação para referência futura. Ao chamar uma operação relacionada à ação de regra, forneça o ID da ação. |
| Code | String | iot.system.SystemException | O código de erro retornado se a chamada falhar. Para mais informações, consulte Códigos de erro. |
| ErrorMessage | String | A system exception occurred. | A mensagem de erro retornada se a chamada falhar. |
| RequestId | String | 21D327AF-A7DE-4E59-B5D1-ACAC8C024555 | O ID da solicitação. |
| Success | Boolean | true | Indica se a chamada foi bem-sucedida.
|
Exemplos
Exemplos de solicitações
https://iot.cn-shanghai.aliyuncs.com/?Action=CreateRuleAction
&RuleId=100000
&Type=REPUBLISH
&Configuration={"topic":"/a1POX0c****/device1/user/get","topicType":1}
&<Common request parameters>
Exemplos de respostas de sucesso
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 erro
Para obter uma lista de códigos de erro, visite o Centro de Erros de API.