Crée une action de règle pour une règle spécifiée afin de transférer les données traitées d'un topic vers un autre topic ou vers un service Alibaba Cloud pris en charge.
Limites
Les services Alibaba Cloud de destination pris en charge par le moteur de règles varient selon les régions. Pour plus d'informations sur les régions et les services cloud de destination pris en charge, consultez Régions et zones.
Vous pouvez créer au maximum 10 actions de règle par règle.
Appelez cette opération d'API pour définir des actions de règle afin de transférer les données vers un topic IoT Platform, un groupe de consommateurs AMQP ou un service Alibaba Cloud. Les services Alibaba Cloud pris en charge incluent Message Service (MNS), Function Compute et Tablestore. Si vous devez transférer des données vers ApsaraDB RDS, utilisez la console IoT Platform.
-
Chaque compte Alibaba Cloud peut exécuter un maximum de 50 requêtes par seconde (QPS).
RemarqueLes utilisateurs RAM d'un compte Alibaba Cloud partagent le quota du compte.
Débogage
Paramètres de requête
| Paramètre | Type | Obligatoire | Exemple | Description |
| Action | String | Oui | CreateRuleAction | Opération à effectuer. Définissez la valeur sur CreateRuleAction. |
| Configuration | String | Oui | null | Configurations de l'action de règle. Spécifiez une chaîne JSON. Les configurations varient selon les types d'actions de règle. Pour plus d'informations sur la syntaxe requise et les exemples, consultez les tableaux suivants. |
| RuleId | Long | Oui | 100000 | ID de la règle pour laquelle vous souhaitez créer une action. Connectez-vous à la console IoT Platform, et choisissez Rules > Data Forwarding pour afficher l'ID de la règle. Vous pouvez également appeler l'opération ListRule et consulter l'ID de la règle dans la réponse. |
| Type | String | Oui | REPUBLISH | Type de l'action de règle. Valeurs possibles :
Remarque Si vous définissez le paramètre DataType sur BINARY, les règles sont créées au format binaire. Ces règles ne peuvent pas être utilisées pour transférer des données vers Tablestore. |
| IotInstanceId | String | Non | iot-cn-0pp1n8t**** | ID de l'instance. Affichez l'ID de l'instance sur la page Overview de la console IoT Platform. Important
Pour plus d'informations, consultez Vue d'ensemble. |
| ErrorActionFlag | Boolean | Non | false | Indique si l'action de règle transfère les données d'erreur d'opération. Le moteur de règles génère ces données lorsqu'il échoue à transférer les données du topic IoT Platform vers le service cloud de destination. Un échec de transfert indique que les nouvelles tentatives échouent également. Valeurs possibles :
Valeur par défaut : false. |
Configurations du type REPUBLISH
Paramètre | Description |
topic | Topic de destination. Spécifiez un topic de communication TSL (Thing Specification Language) ou un topic personnalisé. Vous pouvez transférer les données vers les topics de communication TSL aval suivants : /sys/${YourProductKey}/${YourDeviceName}/thing/service/property/set/sys/${YourProductKey}/${YourDeviceName}/thing/service/${tsl.service.identifier}Remplacez la variable ${tsl.service.identifier} par un identifiant de service défini dans le modèle TSL. |
topicType | Type de topic. Valeurs possibles : 0 : topic de communication TSL aval. 1 : topic personnalisé. |
Exemples
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}
Configurations du type DATAHUB
Paramètre | Description |
projectName | Nom du projet DataHub utilisé pour recevoir les données. |
topicName | Nom du topic DataHub utilisé pour recevoir les données. |
regionName | Code de la région où DataHub est déployé. Exemple : cn-shanghai. |
role | Informations relatives au rôle RAM. Accordez à IoT Platform l'accès à DataHub en assignant un rôle de service à IoT Platform. Syntaxe d'un rôle RAM : {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingdatahubrole","roleName": "AliyunIOTAccessingDataHubRole"}Remplacez
|
schemaVals | Schéma de DataHub. Pour plus d'informations, consultez le tableau SchemaVals ci-dessous. |
schemaVals
Paramètre | Description |
name | Nom de la colonne. |
value | Valeur de la colonne. |
type | Type de données de la colonne. Valeurs possibles : BIGINT : grand entier DOUBLE : nombre à virgule flottante double précision BOOLEAN : booléen. TIMESTAMP : horodatage. STRING : chaîne de caractères. DECIMAL : décimal. |
Exemple
{
"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"
}
Configurations du type OTS
Paramètre | Description |
instanceName | Nom de l'instance Tablestore utilisée pour recevoir les données. |
tableName | Nom de la table utilisée pour recevoir les données. |
regionName | Code de la région où Tablestore est déployé. Exemple : cn-shanghai. |
role | Informations relatives au rôle RAM. Accordez à IoT Platform l'accès à Tablestore en assignant un rôle de service à IoT Platform. Syntaxe d'un rôle RAM : {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingotsrole","roleName": "AliyunIOTAccessingOTSRole"}Remplacez
|
primaryKeys | Liste des clés primaires dans la table de destination. Pour plus d'informations, consultez le tableau PrimaryKeys ci-dessous. |
PrimaryKeys
Paramètre | Description |
columnType | Type de données de la clé primaire. Valeurs possibles : INTEGER : entier STRING : chaîne de caractères BINARY : binaire |
columnName | Nom de la clé primaire. |
columnValue | Valeur de la clé primaire. |
option | Indique si la clé primaire est une colonne à incrémentation automatique. Définissez le paramètre sur AUTO_INCREMENT ou laissez-le vide. La clé primaire est une colonne à incrémentation automatique si les paramètres columnType et option sont respectivement définis sur INTEGER et AUTO_INCREMENT. |
Exemple
{
"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"
}
}
Configurations du type MNS
Paramètre | Description |
themeName | Nom du topic MNS utilisé pour recevoir les données. |
regionName | Code de la région où MNS est déployé. Exemple : cn-shanghai. |
role | Informations relatives au rôle RAM. Pour accorder à IoT Platform l'accès à MNS, assignez un rôle de service à IoT Platform. Syntaxe d'un rôle RAM : {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"}Remplacez
|
Exemple
{
"themeName": "mns-test-topic1",
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",
"roleName": "AliyunIOTAccessingMNSRole"
}
}
Configurations du type FC
Paramètre | Description |
functionName | Nom de la fonction utilisée pour recevoir les données. |
serviceName | Nom du service utilisé pour recevoir les données. |
regionName | Code de la région où Function Compute est déployé. Exemple : cn-shanghai. |
role | Informations relatives au rôle RAM. Accordez à IoT Platform l'accès à Function Compute en assignant un rôle de service à IoT Platform. Syntaxe d'un rôle RAM : {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingfcrole","roleName": "AliyunIOTAccessingFCRole"}Remplacez
|
Exemple
{
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingfcrole",
"roleName": "AliyunIOTAccessingFCRole"
},
"functionName": "weatherForecast",
"serviceName": "weather"
}
Configurations du type ONS
Appelez le SDK ou utilisez la console de Message Queue for Apache RocketMQ pour accorder à IoT Platform l'accès au service. IoT Platform doit être autorisé à publier des messages dans Message Queue for Apache RocketMQ. Ensuite, créez une action de règle pour transférer les données vers le service.
Paramètre | Description |
instanceId | ID de l'instance Message Queue for Apache RocketMQ utilisée pour recevoir les données. |
topic | Nom du topic Message Queue for Apache RocketMQ utilisé pour recevoir les données. |
regionName | Code de la région où Message Queue for Apache RocketMQ est déployé. Exemple : cn-shanghai. Pour transférer des données via Internet dans la même zone, utilisez une instance Message Queue for Apache RocketMQ standard. Pour transférer des données entre différentes zones, utilisez une instance Message Queue for Apache RocketMQ Platinum Edition. |
tag | Facultatif. Tag. Le tag ne peut pas dépasser 128 octets. |
role | Informations relatives au rôle RAM. Accordez à IoT Platform l'accès à Message Queue for Apache RocketMQ en assignant un rôle de service à IoT Platform. Syntaxe d'un rôle RAM : {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingonsrole","roleName": "AliyunIOTAccessingONSRole"}Remplacez
|
Exemple
{
"instanceId": "MQ_INST_123157908552****_XXXXXX"
"topic": "aliyun-iot-XXXXX",
"regionName": "cn-hangzhou",
"role": {
"roleArn": "acs:ram::6541***:role/aliyuniotaccessingonsrole",
"roleName": "AliyunIOTAccessingONSRole"
}
}
Configurations du type AMQP
| Paramètre | Description |
|
groupId |
ID du groupe de consommateurs. |
Exemple
{
"groupId":"ZTh1JmyLGuZcUfv44p4z00****"
}
En plus des paramètres de requête spécifiques à l'opération mentionnés précédemment, spécifiez les paramètres de requête communs lors de l'appel de cette opération. Pour plus d'informations, consultez Paramètres de requête communs.
Paramètres de réponse
| Paramètre | Type | Exemple | Description |
| ActionId | Long | 10003 | ID de l'action. Le moteur de règles génère l'ID d'action si l'appel réussit. Remarque Conservez ces informations pour référence future. Lorsque vous appelez une opération liée à l'action de règle, fournissez l'ID d'action. |
| Code | String | iot.system.SystemException | Code d'erreur renvoyé en cas d'échec de l'appel. Pour plus d'informations, consultez Codes d'erreur. |
| ErrorMessage | String | A system exception occurred. | Message d'erreur renvoyé en cas d'échec de l'appel. |
| RequestId | String | 21D327AF-A7DE-4E59-B5D1-ACAC8C024555 | ID de la requête. |
| Success | Boolean | true | Indique si l'appel a réussi.
|
Exemples
Exemples de requêtes
https://iot.cn-shanghai.aliyuncs.com/?Action=CreateRuleAction
&RuleId=100000
&Type=REPUBLISH
&Configuration={"topic":"/a1POX0c****/device1/user/get","topicType":1}
&<Common request parameters>
Exemples de réponses réussies
Format XML
<CreateRuleActionResponse>
<RequestId>21D327AF-A7DE-4E59-B5D1-ACAC8C024555</RequestId>
<ActionId>10003</ActionId>
<Success>true</Success>
</CreateRuleActionResponse>
Format JSON
{
"RequestId": "21D327AF-A7DE-4E59-B5D1-ACAC8C024555",
"ActionId": 10003,
"Success": true
}
Codes d'erreur
Pour obtenir la liste des codes d'erreur, visitez le Centre d'erreurs API.