Tous les produits
Search
Centre de documentation

IoT Platform:Fonctions

Dernière mise à jour :Aug 10, 2026

IoT Platform propose diverses fonctions utilisables dans un script d'analyse pour traiter les données. Ces fonctions permettent de convertir des types de données, de transférer des données vers des destinations et de traiter des charges utiles de types spécifiques. Cette rubrique décrit les fonctions fournies par IoT Platform.

Vous pouvez utiliser les fonctions prises en charge par Data Forwarding v1.0 dans les scripts d'analyse de Data Forwarding v2.0. Pour plus d'informations, consultez la section Fonctions.

Conversion de types de données

Fonction

Description

toBoolean(Object)

Convertit le paramètre Object en valeur booléenne. Le paramètre prend en charge les types de données suivants :

  • Boolean : la fonction renvoie la même valeur que le paramètre.

  • Number : si le paramètre est défini sur 0, la fonction renvoie false. Sinon, elle renvoie true.

  • String : si le paramètre est défini sur "true", la fonction renvoie true. Sinon, elle renvoie false.

  • Si le paramètre est défini sur NULL, la fonction renvoie false.

toNumber(Object)

Convertit la valeur du paramètre Object en nombre. Le paramètre prend en charge les types de données suivants :

  • Boolean : si le paramètre est défini sur true, la fonction renvoie 1. Si le paramètre est défini sur false, la fonction renvoie 0.

  • Number : la fonction renvoie la même valeur que le paramètre.

  • String : la fonction analyse la chaîne pour la convertir en nombre.

  • Si le paramètre est défini sur NULL, la fonction renvoie 0.

toString(Object)

Convertit la valeur du paramètre Object en chaîne.

Si le paramètre est défini sur une valeur autre que NULL, la fonction renvoie cette valeur sous forme de chaîne. Si le paramètre est défini sur NULL, la fonction renvoie une chaîne vide.

Si le paramètre est de type binaire, la fonction renvoie une valeur décodée en UTF-8.

toMap(Object)

Convertit la valeur du paramètre Object en map. Le paramètre prend en charge les types de données suivants :

  • Map : la fonction renvoie la même valeur que le paramètre.

  • String : la fonction analyse la chaîne pour la convertir en map au format JSON.

  • Si le paramètre est défini sur NULL, la fonction renvoie une map vide.

toArray(Object)

Convertit la valeur du paramètre Object en tableau. Le paramètre prend en charge les types de données suivants :

  • Array : la fonction renvoie la même valeur que le paramètre.

  • String : la fonction analyse la chaîne pour la convertir en tableau au format JSON.

  • Si le paramètre est défini sur NULL, la fonction renvoie un tableau vide.

toBinary(Object)

Convertit la valeur du paramètre Object en valeur binaire. Le paramètre prend en charge les types de données suivants :

  • Binary : la fonction renvoie la même valeur que le paramètre.

  • String : la fonction renvoie une valeur encodée en UTF-8.

  • Si le paramètre est défini sur NULL, la fonction renvoie une valeur binaire vide.

Conversion de formats temporels

Fonction

Description

format_date(timestamp, patten, timeZone)

Convertit un horodatage en millisecondes en valeur temporelle selon un format spécifié. Une chaîne est renvoyée.

  • timestamp : l'horodatage en millisecondes.

  • patten : le format temporel requis. Exemple : yyyy-MM-dd HH:mm:ss.

  • timeZone : le fuseau horaire. Exemples : GMT, UTC et CST. Il est recommandé de spécifier un fuseau horaire. Si vous ne configurez pas le paramètre timeZone, la fonction renvoie une valeur temporelle au format GMT+8.

to_timestamp(dateString, patten, timeZone)

Convertit une valeur temporelle selon un format spécifié en horodatage en millisecondes. Une valeur numérique est renvoyée.

  • dateString : la chaîne temporelle.

  • patten : le format temporel. Exemple : yyyy-MM-dd HH:mm:ss.

  • timeZone : le fuseau horaire. Exemples : GMT, UTC et CST. Il est recommandé de spécifier un fuseau horaire. Si vous ne configurez pas le paramètre timeZone, la fonction renvoie un horodatage au format GMT+8.

Transfert des données vers les destinations

Dans les fonctions suivantes, le paramètre destinationId spécifie l'identifiant de la destination de données et le paramètre payload spécifie le contenu du message.

Fonction

Description

Exemple

writeAmqp(destinationId, payload, tag)

Transmet les données à un groupe de consommateurs AMQP (Advanced Message Queuing Protocol).

