Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le registre de schémas vous permet de valider les formats de message et de garantir la cohérence des données dans le traitement de votre flux de données. Cet article montre comment utiliser le registre de schémas avec des modules WASM dans le Opérations Azure IoT environnement de développement local.
Avant de suivre les étapes décrites dans cet article, configurez votre environnement de développement local et générez et exécutez une application de graphe localement. Pour plus d’informations, consultez Générer des modules WASM pour les flux de données.
Prerequisites
Remplissez les conditions préalables répertoriées dans les modules BUILD WASM pour les flux de données.
Ouvrir l’exemple d’espace de travail du Registre de schémas
Clonez le référentiel Explore IoT Operations si ce n'est déjà fait.
Ouvrez le dossier samples/wasm/schema-registry-scenario. Ce dossier contient les ressources suivantes :
-
graph.dataflow.yaml- Configuration du graphe de flux de données. -
tk_schema_config.json- Schéma JSON que l’application hôte utilise localement pour valider les charges utiles de message entrantes avant d’atteindre les opérateurs en aval. Conservez ce fichier synchronisé avec tout schéma que vous publiez dans votre environnement de Microsoft Azure. -
data/- Exemples de données d’entrée avec différents formats de message à tester. -
operators/filter/- Code source de l’opérateur de filtre. - (Facultatif)
hostapp.env.list- L’extension VS Code génère automatiquement une configuration à l’exécution en ajoutantTK_SCHEMA_CONFIG_PATH=tk_schema_config.json. Si vous fournissez votre propre fichier de schéma, assurez-vous que la variable pointe vers celle-ci.
Comprendre la configuration du schéma
Ouvrez le tk_schema_config.json fichier pour afficher la définition du schéma :
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"humidity": {
"type": "integer"
},
"temperature": {
"type": "number"
}
}
}
Ce schéma définit un objet JSON de niveau supérieur qui peut contenir deux propriétés numériques : humidity (entier) et temperature (nombre). Ajoutez un tableau "required": ["humidity", "temperature"] si vous devez les rendre obligatoires, ou élargissez la section properties à mesure que votre format de charge évolue.
Les limitations suivantes s’appliquent au fichier de schéma local (tk_schema_config.json). Fichier de schéma :
- Utilise la syntaxe standard de JSON Schema draft-07, qui est également pris en charge par le registre de schémas Opérations Azure IoT.
- Est fonctionnellement le même contenu que celui que vous inscrivez dans le registre de schémas cloud. Vous pouvez copier et coller entre les deux pour rester cohérent.
- Est référencé par l’application hôte via la variable
TK_SCHEMA_CONFIG_PATHd’environnement.
Actuellement, les limitations suivantes s’appliquent dans le runtime de développement local :
- Un seul fichier de configuration de schéma est chargé. Aucune inclusion multi-fichiers ni analyse de répertoire n’est prise en charge.
-
$refvers les fichiers externes ou les URL n’est pas pris en charge localement. Maintenez le schéma indépendant. Vous pouvez utiliser des références de pointeur JSON internes comme{"$ref":"#/components/..."}. - Les mots clés draft-07 couramment utilisés comme
type,properties,required,enum,minimum,maximum,allOf,anyOf,oneOf,notetitemsfonctionnent tous. Le validateur sous-jacent peut ignorer les fonctionnalités moins courantes ou avancées commecontentEncodingetcontentMediaType. - Conservez la taille de vos schémas à moins de ~1 Mo pour les démarrages à froid rapides.
- Les stratégies d’évolution de version et de schéma ne sont pas appliquées localement. Vous êtes responsable de rester aligné sur le registre cloud.
Si vous vous appuyez sur des constructions avancées qui échouent localement, validez le même schéma sur le registre cloud après la publication pour garantir la parité.
Pour plus d'informations, consultez les concepts du registre de schémas Opérations Azure IoT.
Passer en revue les données de test
Le data/ dossier contient trois fichiers de test :
-
temperature_humidity_payload_1.json- Contient à la fois les données de température et d’humidité. Toutefois, la valeur d’humidité (175.1) n’est pas un entier tel que spécifié dans le schéma, de sorte que les données échouent à la validation du schéma et sont filtrées. -
temperature_humidity_payload_2.json- Contient uniquement les données d’humidité et est filtré. -
temperature_humidity_payload_3.json- Contient à la fois les données de température et d’humidité et passe la validation.
Générer et exécuter le scénario de Registre de schémas
Si vous avez précédemment arrêté l’environnement d’exécution local, appuyez sur Ctrl+Shift+P pour ouvrir la palette de commandes et rechercher Opérations Azure IoT : Démarrer l’environnement de développement. Sélectionnez la mise en production comme mode d’exécution.
Appuyez sur
Ctrl+Shift+Ppour ouvrir la palette de commandes et rechercher Opérations Azure IoT : Générer tous les opérateurs Data Flow.Sélectionnez la mise en production en tant que mode de génération. Attendez la fin de la génération.
Appuyez à nouveau sur
Ctrl+Shift+Pet recherchez Opérations Azure IoT : Exécuter Application Graph.Sélectionnez le
graph.dataflow.yamlfichier de graphique.Sélectionnez la mise en production comme mode d’exécution.
Sélectionnez le
datadossier dans votre espace de travail VS Code pour vos données d’entrée. Le conteneur DevX démarre pour exécuter le graphique avec l’exemple d’entrée.
Vérifier la validation du schéma
Une fois le traitement terminé :
Vérifiez le dossier
data/output/contenant les résultats.La sortie contient uniquement la version traitée du
temperature_humidity_payload_3.jsonmessage, car elle est conforme au schéma.Le
data/output/logs/host-app.logfichier contient des entrées de journal indiquant quels messages sont acceptés ou rejetés en fonction de la validation du schéma.
Cet exemple montre comment le registre de schéma valide les messages entrants et filtre les messages qui ne sont pas conformes au schéma défini.
Arrêtez l'environnement d'exécution local lorsque vous avez terminé le test en mode mise en production en appuyant sur Ctrl+Shift+P et en recherchant Opérations Azure IoT : Arrêter l'environnement de développement.
Contenu connexe
- Générer des modules WASM pour les flux de données
- Créer des graphiques WASM à états avec le stockage d'états
- Débogage des modules WASM
- Tester les modules WASM
- Comprendre les modules WebAssembly (WASM) et les définitions de graphiques pour les graphiques de flux de données
- Concepts du registre de schémas des opérations Azure IoT