Todos los productos
Search
Centro de documentos

IoT Platform:Funciones

Última actualización: Sep 03, 2026

IoT Platform ofrece diversas funciones para usar en un script de análisis y procesar datos. Estas funciones permiten convertir tipos de datos, reenviar información a destinos específicos y procesar cargas útiles de tipos de datos concretos. Este tema describe las funciones que proporciona IoT Platform.

Las funciones compatibles con Data Forwarding v1.0 también pueden usarse en los scripts de análisis de Data Forwarding v2.0. Para obtener más información, consulte Functions.

Conversión de tipos de datos

Función

Descripción

toBoolean(Object)

Convierte el parámetro Object en un valor booleano. El parámetro admite los siguientes tipos de datos:

  • Booleano: la función devuelve el mismo valor que el parámetro.

  • Número: si el parámetro se establece en 0, la función devuelve false. De lo contrario, devuelve true.

  • Cadena: si el parámetro se establece en "true", la función devuelve true. En caso contrario, devuelve false.

  • Si el parámetro se establece en NULL, la función devuelve false.

toNumber(Object)

Convierte el valor del parámetro Object en un número. El parámetro admite los siguientes tipos de datos:

  • Booleano: si el parámetro se establece en true, la función devuelve 1. Si se establece en false, devuelve 0.

  • Número: la función devuelve el mismo valor que el parámetro.

  • Cadena: la función analiza sintácticamente la cadena y la convierte en un número.

  • Si el parámetro se establece en NULL, la función devuelve 0.

toString(Object)

Convierte el valor del parámetro Object en una cadena.

Si el parámetro tiene un valor distinto de NULL, la función devuelve dicho valor como cadena. Si el parámetro es NULL, la función devuelve una cadena vacía.

Si el parámetro es de tipo binario, la función devuelve un valor decodificado en UTF-8.

toMap(Object)

Convierte el valor del parámetro Object en un mapa. El parámetro admite los siguientes tipos de datos:

  • Mapa: la función devuelve el mismo valor que el parámetro.

  • Cadena: la función analiza sintácticamente la cadena y la convierte en un mapa con formato JSON.

  • Si el parámetro se establece en NULL, la función devuelve un mapa vacío.

toArray(Object)

Convierte el valor del parámetro Object en una matriz. El parámetro admite los siguientes tipos de datos:

  • Matriz: la función devuelve el mismo valor que el parámetro.

  • Cadena: la función analiza sintácticamente la cadena y la convierte en una matriz con formato JSON.

  • Si el parámetro se establece en NULL, la función devuelve una matriz vacía.

toBinary(Object)

Convierte el valor del parámetro Object en un valor binario. El parámetro admite los siguientes tipos de datos:

  • Binario: la función devuelve el mismo valor que el parámetro.

  • Cadena: la función devuelve un valor codificado en UTF-8.

  • Si el parámetro se establece en NULL, la función devuelve un valor binario vacío.

Conversión de formatos de hora

Función

Descripción

format_date(timestamp, patten, timeZone)

Convierte una marca de tiempo en milisegundos en un valor de hora con un formato específico. Devuelve una cadena.

  • timestamp: la marca de tiempo en milisegundos.

  • patten: el formato de hora obligatorio. Ejemplo: yyyy-MM-dd HH:mm:ss.

  • timeZone: la zona horaria. Ejemplos: GMT, UTC y CST. Se recomienda especificar una zona horaria. Si no configura el parámetro timeZone, la función devuelve un valor de hora en GMT+8.

to_timestamp(dateString, patten, timeZone)

Convierte un valor de hora con un formato específico en una marca de tiempo en milisegundos. Devuelve un valor numérico.

  • dateString: la cadena de hora.

  • patten: el formato de hora. Ejemplo: yyyy-MM-dd HH:mm:ss.

  • timeZone: la zona horaria. Ejemplos: GMT, UTC y CST. Se recomienda especificar una zona horaria. Si no configura el parámetro timeZone, la función devuelve una marca de tiempo en GMT+8.

Reenvío de datos a destinos

En las siguientes funciones, el parámetro destinationId especifica el ID de un destino de datos y el parámetro payload especifica el contenido del mensaje.

Función

Descripción

Ejemplo