tag : ce paramètre est facultatif. Si vous spécifiez un tag, celui-ci est ajouté à tous les messages transmis au groupe de consommateurs AMQP.

La longueur du tag doit être comprise entre 1 et 128 caractères. Vous pouvez spécifier une constante ou une variable dans le tag.

  • La constante peut contenir des lettres et des chiffres.

  • La variable spécifie la valeur d'une clé dans les données JSON analysées à partir des payloads à l'aide d'un script. Si la valeur n'est pas disponible, aucun tag n'est ajouté aux messages.

Transmettre des données à un groupe de consommateurs d'abonnement côté serveur AMQP pour consommation

writeDatahub(destinationId, data)

Transmet les données à DataHub.

data : les données que vous souhaitez écrire dans DataHub. Seuls les types de données map et binary sont pris en charge.

Transmettre des données à DataHub

writeFc(destinationId, data)

Transmet les données à Function Compute.

data : les données que vous souhaitez transmettre à Function Compute.

Transmettre des données à Function Compute

writeKafka(destinationId, payload, key)

Transmet les données à ApsaraMQ for Kafka.

key : la clé que vous souhaitez spécifier dans les messages à transmettre à ApsaraMQ for Kafka. Ce paramètre est facultatif.

Vous pouvez router les messages en fonction des tags sur votre client consommateur.

writeMns(destinationId, payload)

Transmet les données à Simple Message Queue (formerly MNS) (SMQ).

Transmettre des données à Message Service (MNS)

writeMq(destinationId, payload, tag)

Transmet les données à ApsaraMQ for RocketMQ.

tag : ce paramètre est facultatif. Si vous spécifiez un tag, celui-ci est ajouté à tous les messages transmis à ApsaraMQ for RocketMQ. Vous pouvez filtrer les messages en fonction des tags sur votre client consommateur.

La longueur du tag doit être comprise entre 1 et 128 caractères. Vous pouvez spécifier une constante ou une variable dans le tag.

  • La constante peut contenir des lettres et des chiffres.

  • La variable spécifie la valeur d'une clé dans les données JSON analysées à partir des payloads à l'aide d'un script. Si la valeur n'est pas disponible, aucun tag n'est ajouté aux messages.

Transmettre des données à ApsaraMQ for RocketMQ

writeTableStore(destinationId, data, flowType)

Transmet les données aux instances Tablestore (OTS) du modèle Wide Column.

  • data : les données que vous souhaitez écrire dans OTS. Seul le type de données map est pris en charge. La clé spécifie le nom de la colonne de la table et la valeur spécifie la valeur de la colonne.

    Le paramètre data doit contenir la clé primaire d'OTS.

  • flowType : ce paramètre est facultatif. Il spécifie le type de données des champs qui ne sont pas des clés primaires.

    • Si la valeur du paramètre flowType est true, le système convertit les valeurs des champs non clés primaires en chaînes, puis transmet ces chaînes à OTS.

    • Si vous définissez le paramètre flowType sur false ou si vous ne configurez pas le paramètre flowType, le système transmet les valeurs des champs non clés primaires à OTS sans convertir les types de données.

Transmettre des données à un modèle de table large Tablestore

writeTableStoreTs(destinationId, timeInUs, metricName, tags, fields, dataSource)

Transmet les données aux instances OTS du modèle TimeSeries.

  • timeInUs : l'horodatage au moment de l'envoi des données. Unité : microsecondes. Type de données : entier.

  • metricName : le nom d'une grandeur physique ou d'une métrique pour les données d'une série temporelle. Type de données : chaîne.

  • tags : le tag de la série temporelle. Type de données : map. La clé et la valeur d'un tag sont des chaînes.

  • fields : les données de la série temporelle. Type de données : map. Plusieurs valeurs de données peuvent être spécifiées à un instant donné dans une série temporelle. Chaque valeur correspond à une colonne dans la table de série temporelle, y compris le nom de la colonne et la valeur de la colonne.

    Les noms de colonnes sont des chaînes et les valeurs de colonne peuvent être des types de données booléen, entier, flottant, chaîne et binaire.

  • dataSource : l'identifiant de la source de données utilisée pour générer la série temporelle. Type de données : chaîne. Seul ce paramètre peut être laissé vide.

Vous pouvez utiliser cette fonction pour écrire des données dans une ligne d'OTS. Pour écrire des données dans plusieurs lignes à la fois, utilisez la fonction suivante :

writeTableStoreTs(destinationId, [
    {
        "timeInUs": timestamp() * 1000,
        "metricName": "name1",
        "tags":{},
        "fields":{},
        "dataSource": ""
    },
    {
        "timeInUs": timestamp() * 1000,
        "metricName": "name2",
        "tags":{},
        "fields":{},
        "dataSource": ""
    }
]);

