Démarrage rapide : Créer un travail Stream Analytics à l'aide de Visual Studio Code

Ce guide de démarrage rapide montre comment créer, exécuter et envoyer une tâche ASA (Azure Stream Analytics) à l’aide de l’extension ASA Tools pour Visual Studio Code sur votre ordinateur local. Vous allez voir comment créer une tâche ASA qui lit des données de streaming en temps réel à partir d’IoT Hub et filtre les événements dont la température est supérieure à 27°. Les résultats de sortie sont envoyés vers un fichier dans le stockage d’objets blob. Les données d’entrée utilisées dans ce guide de démarrage rapide sont générées par un simulateur en ligne Raspberry Pi.

Notes

Les outils Visual Studio Code ne prennent pas en charge les tâches dans les régions Chine Est, Chine Nord, Allemagne Centre et Allemagne Nord-Est.

Prérequis

Installer l’extension Azure Stream Analytics Tools

  1. Ouvrez Visual Studio Code (VS Code).

  2. Sous Extensions dans le volet gauche, recherchez Stream Analytics, puis sélectionnez Installer sur l’extension Azure Stream Analytics Tools.

    Capture d’écran de la page Extensions de Visual Studio Code sur laquelle figure une option permettant d’installer l’extension Stream Analytics.

  3. Une fois installé, sélectionnez l’icône Azure dans la barre d’activité et connectez-vous à Azure.

    Capture d’écran montrant comment se connecter à Azure.

  4. Une fois connecté, vous pouvez voir les abonnements sous votre compte Azure.

Notes

L’extension Outils ASA vous connectera automatiquement chaque fois que vous ouvrirez VS Code. Si l’authentification à 2 facteurs est activée pour votre compte, nous vous recommandons d’utiliser l’authentification par téléphone plutôt qu’un code PIN. Pour vous déconnecter de votre compte Azure, appuyez sur Ctrl + Shift + P et entrez Azure: Sign Out.

Préparer les données d’entrée

Avant de définir le travail Stream Analytics, vous devez préparer les données d’entrée. Les données de capteur en temps réel sont ingérées par IoT Hub, configuré plus tard comme entrée du travail. Pour préparer les données d’entrée requises pour la tâche, effectuez ces étapes :

  1. Connectez-vous au portail Azure.

  2. Sélectionnez Créer une ressource > Internet des objets > IoT Hub.

    Capture d’écran montrant la page Créer une ressource pour IoT Hub.

  3. Dans la page IoT Hub, entrez les informations suivantes :

    • Abonnement : sélectionnez votre abonnement Azure.
    • Groupe de ressources : sélectionnez ou créez un groupe de ressources.
    • Nom du hub IoT : attribuez un nom à votre hub IoT.
    • Région : sélectionnez la région la plus proche de chez vous.

    Capture d’écran montrant la page IoT Hub pour la création.

  4. Accédez à la page Gestion. Dans le champ Niveau de tarification et de mise à l’échelle, sélectionnez F1 : Niveau Gratuit, s’il est encore disponible dans votre abonnement. Pour plus d’informations, voir la tarification d’Azure IoT Hub.

    Capture d’écran montrant la page de gestion IoT Hub.

  5. Sélectionnez Revoir + créer. Passez en revue les informations de votre hub IoT et sélectionnez Créer. Le déploiement de votre hub IoT peut prendre quelques minutes.

  6. Une fois votre hub IoT créé, sélectionnez Accéder à la ressource pour accéder à la page IoT Hub. '

  7. Dans la page IoT Hub, sélectionnez Appareils dans le menu de gauche, puis + Ajouter un appareil.

    Capture d’écran montrant le bouton Ajouter un appareil sur la page Appareils.

  8. Entrez un ID d’appareil et sélectionnez Enregistrer.

    Capture d’écran de la page Ajouter un appareil.

  9. Une fois l’appareil créé, celui-ci apparaît normalement dans la liste Appareils IoT. S’il n’apparaît pas, sélectionnez le bouton Actualiser de la page.

    Capture d’écran illustrant la sélection de l’appareil sur la page Appareils.

  10. Sélectionnez votre appareil dans la liste. Copiez la valeur Chaîne de connexion principale et enregistrez-la dans un bloc-notes pour une utilisation ultérieure.

    Capture d’écran montrant la chaîne de connexion principale de l’appareil que vous avez créé.

Exécuter le simulateur IoT

  1. Ouvrez le simulateur en ligne Azure IoT Raspberry Pi dans un nouvel onglet de navigateur.

  2. Remplacez l’espace réservé à la ligne 15 par la chaîne de connexion de l’appareil IoT Hub enregistrée précédemment.

  3. Sélectionnez Exécuter. La sortie doit indiquer les données de capteur et les messages qui sont envoyés à votre hub IoT.

    Capture d’écran montrant la page Simulateur en ligne Azure IoT Raspberry Pi et une sortie.