writeAmqp(destinationId, payload, tag)

Reenvía datos a un grupo de consumidores de Advanced Message Queuing Protocol (AMQP).

tag: este parámetro es opcional. Si especifica una etiqueta, esta se añade a todos los mensajes que se reenvían al grupo de consumidores AMQP.

La etiqueta debe tener entre 1 y 128 caracteres. Puede especificar una constante o una variable en la etiqueta.

  • La constante puede contener letras y dígitos.

  • La variable especifica el valor de una clave en los datos JSON que se analizan sintácticamente a partir de las cargas útiles mediante un script. Si el valor no está available, no se añade ninguna etiqueta a los mensajes.

Forward data to an AMQP server-side subscription consumer group for consumption

writeDatahub(destinationId, data)

Reenvía datos a DataHub.

data: los datos que desea escribir en DataHub. Solo se admiten los tipos de datos map y binary.

Forward data to DataHub

writeFc(destinationId, data)

Reenvía datos a Function Compute.

data: los datos que desea reenviar a Function Compute.

Forward data to Function Compute

writeKafka(destinationId, payload, key)

Reenvía datos a ApsaraMQ for Kafka.

key: la clave que desea especificar en los mensajes que se reenviarán a ApsaraMQ for Kafka. Este parámetro es opcional.

Puede enrutar mensajes según las etiquetas de su cliente consumidor.

writeMns(destinationId, payload)

Reenvía datos a Simple Message Queue (formerly MNS) (SMQ).

Forward data to Message Service (MNS)

writeMq(destinationId, payload, tag)

Reenvía datos a ApsaraMQ for RocketMQ.

tag: este parámetro es opcional. Si especifica una etiqueta, esta se añade a todos los mensajes que se reenvían a ApsaraMQ for RocketMQ. Puede filtrar mensajes según las etiquetas de su cliente consumidor.

La etiqueta debe tener entre 1 y 128 caracteres. Puede especificar una constante o una variable en la etiqueta.

  • La constante puede contener letras y dígitos.

  • La variable especifica el valor de una clave en los datos JSON que se analizan sintácticamente a partir de las cargas útiles mediante un script. Si el valor no está available, no se añade ninguna etiqueta a los mensajes.

Forward data to ApsaraMQ for RocketMQ

writeTableStore(destinationId, data, flowType)

Reenvía datos a instancias de Tablestore (OTS) del modelo Wide Column.

  • data: los datos que desea escribir en OTS. Solo se admite el tipo de datos map. La clave especifica el nombre de la columna de la tabla y el valor especifica el valor de la columna.

    El parámetro data debe contener la clave principal de OTS.

  • flowType: este parámetro es opcional. Especifica el tipo de datos de los campos que no son claves principales.

    • Si el valor del parámetro flowType es true, el sistema convierte los valores de los campos que no son clave principal en cadenas y luego reenvía dichas cadenas a OTS.

    • Si establece el parámetro flowType en false o no lo configura, el sistema reenvía los valores de los campos que no son clave principal a OTS sin convertir los tipos de datos.

Forward data to a Tablestore wide table model

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

Reenvía datos a instancias de OTS del modelo TimeSeries.

  • timeInUs: la marca de tiempo cuando se enviaron los datos. Unidad: microsegundos. Tipo de datos: entero.

  • metricName: el nombre de una cantidad física o métrica para los datos de una serie temporal. Tipo de datos: cadena.

  • tags: la etiqueta de la serie temporal. Tipo de datos: map. Tanto la clave como el valor de una etiqueta son cadenas.

  • fields: los datos de la serie temporal. Tipo de datos: map. Se pueden especificar varios valores de datos en un punto específico de una serie temporal. Cada valor corresponde a una columna en la tabla de series temporales, lo que incluye el nombre y el valor de la columna.

    Los nombres de columna son cadenas, y los valores de columna pueden ser de los tipos de datos booleano, entero, punto flotante, cadena y binario.

  • dataSource: el identificador del origen de datos usado para generar la serie temporal. Tipo de datos: cadena. Este es el único parámetro que puede dejarse vacío.

Esta función permite escribir datos en una sola línea de OTS. Para escribir datos en varias líneas simultáneamente, use la siguiente función:

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

