Tous les produits
Search
Centre de documentation

IoT Platform:CreateRuleAction

Dernière mise à jour :Aug 09, 2026

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).

    Remarque

    Les utilisateurs RAM d'un compte Alibaba Cloud partagent le quota du compte.

Débogage

Alibaba Cloud met à votre disposition OpenAPI Explorer pour simplifier l'utilisation des API. OpenAPI Explorer calcule automatiquement la valeur de signature. Nous vous recommandons d'appeler cette opération dans OpenAPI Explorer. OpenAPI Explorer génère dynamiquement l'exemple de code de l'opération pour différents SDK.

Paramètres de requête

ParamètreTypeObligatoireExempleDescription
ActionStringOuiCreateRuleAction

Opération à effectuer. Définissez la valeur sur CreateRuleAction.

ConfigurationStringOuinull

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.

RuleIdLongOui100000

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.

TypeStringOuiREPUBLISH

Type de l'action de règle. Valeurs possibles :

  • REPUBLISH : transfère les données de topic traitées par le moteur de règles vers un autre topic IoT Platform.
  • AMQP : transfère les données vers un groupe de consommateurs AMQP.

  • MNS : transfère les données traitées par le moteur de règles vers Message Service (MNS).
  • FC : transfère les données de topic traitées par le moteur de règles vers Function Compute pour le calcul événementiel.
  • OTS : transfère les données traitées par le moteur de règles vers OTS pour le stockage de données NoSQL.
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.
IotInstanceIdStringNoniot-cn-0pp1n8t****

ID de l'instance. Affichez l'ID de l'instance sur la page Overview de la console IoT Platform.

Important
  • Si votre instance possède un ID, configurez ce paramètre. À défaut, l'appel échoue.
  • Si votre instance ne possède pas de Overview page ou d'ID, inutile de définir ce paramètre.

Pour plus d'informations, consultez Vue d'ensemble.

ErrorActionFlagBooleanNonfalse

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 :

  • true : transfère les données d'erreur d'opération.
  • false : transfère les données normales au lieu des données d'erreur d'opération.

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 6541*** par votre ID Alibaba Cloud. Connectez-vous à la console Alibaba Cloud et affichez l'ID du compte sur la page Security Settings.

AliyunIOTAccessingDataHubRole indique un rôle lié au service défini dans RAM. Ce rôle permet d'accorder à IoT Platform l'accès à DataHub. Accédez à la page RAM Roles de la console RAM pour gérer les rôles RAM.

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 6541*** par votre ID Alibaba Cloud. Connectez-vous à la console Alibaba Cloud et affichez l'ID du compte sur la page Security Settings.

AliyunIOTAccessingOTSRole indique un rôle lié au service défini dans RAM. Ce rôle permet d'accorder à IoT Platform l'accès à Tablestore. Accédez à la page RAM Roles de la console RAM pour gérer les rôles RAM.

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 6541*** par votre ID Alibaba Cloud. Connectez-vous à la console Alibaba Cloud et affichez l'ID du compte sur la page Security Settings.

AliyunIOTAccessingMNSRole indique un rôle lié au service défini dans RAM. Ce rôle permet d'accorder à IoT Platform l'accès à MNS. Accédez à la page RAM Roles de la console RAM pour gérer les rôles RAM.

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 6541*** par votre ID Alibaba Cloud. Connectez-vous à la console Alibaba Cloud et affichez l'ID du compte sur la page Security Settings.

AliyunIOTAccessingFCRole indique un rôle lié au service défini dans RAM. Ce rôle permet d'accorder à IoT Platform l'accès à Function Compute. Accédez à la page RAM Roles de la console RAM pour gérer les rôles RAM.

Exemple


{
    "regionName": "cn-shanghai",
    "role": {
        "roleArn": "acs:ram::5645***:role/aliyuniotaccessingfcrole",
        "roleName": "AliyunIOTAccessingFCRole"
    },
    "functionName": "weatherForecast",
    "serviceName": "weather"
}
            

Configurations du type ONS

Remarque

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 6541*** par votre ID Alibaba Cloud. Connectez-vous à la console Alibaba Cloud et affichez l'ID du compte sur la page Security Settings.

AliyunIOTAccessingONSRole indique un rôle lié au service défini dans RAM. Ce rôle permet d'accorder à IoT Platform l'accès à Message Queue for Apache RocketMQ. Accédez à la page RAM Roles de la console RAM pour gérer les rôles RAM.

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ètreTypeExempleDescription
ActionIdLong10003

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.
CodeStringiot.system.SystemException

Code d'erreur renvoyé en cas d'échec de l'appel. Pour plus d'informations, consultez Codes d'erreur.

ErrorMessageStringA system exception occurred.

Message d'erreur renvoyé en cas d'échec de l'appel.

RequestIdString21D327AF-A7DE-4E59-B5D1-ACAC8C024555

ID de la requête.

SuccessBooleantrue

Indique si l'appel a réussi.

  • true : L'appel a réussi.
  • false : L'appel a échoué.

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.