Tous les produits
Search
Centre de documentation

IoT Platform:CreateRule

Dernière mise à jour :Aug 09, 2026

Crée une règle de transfert de données pour un topic spécifique.

Notes d'utilisation

Lorsque vous appelez cette opération, vous devez spécifier ProductKey dans la requête.

Limites QPS

Vous pouvez appeler cette opération API jusqu'à 50 fois par seconde par compte.

Remarque

Les utilisateurs Resource Access Management (RAM) d'un compte Alibaba Cloud partagent le quota du compte.

Débogage

OpenAPI Explorer calcule automatiquement la valeur de signature. Pour plus de commodité, 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

Parameter

Type

Required

Example

Description

Action

String

Yes

CreateRule

L'opération que vous souhaitez exécuter. Définissez la valeur sur CreateRule.

Name

String

Yes

iot_test1

Le nom de la règle de transfert de données. Le nom de la règle doit comporter entre 1 et 30 caractères et peut contenir des lettres, des chiffres, des traits de soulignement (_) et des traits d'union (-).

IotInstanceId

String

No

iot-cn-0pp1n8t****

L'ID de l'instance. Vous pouvez afficher l'ID de l'instance sur l'onglet Overview de la console IoT Platform.

Important
  • Vous devez spécifier ce paramètre si votre instance possède un ID. Sinon, l'appel échoue.

  • Si l'onglet Overview ou l'ID de l'instance n'est pas affiché dans la console IoT Platform, vous n'avez pas besoin de spécifier ce paramètre.

Pour plus d'informations sur les instances, consultez Présentation.

Select

String

No

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

L'instruction SQL SELECT que vous souhaitez exécuter. Pour plus d'informations, consultez Instructions SQL.

Remarque

Ce paramètre spécifie les champs dans les instructions SELECT. Par exemple, si l'instruction SELECT est SELECT a,b,c, définissez ce paramètre sur a,b,c.

ShortTopic

String

No

+/thing/event/property/post

Le topic auquel cette règle s'applique. Le format est ${deviceName}/topicShortName. ${deviceName} spécifie le nom de l'appareil, et topicShortName spécifie le nom court du topic.

  • Pour les topics de communication de base ou les topics de communication basés sur Thing Specification Language (TSL), le format est ${deviceName}/topicShortName. Vous pouvez remplacer ${deviceName} par le caractère générique +. Le caractère générique indique que le topic s'applique à tous les appareils sous le produit. Valeurs valides de topicShortName :

    • /thing/event/property/post : soumet les données de propriété d'un appareil.

    • /thing/event/${tsl.event.identifier}/post : soumet les données d'événement d'un appareil. ${tsl.event.identifier} spécifie l'identifiant d'un événement dans le modèle TSL.

    • /thing/lifecycle : soumet les modifications du cycle de vie de l'appareil.

    • /thing/downlink/reply/message : soumet la réponse d'un appareil à une demande d'IoT Platform.

    • /thing/list/found : soumet les données lorsqu'une passerelle détecte un nouvel sous-appareil.

    • /thing/topo/lifecycle : soumet les modifications de la topologie de l'appareil.

    • /thing/event/property/history/post : soumet les données historiques de propriété d'un appareil.

    • /thing/event/${tsl.event.identifier}/history/post : soumet les données historiques d'événement d'un appareil. ${tsl.event.identifier} spécifie l'identifiant d'un événement dans le modèle TSL.

    • /ota/upgrade : soumet le statut de mise à jour over-the-air (OTA) d'un appareil.

    • /ota/version/post : soumet les versions de module OTA.

    • /thing/deviceinfo/update : soumet les modifications de tag d'appareil.

    • /edge/driver/${driver_id}/point_post : soumet les données en mode transparent depuis Link IoT Edge. ${driver_id} spécifie l'ID du pilote qu'un appareil utilise pour accéder à Link IoT Edge.

      Pour le topic utilisé pour soumettre le statut des lots de mise à jour OTA, le format est ${packageId}/${jobId}/ota/job/status. Ce topic appartient aux topics de communication de base. ${packageId} spécifie l'ID du package. ${jobId} spécifie l'ID du lot de mise à jour.

  • Pour les topics personnalisés, voici un exemple : ${deviceName}/user/get.

    Vous pouvez appeler l'opération QueryProductTopic pour afficher tous les topics personnalisés du produit.

    Lorsque vous spécifiez un topic personnalisé, vous pouvez utiliser les caractères génériques + et #.

    • Vous pouvez remplacer ${deviceName} par le caractère générique +. Le caractère générique spécifie que le topic s'applique à tous les appareils du produit.

    • Vous pouvez remplacer les champs qui suivent ${deviceName} par /user/#. Le caractère générique # spécifie que le topic s'applique à tous les champs qui suivent/user.

      Pour plus d'informations sur l'utilisation des caractères génériques, consultez Utiliser des topics personnalisés.

  • Pour les topics utilisés pour soumettre les modifications de statut de l'appareil, le format est ${deviceName}.

    Vous pouvez utiliser le caractère générique +. Dans ce cas, les modifications de statut de tous les appareils sous le produit sont soumises.