Para obtener más información sobre los parámetros, consulte TimeSeries model.

Forward data to OTS instances of the Wide Column model

writeRds(destinationId, data)

Escribe datos en una tabla de ApsaraDB RDS.

data: los datos que desea escribir en ApsaraDB RDS. Solo se admite el tipo de datos map. La clave especifica el nombre de la columna de la tabla y el valor especifica el valor de la columna.

Forward data to ApsaraDB RDS

updateRds(destinationId, data, condition, limit)

Actualice los datos escritos en una tabla de ApsaraDB RDS.

  • data: los datos que desea actualizar en una tabla de ApsaraDB RDS. Solo se admite el tipo de datos map. La clave especifica el nombre de la columna de la tabla y el valor especifica el valor de la columna.

  • condition: las condiciones que desea configurar para actualizar los datos. Este parámetro es obligatorio. Solo se admite el tipo string. Las condiciones se especifican para la cláusula WHERE de una instrucción SQL. Ejemplo: a = 3 and b = 3.

  • limit: el número de líneas que puede devolver la función. Valor predeterminado: 1. Valor máximo: 50.

Ejemplos:

  • Si varias líneas de datos cumplen las condiciones especificadas por el parámetro condition, la función actualiza automáticamente los datos a partir de la primera línea del resultado SQL. Si establece el parámetro limit en 1, la función actualiza los datos de la primera línea. Si establece el parámetro limit en 10, la función actualiza los datos desde la primera hasta la décima línea.

  • Si solo una línea de datos cumple las condiciones especificadas por el parámetro condition, la función actualiza únicamente esa línea.

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

Reenvía datos a Time Series Database.

  • timestamp: la marca de tiempo.

  • metricName: el nombre de la métrica en Time Series Database.

  • value: el valor del punto de datos en Time Series Database. Se admiten los tipos de datos string y map.

  • tag: la etiqueta formada por un par clave-valor. El tipo de datos es map.

Forward data to Time Series Database

writeIotTopic(destinationId, topic, payload)

Reenvía datos a otro tema.

Topic: el tema de destino al que desea reenviar datos. Se admiten los siguientes temas:

  • Tema personalizado: debe establecer el permiso del tema personalizado en suscripción. Esto permite que los dispositivos se suscriban al tema y obtengan los mensajes reenviados desde él.

  • Tema al que se envían datos TSL descendentes: /sys/${productKey}/${deviceName}/thing/service/property/set. IoT Platform reenvía mensajes a este tema, los cuales incluyen comandos para configurar propiedades del dispositivo. Los dispositivos reciben los mensajes reenviados desde el tema y configuran sus propiedades según la carga útil de dichos mensajes. Si desea configurar propiedades para los dispositivos del tema de destino basándose en los datos reenviados, puede establecer el parámetro Topic con este valor.

El valor de la variable ${productKey} debe coincidir con el ProductKey del producto que especificó en el parámetro destinationId. Debe especificar un tema para la función. El nombre del tema no puede contener caracteres comodín.

Para obtener más información, consulte Step 1: Create a data destination.

Importante

Si un dispositivo no se suscribe al tema de destino, no podrá recibir los mensajes reenviados.

Por ejemplo, si el Dispositivo A se conecta a IoT Platform mediante MQTT.fx, no se suscribe automáticamente a los temas del dispositivo. Si el Dispositivo B reenvía datos al tema thing/service/property/set del Dispositivo A sin que este último se haya suscrito, el Dispositivo A no podrá recibir el mensaje.

Para suscripciones automáticas a temas, consulte Auto-subscribed topics.

Forward data to other topics

writeLindorm(destinationId, timestamp, tags, fields)

Reenvía datos a Lindorm.

  • timestamp: la marca de tiempo en la que se generó un registro de datos.

  • tags: las etiquetas. Este parámetro especifica atributos de objeto para una métrica. Una etiqueta consta de una clave y un valor de etiqueta. Tipo de datos: map.

  • fields: los registros de datos. Un registro de datos puede incluir varios valores de campo, los cuales indican los objetos de una métrica. Tipo de datos: object.

Forward data to Lindorm