Créer un stockage d’objets blob

  1. Dans le coin supérieur gauche du portail Azure, sélectionnez Créer une ressource>Stockage>Compte de stockage.

    Capture d’écran montrant le menu Créer un compte de stockage.

  2. Dans le volet Créer un compte de stockage, entrez un nom, un emplacement et un groupe de ressources de compte de stockage. Choisissez les mêmes emplacement et groupe de ressources que pour le hub IoT que vous avez créé. Sélectionnez ensuite Vérifier et Créer pour créer le compte de stockage.

    Capture d’écran de la page Créer un compte de stockage.

  3. Sur la page Compte de stockage, sélectionnez Conteneurs dans le menu de gauche, puis + Conteneur sur la barre de commandes.

    Capture d’écran de la page Conteneurs.

  4. Sur la page Nouveau conteneur, attribuez un nom à votre conteneur, définissez Niveau d’accès public sur Privé (aucun accès anonyme) et sélectionnez OK.

    Capture d’écran illustrant la création d’une page de conteneur d’objets blob.

Créer un projet Stream Analytics

  1. Dans Visual Studio Code, appuyez sur Ctrl+Maj+P, puis entrez ASA: Create New Project.

    Capture d’écran illustrant la sélection d’ASA : Créer un projet dans la palette de commandes.

  2. Entrez le nom de votre projet, par exemple myASAproj, puis sélectionnez un dossier pour votre projet.

    Capture d’écran illustrant la saisie d’un nom de projet ASA.

  3. Un projet ASA est ajouté à votre espace de travail. Il est composé de trois dossiers : Entrées, Sorties et Fonctions. Il comprend aussi le script de requête (*.asaql) , un fichier JobConfig.json et un fichier de configuration asaproj.json.

    Capture d’écran montrant les fichiers projet Stream Analytics dans Visual Studio Code.

    Le fichier asaproj.json contient les entrées, les sorties et les paramètres de configuration de tâche pour soumettre la tâche Stream Analytics à Azure.

    Notes

    Lorsque vous ajoutez des entrées et sorties à partir de la palette de commandes, les chemins correspondants sont automatiquement ajoutés au fichier asaproj.json. Si vous ajoutez ou supprimez des entrées ou sorties directement sur disque, vous devez le faire manuellement dans le fichier asaproj.json. Vous pouvez choisir de placer les entrées et sorties à un seul emplacement, puis de les référencer dans différentes tâches en spécifiant leurs chemins dans chaque fichier asaproj.json.

Définir la requête de transformation

  1. Ouvrez le fichier myASAproj.asaql et ajoutez la requête suivante :

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

    Capture d’écran montrant la requête de transformation.

Configurer les entrées du travail

  1. Cliquez avec le bouton droit sur le dossier Entrées dans votre projet Stream Analytics. Sélectionnez ensuite ASA : Ajouter une entrée dans le menu contextuel.

    Capture d’écran montrant le menu ASA : Ajouter une entrée dans Visual Studio Code.

    Ou appuyez sur Ctrl+Maj+P pour ouvrir la palette de commandes, puis entrez ASA: Add Input.

  2. Choisissez IoT Hub pour le type d’entrée.

    Capture d’écran illustrant la sélection de votre hub IoT dans la palette de commandes de VS Code.

  3. Sélectionnez un script ASA *.asaql et Abonnements Azure dans le menu déroulant, puis appuyez sur Entrée.

  4. Sous le dossier Entrées, un fichier IoTHub1.json est créé. Remplacez les paramètres par les valeurs suggérées suivantes, et conservez les valeurs par défaut pour les champs non mentionnés ici.

    Paramètre Valeur suggérée Description
    Nom Input Ce nom d’entrée est utilisé pour l’instruction FROM dans la requête.
    IotHubNamespace spiothub Nom de votre hub IoT. Les noms des hubs IoT sont automatiquement détectés si vous sélectionnez à partir de votre abonnement.
    SharedAccessPolicyName iothubowner

    Capture d’écran montrant la configuration IoT Hub dans VS Code.

  5. Sélectionnez Aperçu des données pour voir si les données d’entrée sont correctement configurées pour votre tâche. Un échantillon de votre hub IoT sera récupéré et affiché dans la fenêtre d’aperçu.

    Capture d’écran montrant un aperçu des données d’entrée dans votre hub IoT.

Configurer la sortie du travail

  1. Appuyez sur Ctrl+Maj+P pour ouvrir la palette de commandes, puis entrez ASA: Add Output.

  2. Choisissez le type de récepteur Data Lake Storage Gen2/Stockage Blob.

  3. Sélectionnez le script de requête à l’aide de cette sortie.

  4. Entrez BlobStorage1 comme nom de fichier de sortie.

  5. Modifiez les paramètres à l’aide des valeurs suivantes. Conservez les valeurs par défaut pour les champs non mentionnés ici.

    Paramètre Valeur suggérée Description
    Nom Sortie Ce nom de sortie est utilisé pour l’instruction INTO dans la requête.
    Compte de stockage spstorageaccount0901 Sélectionnez ou saisissez le nom de votre compte de stockage. Les noms de compte de stockage sont automatiquement détectés s’ils sont créés dans le même abonnement.
    Conteneur spcontainer Sélectionnez un conteneur existant que vous avez créé dans votre compte de stockage.

Capture d’écran illustrant la configuration de la sortie du travail Stream Analytics.