Where

String

No

Temperature>35

La condition utilisée pour déclencher la règle. Pour plus d'informations sur la règle, consultez Instructions SQL.

Remarque

Ce paramètre spécifie les champs dans la clause WHERE. Par exemple, si l'instruction WHERE est WHERE a > 10, définissez ce paramètre sur a>10.

ProductKey

String

No

a1T27vz****

Le ProductKey du produit auquel la règle s'applique.

RuleDesc

String

No

rule test

La description de la règle. La description peut comporter jusqu'à 100 caractères.

DataType

String

No

JSON

Le format des données traitées selon la règle. La valeur de ce paramètre doit être cohérente avec le format des données de l'appareil que vous souhaitez traiter. Valeurs valides :

  • JSON (par défaut) : données JSON.

  • BINARY : données binaires.

Remarque

Si vous définissez ce paramètre sur BINARY, vous ne pouvez pas définir TopicType sur 0 et vous ne pouvez pas transférer les données vers Tablestore et ApsaraDB RDS.

TopicType

Integer

No

1

  • 0 : le topic de communication de base ou le topic de communication basé sur TSL décrit dans ShortTopic. Le topic utilisé pour soumettre le statut des lots de mise à jour OTA appartient aux topics de communication de base.

  • 1 : le topic personnalisé.

  • 2 : le topic utilisé pour soumettre les modifications de statut de l'appareil. Le topic est exprimé dans le format complet suivant : /as/mqtt/status/${productKey}/${deviceName}.

ResourceGroupId

String

No

rg-acfmxazb4ph****

L'ID du groupe de ressources.

Important
  • IoT Platform prend uniquement en charge la gestion des groupes de ressources par instance. ResourceGroupId n'a aucun effet. Vous n'avez plus besoin de spécifier ce paramètre.

  • Le groupe de ressources que vous avez spécifié lors de l'appel précédent de cette opération reste valide.

Topic

String

No

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

Le topic complet auquel la règle s'applique.

Si vous spécifiez ce paramètre, vous n'avez pas besoin de spécifier ShortTopic ni TopicType.

En plus des paramètres de requête spécifiques à l'opération ci-dessus, vous devez spécifier les paramètres de requête communs lors de l'appel de cette opération. Pour plus d'informations sur les paramètres de requête communs, consultez Paramètres communs.

Remarque

Pour activer une règle, vous devez spécifier ProductKey, ShortTopic et Select.

Paramètres de réponse

Parameter

Type

Example

Description

Code

String

iot.system.SystemException

Le code d'erreur renvoyé en cas d'échec de la requête. Pour plus d'informations, consultez Codes d'erreur.

ErrorMessage

String

A system exception occurred.

Le message d'erreur renvoyé en cas d'échec de la requête.

RequestId

String

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

L'ID de la requête.

RuleId

Long

100000

L'ID de la règle. Si la requête a réussi, le moteur de règles génère un ID de règle pour la règle.

Remarque

Gardez l'ID de la règle confidentiel. Vous devrez peut-être fournir l'ID de la règle si vous souhaitez appeler des opérations liées aux règles.

Success

Boolean

true

Indique si la requête a réussi. Valeurs valides :

  • true

  • false

Exemples

Exemples de requêtes

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>

Exemples de réponses réussies

Format XML

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

Format JSON

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

Codes d'erreur

Pour obtenir la liste des codes d'erreur, consultez les Codes d'erreur de service.