Démarrage rapide : Créer un travail Stream Analytics à l'aide de Visual Studio Code
Dans ce guide de démarrage rapide, vous allez 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
- Abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit.
- Visual Studio Code.
Installer l’extension Azure Stream Analytics Tools
Ouvrez Visual Studio Code (VS Code).
Sous Extensions dans le volet gauche, recherchez Stream Analytics, puis sélectionnez Installer sur l’extension Azure Stream Analytics Tools.
Une fois installé, sélectionnez l’icône Azure dans la barre d’activité et connectez-vous à Azure.
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
.
Exécuter le simulateur IoT
Ouvrez le simulateur en ligne Azure IoT Raspberry Pi.
Remplacez l’espace réservé à la ligne 15 par la chaîne de connexion de l’appareil Azure IoT Hub.
Sélectionnez Exécuter. La sortie doit indiquer les données de capteur et les messages qui sont envoyés à votre hub IoT.
Important
Sélectionnez Réinitialiser après quelques minutes pour réinitialiser la chaîne de connexion.
Créer un stockage d’objets blob
Dans le coin supérieur gauche du portail Azure, sélectionnez Créer une ressource>Stockage>Compte de stockage.
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.
Sur la page Compte de stockage, sélectionnez Conteneurs dans le menu de gauche, puis + Conteneur sur la barre de commandes.
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.
Créer un projet Stream Analytics
Dans Visual Studio Code, appuyez sur Ctrl+Maj+P, puis entrez ASA: Create New Project.
Entrez le nom de votre projet, par exemple myASAproj, puis sélectionnez un dossier pour votre projet.
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.
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
Ouvrez le fichier myASAproj.asaql et ajoutez la requête suivante :
SELECT * INTO Output FROM Input WHERE Temperature > 27
Configurer les entrées du travail
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.
Ou appuyez sur Ctrl+Maj+P pour ouvrir la palette de commandes, puis entrez ASA: Add Input.
Choisissez IoT Hub pour le type d’entrée.
Choisissez Sélectionner parmi les abonnements Azure dans le menu déroulant, puis appuyez sur Entrée.
Tapez Input comme nom, puis appuyez sur Entrée.
Sous le dossier Entrées, un fichier IoTHub1.json est créé.
Dans le fichier JSON, vérifiez que Input est spécifié comme Nom.
Dans l’éditeur JSON pour Input.json, choisissezSélectionner parmi vos abonnements, puis sélectionnez votre abonnement Azure doté du hub IoT.
Dans l’éditeur JSON, choisissez Sélectionner un hub IoT, puis sélectionnez le hub IoT que vous avez créé.
Par défaut, la valeur
SharedAccessPolicyName
doit être définie suriothubowner
. Si ce n’est pas le cas, choisissez le lien Sélectionner un nom de stratégie d’accès partagé, puis sélectionnez iothubowner dans la liste déroulante.La valeur
SharedAccessPolicyKey
doit être définie automatiquement.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.
Configurer la sortie du travail
- Cliquez avec le bouton droit sur Sorties dans l’Explorateur, puis sélectionnez ASA : Ajouter une sortie.
- Choisissez le type de récepteur Data Lake Storage Gen2/Stockage Blob dans la liste déroulante.
- Choisissez Sélectionner parmi des abonnements Azure.
- Entrez Output comme nom de l’alias, puis appuyez sur Entrée. Ce nom de sortie est utilisé pour l’instruction INTO dans la requête.
- Dans l’éditeur JSON pour Output.json, choisissezSélectionner parmi vos abonnements, puis sélectionnez votre abonnement Azure doté du compte Stockage Azure.
- Si vous devez changer le compte de stockage qui est automatiquement rempli, choisissez Sélectionner un compte de stockage, puis sélectionnez votre compte Stockage Azure. Les noms de compte de stockage sont automatiquement détectés s’ils sont créés dans le même abonnement.
- Si vous devez changer le nom du conteneur, choisissez Sélectionner un conteneur, puis sélectionnez le conteneur d’objets blob que vous avez créé.
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.
Cliquez avec le bouton droit sur le fichier de script dans la fenêtre de l’Explorateur, pointez sur ASA : Compiler le script, puis sélectionnez ASA : Modèle ARM V2 (recommandé).
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.
Sélectionnez Envoyer sur Azure dans l’éditeur de requête.
Dans la fenêtre Envoyer, effectuez ces étapes :
Sélectionnez votre abonnement Azure.
Sélectionnez un groupe de ressources Azure.
Sélectionnez la région dans laquelle vous souhaitez créer le travail Stream Analytics.
Puis, sélectionnez Envoyer.
Sélectionnez Publier sur Azure pour terminer. Attendez qu’un nouvel onglet Vue de travail cloud affiche l’état de votre tâche.
Démarrer la tâche Stream Analytics et observez le résultat
Sous l’onglet Vue de travail cloud, sélectionnez Démarrer pour exécuter votre tâche dans le cloud.
Dans la fenêtre Démarrer le travail de streaming, sélectionnez OK. Ce processus peut prendre quelques minutes.
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.
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.
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 :
Dans le menu de gauche du portail Azure, sélectionnez Groupes de ressources, puis le nom de la ressource que vous avez créée.
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 :