Cuando el volumen de mensajes de todos los dispositivos o de dispositivos específicos bajo un mismo producto es menor a 1,000 QPS, puede utilizar el reenvío de datos para enviar información desde IoT Platform hacia Simple Message Queue (anteriormente MNS) (SMQ). Su servidor se suscribe a los mensajes del tema de MNS, lo que permite una transmisión de alto rendimiento y en circuito cerrado entre los dispositivos y los servidores. Este tema toma como ejemplo un tema de envío de datos del modelo Thing Specification Language (TSL) para describir el proceso de reenvío de datos de mensajes.
Funcionamiento
La función de reenvío de datos transfiere mensajes en tiempo real desde un tema específico, correspondiente a todos los dispositivos o a dispositivos concretos del mismo producto, hacia un tema de MNS al que está suscrita una cola de MNS.
En la figura anterior:
Origen de datos: Para obtener información sobre los tipos de temas compatibles, consulte Data formats (for non-gateway products and devices), Custom topics (for MQTT cloud gateways), Message forwarding topics (for GB/T 32960 cloud gateways), Message forwarding topics (for JT/T 808 cloud gateways).
Destino de datos: El tema de MNS que usted crea para recibir los datos del dispositivo. Todos los mensajes de este tema se envían a las colas de MNS que están suscritas a él.
-
Script del analizador sintáctico: Un script que usted configura para usar la función de reenvío de datos
writeMns(destinationId, payload)con el fin de transferir los datos del tema hacia el tema de MNS.Para más información sobre la función, consulte Function list.
Límites
El reenvío de datos a MNS solo es compatible con instancias de IoT Platform en regiones específicas. Para más información sobre las regiones admitidas, consulte Feature availability by region.
Tanto la versión nueva como la anterior de la función de reenvío de datos admiten el envío hacia MNS. Para ver un ejemplo de uso de la versión anterior, consulte Forward data to Message Service (previous version).
Para más información sobre los límites aplicables al reenvío de mensajes de dispositivos desde una instancia de IoT Platform, consulte Limits.
Requisitos previos
Ha agregado un origen de datos para el tema del dispositivo. Por ejemplo, ha creado un origen de datos llamado DataSource y ha añadido el tema de envío de datos del modelo TSL para un dispositivo específico. Para más información, consulte Add a data source.
-
Ha creado un tema de MNS y una suscripción de tipo HTTP o de envío a cola para dicho tema. Para más información sobre cómo utilizar MNS, consulte Simple Message Queue (MNS) documentation.
ImportanteEn el caso de una instancia Enterprise, el tema de MNS debe encontrarse en la misma región que la instancia.
-
Su servidor empresarial utiliza un SDK de servidor de MNS para escuchar la cola de MNS suscrita al tema de MNS, lo que permite que su aplicación en la nube reciba mensajes de dispositivos provenientes de IoT Platform.
Para más información sobre cómo invocar el SDK de servidor de Simple Message Queue (anteriormente MNS) (SMQ), consulte la Guía de usuario de temas correspondiente al SDK en SDK download and usage.
Contexto
Para obtener información sobre el proceso de reenvío de datos entre un dispositivo y un servidor mediante MNS, consulte Forward data to Message Service (MNS).
IoT Platform ofrece servicios de suscripción del lado del servidor y de reenvío de datos para transferir mensajes de dispositivos a un cliente de MNS. A diferencia de la suscripción del lado del servidor, el reenvío de datos le permite especificar temas de dispositivos y procesar la información antes de transferirla. Para comparar soluciones y encontrar la más adecuada para sus necesidades, consulte Comparison of data forwarding solutions. Para obtener información sobre cómo configurar la suscripción del lado del servidor, consulte Use server-side subscription with MNS.
Creación de un destino de datos
Inicie sesión en la consola de IoT Platform.
En la página Overview, localice la instancia que desea gestionar y haga clic en el ID o en el nombre de la instancia.
En el panel de navegación izquierdo, seleccione .
-
En la página Data Forwarding, haga clic en Go to New Version en la esquina superior derecha.
NotaSi ya realizó esta operación anteriormente, el sistema lo redirigirá automáticamente a la nueva versión de la página Data Forwarding.
Haga clic en la pestaña Data Destination. En esta pestaña, haga clic en Create Data Destination.
-
En el cuadro de diálogo Create Data Destination, introduzca un nombre para el destino de datos, por ejemplo, DataPurpose. Configure los parámetros según se describe en la siguiente tabla y luego haga clic en OK.
Parámetro
Descripción
Seleccione una operación.
Seleccione Forward data to Message Service (MNS).
Región
Seleccione la región donde Message Service está activado.
Tema
Seleccione el tema de SMQ que desea utilizar para recibir datos.
SMQ reenvía los mensajes recibidos a las suscripciones HTTP y de cola bajo este tema. Actualmente, solo puede suscribirse a los mensajes que IoT Platform envía a un tema de SMQ mediante el método HTTP o de cola.
Puede hacer clic en Create Topic para ir a la consola de Simple Message Queue (formerly MNS) y crear un tema de SMQ junto con una suscripción. Para más información, consulte Simple Message Queue (SMQ) documentation.
Rol
Otorgue a IoT Platform los permisos necesarios para escribir datos en Simple Message Queue (formerly MNS).
Si no existe ningún rol de RAM, haga clic en Create RAM Role para crear un rol de RAM y una directiva de autorización en la consola de RAM. Create a RAM role.
Configuración e inicio del analizador sintáctico
Cree un analizador sintáctico llamado DataParser. Para más información, consulte Step 1: Create a parser.
-
En la página Parser Details, asocie el analizador sintáctico con el origen de datos creado.
En el paso Data Source del asistente, haga clic en Associate Data Source.
En el cuadro de diálogo que aparece, seleccione DataSource en la lista desplegable Data Source y luego haga clic en OK.
-
En la página Parser Details, asocie el analizador sintáctico con el destino de datos creado.
Haga clic en Data Destination dentro del asistente. En la sección Data Destination, haga clic en Associate Data Destination.
En el cuadro de diálogo que aparece, seleccione DataPurpose en la lista desplegable Data Destination y luego haga clic en OK.
-
En la sección Data Destination, consulte y guarde el data destination ID. En este ejemplo, el ID es 1000.
Al escribir el script del analizador sintáctico, debe utilizar el data destination ID.
En la página Parser Details, haga clic en Parser.
-
En el editor de scripts, introduzca un script de análisis sintáctico.
La sintaxis del script de análisis sintáctico es similar a JavaScript. Para más información sobre cómo editar scripts, consulte Script syntax.
Para más información sobre los parámetros de la función, consulte Function list.
// Use the payload() function to get the message content reported by the device and convert it to the JSON format. var data = payload("json"); // Forward the TSL model data directly. writeMns(1000, data); -
Haga clic en Test. Siga las instrucciones en pantalla para seleccionar un producto y un dispositivo, introduzca el tema y los datos de carga útil, y compruebe que el script se ejecuta correctamente.
A continuación se muestran parámetros de ejemplo. Tema de ejemplo:
/{productKey}/{deviceName}/thing/event/property/post. La carga útil JSON de ejemplo contiene dos propiedades enitems:Temperature: el valor es 38, la hora es 1626948134319Humidity: el valor es 25, la hora es 1626948134319
La siguiente salida confirma que el script se ejecutó correctamente.
La salida es
action: transmit to mns[destinationId=1000]. Haga clic en Publish.
Vaya a la pestaña Parser de la página Data Forwarding. Localice el analizador sintáctico DataParser y haga clic en Start en la columna Actions para iniciar el analizador.
Siguientes pasos
Puede consultar los registros operativos de device-to-cloud messages y data forwarding en la pestaña IoT Platform Logs. Para acceder a esta pestaña, vaya a la consola de IoT Platform, busque su instancia y seleccione . Para más información, consulte IoT Platform logs.
Puede iniciar sesión en la consola de Simple Message Queue (anteriormente MNS) para ver los mensajes que se enviaron desde el tema de MNS hacia la cola. Para más información, consulte Receive messages.
Referencias
Para obtener instrucciones sobre cómo conectar un dispositivo a IoT Platform con el fin de reportar datos, consulte Device connection guide.
Verifique los recursos de TPS disponibles para el reenvío de mensajes en la página de detalles de la instancia para asegurarse de que los mensajes de los dispositivos puedan enviarse a Simple Message Queue (anteriormente MNS) para su consumo. Para más información, consulte View instance information and operational data. Si los recursos son insuficientes, actualice la instancia. Para más información, consulte Upgrade an instance.
Puede consultar las métricas del tema de Simple Message Queue (anteriormente MNS) para verificar la cantidad de mensajes recibidos. Para más información, consulte View topic metrics.
Utilice la función Log Management para enviar registros de operaciones de temas de mensajes a Simple Log Service. Si ocurre una excepción durante el consumo de mensajes, consulte la traza del mensaje mediante el MessageId para diagnosticar el problema. Para más información, consulte Push logs to Simple Log Service y View logs in Simple Log Service.