Share via


Tutoriel : désérialiseurs .NET personnalisés pour Azure Stream Analytics dans Visual Studio Code (préversion)

Important

Le désérialiser .net personnalisé pour Azure Stream Analytics sera retiré le 30 septembre 2024. Après cette date, il ne sera pas possible d’utiliser la fonctionnalité.

Azure Stream Analytics prend en charge trois formats de données : JSON, CSV et Avro, comme indiqué dans ce document. Avec les désérialiseurs .NET personnalisés, vous pouvez traiter des données dans d’autres formats, comme le tampon de protocole, Bond et d’autres formats définis par l’utilisateur pour les travaux cloud. Ce tutoriel montre comment créer, tester et déboguer un désérialiseur .NET personnalisé pour un travail Azure Stream Analytics en utilisant Visual Studio Code.

Vous découvrirez comment effectuer les actions suivantes :

  • Créer un désérialiseur personnalisé pour le tampon de protocole.
  • Créer un travail Azure Stream Analytics dans Visual Studio Code.
  • Configurer votre travail Stream Analytics pour utiliser le désérialiseur personnalisé.
  • Exécuter votre travail Stream Analytics localement pour tester et déboguer le désérialiseur personnalisé.

Prérequis

  • Installez le SDK .NET Core et redémarrez Visual Studio Code.

  • Utilisez ce démarrage rapide pour apprendre à créer un travail Stream Analytics à l’aide de Visual Studio Code.

Créer un désérialiseur personnalisé

  1. Ouvrez un terminal et exécutez la commande suivante pour créer une bibliothèque de classes .NET dans Visual Studio Code pour votre désérialiseur personnalisé appelé ProtobufDeserializer.

    dotnet new classlib -o ProtobufDeserializer
    
  2. Accédez au répertoire de projet ProtobufDeserializer et installez les packages NuGet Microsoft.Azure.StreamAnalytics et Google.Protobuf.

    dotnet add package Microsoft.Azure.StreamAnalytics
    
    dotnet add package Google.Protobuf
    
  3. Ajoutez la classe MessageBodyProto et la classe MessageBodyDeserializer à votre projet.

  4. Générez le projet ProtobufDeserializer.

Ajouter un projet Azure Stream Analytics

Ouvrez Visual Studio Code et sélectionnez Ctrl+Maj+P pour ouvrir la palette de commandes. Entrez ensuite ASA et sélectionnez ASA : Créer un projet. Nommez-le ProtobufCloudDeserializer.

Configurer un travail Stream Analytics

  1. Double-cliquez sur JobConfig.json. Utilisez les configurations par défaut, sauf pour les paramètres suivants :

    Paramètre Valeur suggérée
    Ressource des paramètres de stockage généraux Choisir une source de données du compte actuel
    Abonnement des paramètres de stockage généraux < votre abonnement >
    Compte de stockage des paramètres de stockage généraux < votre compte de stockage >
    Compte de stockage des paramètres de CustomCodeStorage < votre compte de stockage >
    Conteneur des paramètres de CustomCodeStorage < votre conteneur de stockage >
  2. Dans le dossier Entrées, ouvrez input.json. Sélectionnez Ajouter des entrées dynamiques, ajoutez une entrée à partir du stockage Azure Data Lake Storage Gen2/Blob, et sélectionnez Sélectionner dans votre abonnement Azure. Utilisez les configurations par défaut, sauf pour les paramètres suivants :

    Paramètre Valeur suggérée
    Nom Entrée
    Abonnement < votre abonnement >
    Compte de stockage < votre compte de stockage >
    Conteneur < votre conteneur de stockage >
    Type de sérialisation Sélectionnez Personnalisé
    SerializationProjectPath Sélectionnez l’option Sélectionner un chemin d’accès de projet de bibliothèque dans CodeLens et sélectionnez le projet ProtobufDeserializer créé dans la section précédente. Sélectionnez générer le projet pour générer le projet
    SerializationClassName Sélectionnez l’option Sélectionner la classe de désérialisation dans CodeLens pour remplir automatiquement le nom de la classe et le chemin d’accès à la DLL
    Nom de la classe MessageBodyProto.MessageBodyDeserializer

    Ajouter une entrée de désérialiseur personnalisé

  3. Ajoutez la requête suivante au fichier ProtobufCloudDeserializer.asaql.

    SELECT * FROM Input
    
  4. Téléchargez l’exemple de fichier d’entrée protobuf. Dans le dossier Entrées, cliquez avec le bouton droit sur input.json, puis sélectionnez Ajouter une entrée locale. Double-cliquez sur local_input1.json et utilisez les configurations par défaut, sauf pour les paramètres suivants.

    Paramètre Valeur suggérée
    Sélectionnez le chemin d’accès de fichier local Sélectionnez CodeLens pour sélectionner < Chemin de l’exemple de fichier d’entrée protobuf téléchargé>