Pour plus d'informations sur les paramètres, consultez Modèle TimeSeries.

Transmettre des données aux instances OTS du modèle Wide Column

writeRds(destinationId, data)

Écrit des données dans une table ApsaraDB RDS.

data : les données que vous souhaitez écrire dans ApsaraDB RDS. Seul le type de données map est pris en charge. La clé spécifie le nom de la colonne de la table et la valeur spécifie la valeur de la colonne.

Transférer des données vers ApsaraDB RDS

updateRds(destinationId, data, condition, limit)

Met à jour les données écrites dans une table ApsaraDB RDS.

  • data : les données que vous souhaitez mettre à jour pour une table ApsaraDB RDS. Seul le type de données map est pris en charge. La clé spécifie le nom de la colonne de la table et la valeur spécifie la valeur de la colonne.

  • condition : les conditions à configurer pour la mise à jour des données. Ce paramètre est obligatoire. Seul le type string est pris en charge. Les conditions sont spécifiées pour la clause WHERE d'une instruction SQL. Exemple : a = 3 and b = 3.

  • limit : nombre de lignes pouvant être renvoyées par la fonction. Valeur par défaut : 1. Valeur maximale : 50.

Exemples :

  • Si plusieurs lignes de données satisfont aux conditions spécifiées par le paramètre condition, la fonction met automatiquement à jour les données à partir de la première ligne du résultat SQL. Si vous définissez le paramètre limit sur 1, la fonction met à jour les données de la première ligne. Si vous définissez le paramètre limit sur 10, la fonction met à jour les données de la première à la dixième ligne.

  • Si une seule ligne de données satisfait aux conditions spécifiées par le paramètre condition, la fonction met uniquement cette ligne à jour.

writeTsdb(destinationId, timestamp, metricName, value, tag)

Transfère des données vers Time Series Database.

  • timestamp : l'horodatage.

  • metricName : le nom de la métrique dans Time Series Database.

  • value : la valeur du point de données dans Time Series Database. Les types de données string et map sont pris en charge.

  • tag : le tag constitué d'une paire clé-valeur. Le type de données est map.

Transférer des données vers Time Series Database

writeIotTopic(destinationId, topic, payload)

Transfère des données vers un autre topic.

Topic : le topic de destination vers lequel vous souhaitez transférer les données. Les topics suivants sont pris en charge :

  • Topic personnalisé : vous devez définir l'autorisation sur le topic personnalisé pour permettre l'abonnement. Cela permet aux appareils de s'abonner au topic et d'obtenir les messages transférés depuis celui-ci.

  • Topic auquel les données TSL descendantes sont envoyées : /sys/${productKey}/${deviceName}/thing/service/property/set. IoT Platform transfère les messages vers ce topic. Les messages incluent des commandes pour configurer les propriétés des appareils. Les appareils reçoivent les messages transférés depuis le topic et configurent les propriétés des appareils en fonction de la charge utile des messages. Si vous souhaitez configurer les propriétés des appareils du topic de destination en fonction des données transférées, vous pouvez définir le paramètre Topic sur cette valeur.

La valeur de la variable ${productKey} doit être identique à la ProductKey du produit que vous avez spécifié dans le paramètre destinationId. Vous devez spécifier un topic pour la fonction. Le nom du topic ne peut pas contenir de caractères génériques.

Pour plus d'informations, consultez Étape 1 : Créer une destination de données.

Important

If a device does not subscribe to the destination topic, it cannot receive forwarded messages.

For example, if Device A connects to IoT Platform through MQTT.fx, it does not automatically subscribe to device topics. If Device B forwards data to the thing/service/property/set topic of Device A without Device A subscribing to it, Device A cannot receive the message.

For automatic topic subscriptions, see Auto-subscribed topics.

Transférer des données vers d'autres topics

writeLindorm(destinationId, timestamp, tags, fields)

Transfère des données vers Lindorm.

  • timestamp : l'horodatage de génération d'un enregistrement de données.

  • tags : les tags. Ce paramètre spécifie les attributs d'objet pour une métrique. Un tag se compose d'une clé de tag et d'une valeur de tag. Type de données : map.

  • fields : les enregistrements de données. Un enregistrement de données peut inclure plusieurs valeurs de champ, qui indiquent les objets d'une métrique. Type de données : object.

Transférer des données vers Lindorm