Funciones compatibles con cada tipo de dato básico

  • Map

    Función

    Descripción

    [Object]

    Obtiene el valor de una clave especificada.

    size()

    Obtiene el número de pares clave-valor en un mapa.

    containsKey(String)

    Comprueba si un mapa contiene una clave específica.

    keySet()

    Obtiene las claves de un mapa. Devuelve una matriz.

    remove(Object)

    Elimina un par clave-valor de un mapa según una clave especificada.

    put(Object, Object)

    Añade pares clave-valor a un mapa.

    putAll(map)

    Añade otro mapa a un mapa existente.

  • Array

    Función

    Descripción

    [int]

    Obtiene el valor en un índice especificado. El índice del primer elemento de una matriz es 0.

    contains(Object)

    Comprueba si una matriz contiene un elemento específico.

    remove(Object)

    Elimina un elemento específico de una matriz.

    removeAt(int)

    Elimina un elemento en un índice especificado de una matriz.

    add(Object)

    Añade un elemento al final de una matriz.

    add(index, Object)

    Añade un elemento en un índice especificado.

    addAll(array)

    Añade otra matriz a una matriz existente.

    size()

    Obtiene el número de elementos en una matriz.

  • String

    Función

    Descripción

    substring(start, end)

    Extrae una cadena desde la posición start hasta la posición end-1. Si no configura el parámetro, el proceso de extracción continúa hasta el final de la cadena.

    length()

    Consulta la longitud de una cadena.

    split(String)

    Divide una cadena mediante un separador especificado.

    startsWith(String)

    Comprueba si una cadena comienza con una subcadena específica.

    endsWith(String)

    Comprueba si una cadena termina con una subcadena específica.

    indexOf(String, index)

    Consulta la posición en la que aparece por primera vez una subcadena a partir de un índice especificado de una cadena.

    El valor predeterminado del parámetro index es 0.

Otras funciones

Función

Descripción

endWith(input, suffix)

Comprueba si la cadena input termina con un suffix especificado.

Devuelve un valor booleano.

productKey()

Devuelve el ProductKey del producto actual.

getDeviceTag(key)

Devuelve el valor de etiqueta de dispositivo correspondiente a una clave de etiqueta. Si la etiqueta que contiene la key especificada no está asignada al dispositivo, no se devuelve ningún valor de etiqueta.

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

Devuelve el valor de un campo especificado dentro del parámetro data con formato JSON.

Puede configurar uno o más campos en la función. Si hay varios campos, deben configurarse según sus niveles jerárquicos. La función devuelve el valor del último campo. Si el último campo no existe o está vacío, la función devuelve null.

Ejemplo de data:

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

Ejemplos:

  • getOrNull(data, "items"): devuelve el valor del campo items, que es "Humidity": {"value": 25,"time": 1626948134319}.

  • getOrNull(data, "items", "Humidity", "value"): devuelve el valor del campo value, que es 25.

  • getOrNull(data, "items", "Temperature"): devuelve el valor null si el campo Temperature no existe.

payload(textEncoding)

Codifica la carga útil del mensaje enviado por un dispositivo. El parámetro textEncoding especifica un esquema de codificación.

  • Si no configura el parámetro, la carga útil del mensaje se convierte en una cadena codificada en UTF-8. payload() equivale a payload('utf-8').

  • Si establece el parámetro en 'json', la carga útil del mensaje se convierte en un mapa. Si la carga útil no tiene formato JSON, se produce un error.

  • Si establece el parámetro en 'binary', la carga útil del mensaje se convierte en datos binarios de paso directo.

parseNumber(numberString, radix)

Convierte una cadena especificada por el parámetro numberString en un número según el sistema numérico especificado por el parámetro radix.

El parámetro radix es opcional. Valores válidos:

  • 10 (predeterminado): convierte una cadena en un número decimal.

  • 2: convierte una cadena en un número binario.

  • 16: convierte una cadena en un número hexadecimal.

Ejemplos:

// Un dispositivo envía datos. 
var content = '0xFF';
// La función obtiene la cadena FF que se va a convertir.
var x = content.substring(2);
// La función convierte la cadena FF en un número hexadecimal. 
var value = parseNumber(x, 16);

Referencias

Si desea reenviar datos a un destino, puede escribir un script con la sintaxis compatible para llamar a funciones específicas. Para obtener más información, consulte Script syntax.