Compiler le script et l’envoyer à Azure

La compilation du script vérifie la syntaxe et génère les modèles Azure Resource Manager pour le déploiement automatique.

  1. Cliquez avec le bouton droit sur le script et sélectionnez ASA : Compile Script.

    Capture d’écran montrant l’option de compilation de script à partir de l’explorateur Stream Analytics dans VS Code.

  2. Après la compilation, un dossier Déployer est visible sous votre projet avec deux modèles Azure Resource Manager. Ces deux fichiers sont utilisés pour le déploiement automatique.

    Capture d’écran montrant les modèles de déploiement générés dans le dossier du projet.

  3. Sélectionnez Envoyer sur Azure dans l’éditeur de requête.

    Capture d’écran montrant le bouton d’envoi de la tâche Stream Analytics vers Azure.

    Suivez ensuite les instructions pour terminer le processus : Sélectionnez l’abonnement > Sélectionnez une tâche > Créer une tâche > Entrez le nom de la tâche >Choisissez le groupe de ressources et la région.

  4. Sélectionnez Publier sur Azure pour terminer. Attendez qu’un nouvel onglet Vue de travail cloud affiche l’état de votre tâche.

    Capture d’écran montrant le bouton Publier sur Azure dans VS Code.

Démarrer la tâche Stream Analytics et observez le résultat

  1. Sous l’onglet Vue de travail cloud, sélectionnez Démarrer pour exécuter votre tâche dans le cloud. Ce processus peut prendre quelques minutes.

    Capture d’écran montrant le bouton Démarrer le travail sur la page Vue cloud.

  2. Si votre tâche démarre correctement, l’état de la tâche devient En cours d’exécution. Vous pouvez voir un diagramme logique montrant l’exécution de votre tâche ASA.

    Capture d’écran montrant l’état d’exécution de la tâche dans VS Code.

  3. Pour afficher les résultats de sortie, vous pouvez ouvrir le stockage d’objets blob dans l’extension Visual Studio Code ou dans le portail Azure.

    Capture d’écran montrant le fichier de sortie dans le conteneur d’objets blob.

    Téléchargez et ouvrez le fichier pour afficher la sortie.

    {"messageId":11,"deviceId":"Raspberry Pi Web Client","temperature":28.165519323167562,"humidity":76.875393581654379,"EventProcessedUtcTime":"2022-09-01T22:53:58.1015921Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:52:57.6250000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:52:57.6290000Z"}}
    {"messageId":14,"deviceId":"Raspberry Pi Web Client","temperature":29.014941877871451,"humidity":64.93477299527828,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:03.6100000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:03.6140000Z"}}
    {"messageId":17,"deviceId":"Raspberry Pi Web Client","temperature":28.032846241745975,"humidity":66.146114343897338,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:19.5960000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:19.5830000Z"}}
    {"messageId":18,"deviceId":"Raspberry Pi Web Client","temperature":30.176185593576143,"humidity":72.697359909427419,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:21.6120000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:21.6140000Z"}}
    {"messageId":20,"deviceId":"Raspberry Pi Web Client","temperature":27.851894248213021,"humidity":71.610229530268214,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:25.6270000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:25.6140000Z"}}
    {"messageId":21,"deviceId":"Raspberry Pi Web Client","temperature":27.718624694772238,"humidity":66.540445035685153,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:48.0820000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:48.0830000Z"}}
    {"messageId":22,"deviceId":"Raspberry Pi Web Client","temperature":27.7849054424326,"humidity":74.300662748167085,"EventProcessedUtcTime":"2022-09-01T22:54:09.3393532Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:09.2390000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:09.2400000Z"}}
    {"messageId":28,"deviceId":"Raspberry Pi Web Client","temperature":30.839892925680324,"humidity":76.237611741451786,"EventProcessedUtcTime":"2022-09-01T22:54:47.8053253Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:47.6180000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:47.6150000Z"}}
    {"messageId":29,"deviceId":"Raspberry Pi Web Client","temperature":30.561040300759053,"humidity":78.3845172058103,"EventProcessedUtcTime":"2022-09-01T22:54:49.8070489Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:49.6030000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:49.5990000Z"}}
    {"messageId":31,"deviceId":"Raspberry Pi Web Client","temperature":28.163585438418679,"humidity":60.0511571297096,"EventProcessedUtcTime":"2022-09-01T22:55:25.1528729Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:24.9050000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:24.9120000Z"}}
    {"messageId":32,"deviceId":"Raspberry Pi Web Client","temperature":31.00503387156985,"humidity":78.68821066044552,"EventProcessedUtcTime":"2022-09-01T22:55:43.2652127Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:43.0480000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:43.0520000Z"}}
    

Nettoyer les ressources

Lorsque vous n’en avez plus besoin, supprimez le groupe de ressources, le travail Stream Analytics 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 comptez pas continuer à utiliser ce travail, supprimez toutes les ressources créées dans le cadre de ce guide de démarrage rapide en procédant comme suit :

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

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

Étapes suivantes

Pour en savoir plus sur l’extension ASA Tools pour Visual Studio Code, consultez les articles suivants :