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
- 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
.
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 :
Connectez-vous au portail Azure.
Sélectionnez Créer une ressource > Internet des objets > IoT Hub.
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.
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.
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.
Une fois votre hub IoT créé, sélectionnez Accéder à la ressource pour accéder à la page IoT Hub. '
Dans la page IoT Hub, sélectionnez Appareils dans le menu de gauche, puis + Ajouter un appareil.
Entrez un ID d’appareil et sélectionnez Enregistrer.
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.
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.
Exécuter le simulateur IoT
Ouvrez le simulateur en ligne Azure IoT Raspberry Pi dans un nouvel onglet de navigateur.
Remplacez l’espace réservé à la ligne 15 par la chaîne de connexion de l’appareil IoT Hub enregistrée précédemment.
Sélectionnez Exécuter. La sortie doit indiquer les données de capteur et les messages qui sont envoyés à votre hub IoT.
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.
Sélectionnez un script ASA *.asaql et Abonnements Azure dans le menu déroulant, puis appuyez sur Entrée.
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 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
Appuyez sur Ctrl+Maj+P pour ouvrir la palette de commandes, puis entrez ASA: Add Output.
Choisissez le type de récepteur Data Lake Storage Gen2/Stockage Blob.
Sélectionnez le script de requête à l’aide de cette sortie.
Entrez BlobStorage1 comme nom de fichier de sortie.
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.
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 script et sélectionnez ASA : Compile Script.
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.
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.
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. 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 :