Tutoriel : Écrire une fonction C# définie par l’utilisateur pour un travail Azure Stream Analytics (préversion)
Important
Les fonctions définies par l’utilisateur .Net Standard pour Azure Stream Analytics seront supprimées le 30 septembre 2024. Après cette date, il ne sera pas possible d’utiliser la fonctionnalité. Veuillez effectuer la transition vers les fonctions définies par l’utilisateur JavaScript pour Azure Stream Analytics.
Les fonctions C# définies par l’utilisateur créées dans Visual Studio vous permettent d’étendre le langage de requête Azure Stream Analytics avec vos propres fonctions. Vous pouvez réutiliser le code existant (y compris les DLL) et utiliser une logique mathématique ou complexe avec C#. Il existe trois façons d’implémenter des fonctions définies par l’utilisateur :
- Fichiers code-behind dans un projet Stream Analytics
- UDF d’un projet C# local
- UDF d’un package existant à partir d’un compte de stockage.
Ce tutoriel utilise la méthode code-behind pour implémenter une fonction C# de base. La fonctionnalité de fonction définie par l’utilisateur pour les travaux Stream Analytics est actuellement disponible en préversion et ne doit pas être utilisée dans des charges de travail de production.
Dans ce tutoriel, vous allez apprendre à :
- Créer une fonction définie par l’utilisateur C# à l’aide de code-behind.
- Tester votre travail Stream Analytics localement.
- Publier votre travail sur Azure.
Prérequis
Avant de commencer, veillez à effectuer les prérequis suivants :
- Si vous n’avez pas d’abonnement Azure, créez un compte gratuit.
- Installez les outils Stream Analytics pour Visual Studio et les charges de travail Développement Azure ou Stockage et traitement de données.
- Consultez le guide de développement Stream Analytics sur appareils de périphérie existant si vous créez un travail IoT Edge.
Créez un conteneur dans votre compte Stockage Azure.
Le conteneur que vous créez sert à stocker le package C# compilé. Si vous créez un travail de périphérie, ce compte de stockage est également utilisé pour déployer le package sur votre appareil IoT Edge. Utilisez un conteneur dédié pour chaque travail Stream Analytics. La réutilisation du même conteneur pour plusieurs travaux de périphérie Stream Analytics n’est pas prise en charge. Si vous avez déjà un compte de stockage avec des conteneurs existants, vous pouvez les utiliser. Sinon, vous devez créer un conteneur.
Créer un projet Stream Analytics dans Visual Studio
Démarrez Visual Studio.
Sélectionnez Fichier > Nouveau > Projet.
Dans la liste des modèles sur la gauche, sélectionnez Stream Analytics, puis Application de périphérie Azure Stream Analytics ou Application Azure Stream Analytics.
Entrez les éléments Nom, Emplacement et Nom de la solution de votre projet, puis sélectionnez OK.
Configurer le chemin du package d’assembly
Ouvrez Visual Studio et accédez à l’Explorateur de solutions.
Double-cliquez sur le fichier de configuration du travail,
JobConfig.json
.Développez la section Configuration du code défini par l’utilisateur et remplissez la configuration avec les valeurs suggérées suivantes :
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 > Ressource des paramètres de stockage de code personnalisé Choisir une source de données du compte actuel Compte de stockage des paramètres de stockage de code personnalisé < votre compte de stockage > Conteneur des paramètres de stockage de code personnalisé < votre conteneur de stockage >
Écrire une fonction C# définie par l’utilisateur avec du code-behind
Un fichier code-behind est un fichier C# associé à un seul script de requête ASA. Visual Studio Tools compresse automatiquement le fichier code-behind et le charge sur votre compte de stockage Azure au moment de l’envoi. Toutes les classes doivent être définies en tant que classes publiques et tous les objets doivent être définis en tant qu’objets publics statiques.
Dans l’Explorateur de solutions, développez Script.asql pour rechercher le fichier code-behind Script.asaql.cs.
Remplacez le code par l’exemple suivant :
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; namespace ASAEdgeUDFDemo { public class Class1 { // Public static function public static Int64 SquareFunction(Int64 a) { return a * a; } } }
Implémenter la fonction définie par l’utilisateur
Dans l’Explorateur de solutions, ouvrez le fichier Script.asaql.
Remplacez la requête existante par la requête suivante :
SELECT machine.temperature, udf.ASAEdgeUDFDemo_Class1_SquareFunction(try_cast(machine.temperature as bigint)) INTO Output FROM Input
Test local
Téléchargez l’exemple de fichier de données du simulateur de température.
Dans l’Explorateur de solutions, développez Entrées, cliquez avec le bouton droit sur Input.json, puis sélectionnez Ajouter une entrée locale.
Spécifiez le chemin du fichier de l’entrée locale pour les exemples de données que vous avez téléchargées et cliquez sur Enregistrer.
Cliquez sur Exécuter localement dans l’éditeur de script. Une fois que l’exécution locale a enregistré les résultats de la sortie, appuyez sur n’importe quelle touche pour les afficher sous forme de tableau.
Vous pouvez également sélectionner Ouvrir le dossier de résultats pour voir les fichiers bruts au format JSON et CSV.
Déboguer une fonction définie par l’utilisateur
Vous pouvez déboguer votre fonction C# définie par l’utilisateur localement de la même façon que du code C# standard.
Ajoutez des points d’arrêt à votre fonction C#.
Appuyez sur F5 pour démarrer le débogage. Le programme s’arrête sur vos points d’arrêt comme prévu.
Publier votre travail sur Azure
Une fois que vous avez testé votre requête localement, sélectionnez Envoyer sur Azure dans l’éditeur de script pour publier le travail sur Azure.
Déployer sur des appareils IoT Edge
Si vous avez choisi de générer un travail de périphérie Stream Analytics, vous pouvez à présent le déployer en tant que module IoT Edge. Suivez le guide de démarrage rapide sur IoT Edge pour créer un hub IoT, inscrire un appareil IoT Edge, et installer et démarrer le runtime IoT Edge sur votre appareil. Ensuite, suivez le tutoriel Déployer la tâche pour déployer votre travail Stream Analytics en tant que module IoT Edge.
Étapes suivantes
Dans ce tutoriel, vous avez créé une fonction C# définie par l’utilisateur simple à l’aide de code-behind, publié votre travail sur Azure, puis déployé celui-ci sur Azure ou sur un appareil IoT Edge.
Pour en savoir plus sur les différentes façons d’utiliser des fonctions C# définies par l’utilisateur pour des travaux Stream Analytics, passez à cet article :