Fonctions prises en charge par chaque type de données de base

  • Map

    Function

    Description

    [Object]

    Récupère la valeur associée à une clé spécifiée.

    size()

    Renvoie le nombre de paires clé-valeur contenues dans une map.

    containsKey(String)

    Vérifie si une map contient une clé spécifique.

    keySet()

    Récupère les clés d'une map sous forme de tableau.

    remove(Object)

    Supprime la paire clé-valeur correspondant à une clé donnée.

    put(Object, Object)

    Ajoute des paires clé-valeur à une map.

    putAll(map)

    Fusionne une autre map avec une map existante.

  • Array

    Function

    Description

    [int]

    Récupère la valeur située à un index donné. L'index du premier élément d'un tableau est 0.

    contains(Object)

    Vérifie la présence d'un élément spécifique dans un tableau.

    remove(Object)

    Supprime un élément désigné d'un tableau.

    removeAt(int)

    Supprime l'élément situé à un index précis dans un tableau.

    add(Object)

    Ajoute un élément à la fin d'un tableau.

    add(index, Object)

    Insère un élément à un index spécifié.

    addAll(array)

    Ajoute les éléments d'un autre tableau à un tableau existant.

    size()

    Renvoie le nombre d'éléments présents dans un tableau.

  • String

    Function

    Description

    substring(start, end)

    Extrait une sous-chaîne depuis la position start jusqu'à la position end-1. Si vous ne configurez pas le paramètre, l'extraction se poursuit jusqu'à la fin de la chaîne.

    length()

    Renvoie la longueur d'une chaîne de caractères.

    split(String)

    Découpe une chaîne en utilisant un séparateur défini.

    startsWith(String)

    Vérifie si une chaîne commence par une sous-chaîne donnée.

    endsWith(String)

    Vérifie si une chaîne se termine par une sous-chaîne spécifique.

    indexOf(String, index)

    Recherche la première occurrence d'une sous-chaîne à partir d'un index précisé.

    La valeur par défaut du paramètre index est 0.

Autres fonctions

Fonction

Description

endWith(input, suffix)

Vérifie si la chaîne input se termine par le suffix spécifié.

Renvoie une valeur booléenne.

productKey()

Renvoie le ProductKey du produit actuel.

getDeviceTag(key)

Renvoie la valeur du tag de l'appareil correspondant à la clé de tag spécifiée. Si aucun tag contenant la key indiquée n'est associé à l'appareil, aucune valeur n'est renvoyée.

getOrNull(data, "items", ......)

Renvoie la valeur d'un champ spécifié dans le paramètre data au format JSON.

Vous pouvez configurer un ou plusieurs champs dans la fonction. Les champs multiples doivent être configurés selon leur niveau hiérarchique. La fonction renvoie la valeur du dernier champ. Si ce dernier champ n'existe pas ou s'il est vide, la fonction renvoie null.

Exemple de data :

"items": {
    "Humidity": {
        "value": 25,
        "time": 1626948134319
    }
}

Exemples :

  • getOrNull(data, "items") : renvoie la valeur du champ items "Humidity": {"value": 25,"time": 1626948134319}.

  • getOrNull(data, "items", "Humidity", "value") : renvoie la valeur du champ value 25.

  • getOrNull(data, "items", "Temperature") : renvoie la valeur null si le champ Temperature n'existe pas.

payload(textEncoding)

Encode la charge utile du message envoyée par un appareil. Le paramètre textEncoding spécifie le schéma d'encodage.

  • Si vous ne configurez pas le paramètre, la charge utile du message est convertie en une chaîne encodée en UTF-8. payload() équivaut à payload('utf-8').

  • Si vous définissez le paramètre sur 'json', la charge utile du message est convertie en une map. Si la charge utile n'est pas au format JSON, une erreur se produit.

  • Si vous définissez le paramètre sur 'binary', la charge utile du message est convertie en données binaires en mode transparent.

parseNumber(numberString, radix)

Convertit la chaîne spécifiée par le paramètre numberString en nombre, selon le système numérique indiqué par le paramètre radix.

Le paramètre radix est facultatif. Valeurs valides :

  • 10 (par défaut) : convertit la chaîne en nombre décimal.

  • 2 : convertit la chaîne en nombre binaire.

  • 16 : convertit la chaîne en nombre hexadécimal.

Exemples :

// A device submits data. 
var content = '0xFF';
// The function obtains the string FF to be converted.
var x = content.substring(2);
// The function converts the string FF into a hexadecimal number. 
var value = parseNumber(x, 16);

Références

Pour transférer des données vers une destination, vous pouvez rédiger un script en utilisant la syntaxe prise en charge afin d'appeler des fonctions spécifiques. Pour plus d'informations, consultez la rubrique Syntaxe des scripts.