Exécuter le travail Stream Analytics

  1. Ouvrez ProtobufCloudDeserializer.asaql et sélectionnez Exécuter localement dans CodeLens, puis Utiliser l’entrée locale dans la liste déroulante.

  2. Sous l’onglet Résultats du diagramme de travail, vous pouvez afficher les résultats de sortie. Vous pouvez également cliquer sur les étapes dans le diagramme de travail pour afficher un résultat intermédiaire. Pour plus de détails, consultez Débogage local à l’aide du diagramme de travail.

    Vérifier le résultat de l’exécution locale

Vous avez implémenté avec succès un désérialiseur personnalisé pour votre travail Stream Analytics. Dans ce tutoriel, vous avez testé le désérialiseur personnalisé localement avec des données locales. Vous pouvez également le tester à l’aide d’entrées dynamiques dans le cloud. Pour exécuter le travail dans le cloud, vous devez configurer correctement l’entrée et la sortie. Envoyez ensuite votre travail à Azure à partir de Visual Studio Code pour l’exécuter dans le cloud à l’aide du désérialiseur personnalisé que vous avez implémenté.

Déboguer votre désérialiseur

Vous pouvez déboguer votre désérialiseur .NET localement de la même façon que vous déboguez du code .NET.

  1. Ajoutez des points d’arrêt à votre fonction .NET.

  2. Cliquez sur Exécuter dans la barre d’activité de Visual Studio Code et sélectionnez Créer un fichier launch.json. Créer un fichier de démarrage.

    Sélectionnez ProtobufCloudDeserializer, puis Azure Stream Analytics dans la liste déroulante. Créer un fichier de démarrage 2.

    Modifiez le fichier launch.json en remplaçant <ASAScript>.asaql par ProtobufCloudDeserializer.asaql. Configurer le fichier de démarrage.

  3. Appuyez sur F5 pour démarrer le débogage. Le programme s’arrête sur vos points d’arrêt comme prévu. Cela fonctionne pour les données d’entrée locale et les données d’entrée dynamiques.

    Déboguer un désérialiseur personnalisé.

Nettoyer les ressources

Lorsque vous n’en avez plus besoin, supprimez le groupe de ressources, le travail de streaming et toutes les ressources associées. La suppression du travail évite la facturation des unités de streaming consommées par le travail. Si vous envisagez d’utiliser le travail à l’avenir, vous pouvez l’arrêter et le redémarrer plus tard lorsque vous en avez besoin. Si vous ne pensez pas continuer à utiliser ce travail, supprimez toutes les ressources créées au cours de ce tutoriel en procédant comme suit :

  1. Dans le menu de gauche du portail Azure, cliquez sur Groupes de ressources, puis sur le nom de la ressource que vous avez créée.

  2. Sur la page de votre groupe de ressources, sélectionnez Supprimer, saisissez le nom de la ressource à supprimer dans la zone de texte, puis sélectionnez Supprimer.

Étapes suivantes

Dans ce tutoriel, vous avez appris à implémenter un désérialiseur .NET personnalisé pour la sérialisation des entrées du tampon de protocole. Pour en savoir plus sur la création de désérialiseurs personnalisés, passez à l’article suivant :