Lorsque le volume de messages pour l'ensemble ou certains appareils d'un même produit est inférieur à 1 000 QPS, utilisez le transfert de données pour envoyer les données d'IoT Platform vers Simple Message Queue (anciennement MNS) (SMQ). Votre serveur s'abonne aux messages du topic MNS, ce qui permet une transmission haute performance et en boucle fermée entre les appareils et les serveurs. Cette rubrique utilise un topic de soumission de données de modèle TSL (Thing Specification Language) comme exemple pour décrire le processus de transfert des données de message.
Fonctionnement
La fonctionnalité de transfert de données transmet en temps réel les messages d'un topic spécifié pour tous les appareils ou des appareils spécifiques d'un même produit vers un topic MNS auquel une file d'attente MNS est abonnée.
Dans la figure précédente :
Source de données : Pour obtenir des informations sur les types de topics pris en charge, consultez les rubriques Formats de données (pour les produits et appareils non passerelles), Topics personnalisés (pour les passerelles cloud MQTT), Topics de transfert de messages (pour les passerelles cloud GB/T 32960), Topics de transfert de messages (pour les passerelles cloud JT/T 808).
Destination des données : Le topic MNS que vous créez pour recevoir les données des appareils. Tous les messages de ce topic sont transmis aux files d'attente MNS qui y sont abonnées.
-
Script d'analyse : Un script que vous configurez pour utiliser la fonction de transfert de données
writeMns(destinationId, payload)afin de transférer les données du topic vers le topic MNS.Pour plus d'informations sur cette fonction, consultez la rubrique Liste des fonctions.
Limites
Le transfert de données vers MNS est uniquement pris en charge par les instances IoT Platform dans certaines régions. Pour connaître la liste des régions prises en charge, consultez la rubrique Disponibilité des fonctionnalités par région.
Les nouvelles et anciennes versions de la fonctionnalité de transfert de données prennent toutes deux en charge le transfert de données vers MNS. Pour un exemple d'utilisation de l'ancienne version, consultez la rubrique Transférer des données vers Message Service (ancienne version).
Pour plus d'informations sur les limites relatives au transfert des messages des appareils depuis une instance IoT Platform, consultez la rubrique Limites.
Prérequis
Vous avez ajouté une source de données pour le topic de l'appareil. Par exemple, vous avez créé une source de données nommée DataSource et ajouté le topic de soumission de données du modèle TSL pour un appareil spécifique. Pour plus d'informations, consultez la rubrique Ajouter une source de données.
-
Vous avez créé un topic MNS et un abonnement de type push HTTP ou file d'attente pour ce topic. Pour plus d'informations sur l'utilisation de MNS, consultez la documentation Simple Message Queue (MNS).
ImportantPour une instance Enterprise, le topic MNS doit se trouver dans la même région que l'instance.
-
Votre serveur métier utilise un SDK côté serveur MNS pour écouter la file d'attente MNS abonnée au topic MNS, permettant ainsi à votre application cloud de recevoir les messages des appareils provenant d'IoT Platform.
Pour plus d'informations sur l'appel du SDK côté serveur Simple Message Queue (anciennement MNS) (SMQ), consultez le Guide d'utilisation des topics correspondant au SDK dans la rubrique Téléchargement et utilisation du SDK.
Contexte
Pour obtenir des informations sur le processus de transfert de données entre un appareil et un serveur à l'aide de MNS, consultez la rubrique Transférer des données vers Message Service (MNS).
IoT Platform propose des services d'abonnement côté serveur et de transfert de données pour transmettre les messages des appareils à un client MNS. Contrairement à l'abonnement côté serveur, le transfert de données vous permet de spécifier des topics d'appareils et de traiter les données avant le transfert. Pour comparer les solutions et trouver celle qui correspond le mieux à vos besoins, consultez la rubrique Comparaison des solutions de transfert de données. Pour savoir comment configurer l'abonnement côté serveur, consultez la rubrique Utiliser l'abonnement côté serveur avec MNS.
Créer une destination de données
Connectez-vous à la console IoT Platform.
Sur la page Overview, recherchez l'instance que vous souhaitez gérer et cliquez sur son ID ou son nom.
Dans le volet de navigation de gauche, choisissez .
-
Sur la page Data Forwarding, cliquez sur Go to New Version dans le coin supérieur droit.
RemarqueSi vous avez déjà effectué cette opération, vous êtes automatiquement redirigé vers la nouvelle version de la page Data Forwarding.
Cliquez sur l'onglet Data Destination. Sur cet onglet, cliquez sur Create Data Destination.
-
Dans la boîte de dialogue Create Data Destination, saisissez un nom pour la destination de données, par exemple DataPurpose. Configurez les paramètres comme décrit dans le tableau suivant, puis cliquez sur OK.
Paramètre
Description
Sélectionnez une opération.
Sélectionnez Forward data to Message Service (MNS).
Région
Sélectionnez la région où Message Service est activé.
Topic
Sélectionnez le topic SMQ que vous souhaitez utiliser pour recevoir les données.
SMQ transmet les messages reçus aux abonnements HTTP et aux files d'attente sous ce topic. Actuellement, vous ne pouvez vous abonner aux messages qu'IoT Platform transmet à un topic SMQ qu'en utilisant la méthode HTTP ou la méthode par file d'attente.
Vous pouvez cliquer sur Create Topic pour accéder à la console Simple Message Queue (anciennement MNS) afin de créer un topic SMQ et un abonnement. Pour plus d'informations, consultez la documentation Simple Message Queue (SMQ).
Rôle
Accordez à IoT Platform les autorisations nécessaires pour écrire des données dans Simple Message Queue (anciennement MNS).
Si aucun rôle RAM n'existe, cliquez sur Create RAM Role pour créer un rôle RAM et une politique d'autorisation dans la console RAM. Créer un rôle RAM.
Configurer et démarrer l'analyseur
Créez un analyseur nommé DataParser. Pour plus d'informations, consultez l'étape Étape 1 : Créer un analyseur.
-
Sur la page Parser Details, associez l'analyseur à la source de données créée.
À l'étape Data Source de l'assistant, cliquez sur Associate Data Source.
Dans la boîte de dialogue qui s'affiche, sélectionnez DataSource dans la liste déroulante Data Source, puis cliquez sur OK.
-
Sur la page Parser Details, associez l'analyseur à la destination de données créée.
Cliquez sur Data Destination dans l'assistant. Dans la section Data Destination, cliquez sur Associate Data Destination.
Dans la boîte de dialogue qui s'affiche, sélectionnez DataPurpose dans la liste déroulante Data Destination, puis cliquez sur OK.
-
Dans la section Data Destination, affichez et enregistrez l'data destination ID. Dans cet exemple, l'ID est 1000.
Lorsque vous rédigez le script de l'analyseur, vous devez utiliser l'data destination ID.
Sur la page Parser Details, cliquez sur Parser.
-
Dans l'éditeur de script, saisissez un script d'analyse.
La syntaxe du script d'analyse est similaire à celle de JavaScript. Pour plus d'informations sur la modification des scripts, consultez la rubrique Syntaxe du script.
Pour plus d'informations sur les paramètres de la fonction, consultez la rubrique Liste des fonctions.
// 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); -
Cliquez sur Test. Suivez les instructions à l'écran pour sélectionner un produit et un appareil, saisir le topic et les données de charge utile, et vérifier que le script peut être exécuté.
Voici des exemples de paramètres. Exemple de topic :
/{productKey}/{deviceName}/thing/event/property/post. L'exemple de charge utile JSON contient deux propriétés dansitems:Temperature: la valeur est 38, l'heure est 1626948134319Humidity: la valeur est 25, l'heure est 1626948134319
La sortie suivante confirme l'exécution réussie du script.
La sortie est
action: transmit to mns[destinationId=1000]. Cliquez sur Publish.
Accédez à l'onglet Parser de la page Data Forwarding. Recherchez l'analyseur DataParser et cliquez sur Start dans la colonne Actions pour démarrer l'analyseur.
Étapes suivantes
Vous pouvez afficher les journaux d'opération pour les device-to-cloud messages et le data forwarding sur l'onglet IoT Platform Logs. Pour accéder à cet onglet, rendez-vous dans la console IoT Platform, recherchez votre instance et choisissez . Pour plus d'informations, consultez la rubrique Journaux IoT Platform.
Vous pouvez vous connecter à la console Simple Message Queue (anciennement MNS) pour afficher les messages transmis du topic MNS à la file d'attente. Pour plus d'informations, consultez la rubrique Recevoir des messages.
Références
Pour obtenir des instructions sur la connexion d'un appareil à IoT Platform afin de signaler des données, consultez le Guide de connexion des appareils.
Vérifiez les ressources TPS de transfert de messages disponibles sur la page de détails de l'instance afin de garantir que les messages des appareils peuvent être transférés vers Simple Message Queue (anciennement MNS) pour consommation. Pour plus d'informations, consultez la rubrique Afficher les informations de l'instance et les données opérationnelles. Si les ressources sont insuffisantes, mettez à niveau l'instance. Pour plus d'informations, consultez la rubrique Mettre à niveau une instance.
Vous pouvez afficher les métriques du topic Simple Message Queue (anciennement MNS) pour vérifier le nombre de messages reçus. Pour plus d'informations, consultez la rubrique Afficher les métriques du topic.
Utilisez la fonctionnalité de gestion des journaux pour transmettre les journaux d'opération des topics de messages vers Simple Log Service. En cas d'exception lors de la consommation des messages, interrogez la trace du message par MessageId pour diagnostiquer le problème. Pour plus d'informations, consultez les rubriques Transmettre les journaux vers Simple Log Service et Afficher les journaux dans Simple Log Service.