Partager via


Tutoriel : Écrire une fonction définie par l’utilisateur C# pour la tâche Azure Stream Analytics (aperçu)

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 n’est pas possible d’utiliser la fonctionnalité. Passez aux fonctions JavaScript définies par l’utilisateur pour Azure Stream Analytics.

Les fonctions définies par l’utilisateur C# 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 du code existant (y compris des DLL) et utiliser une logique mathématique ou complexe avec C#. Il existe trois façons d’implémenter des UDF :

  • Fichiers CodeBehind 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 CodeBehind 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éez une fonction définie par l’utilisateur C# à l’aide de CodeBehind.
  • Testez votre projet Stream Analytics localement.
  • Publiez votre travail sur Azure.

Prerequisites

Avant de commencer, vérifiez que vous avez rempli les conditions préalables suivantes :

Créer un conteneur dans votre compte de stockage Azure

Le conteneur que vous créez est utilisé pour stocker le package C# compilé. Si vous créez un travail Edge, 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 Stream Analytics Edge n’est pas prise en charge. Si vous disposez déjà d’un compte de stockage avec des conteneurs existants, vous pouvez les utiliser. Si ce n’est pas le cas, vous devez créer un conteneur.

Créer un projet Stream Analytics dans Visual Studio

  1. Démarrez Visual Studio.

  2. Sélectionnez Fichier > Nouveau > Projet.

  3. Dans la liste des modèles à gauche, sélectionnez Stream Analytics, puis Azure Stream Analytics Edge Application ou Azure Stream Analytics Application.

  4. Entrez le nom du projet, l’emplacement et le nom de la solution, puis sélectionnez OK.

    Créer un projet Azure Stream Analytics Edge dans Visual Studio

Configurer le chemin du package d’assembly

  1. Ouvrez Visual Studio et accédez à l’Explorateur de solutions.

  2. Double-cliquez sur le fichier de configuration du travail. JobConfig.json

  3. Développez la section Configuration de code définie par l'utilisateur, et renseignez la configuration avec les valeurs suggérées suivantes :

    Paramètre Valeur suggérée
    Ressource des paramètres globaux de stockage Choisir une source de données à partir du compte actuel
    Abonnement aux paramètres de stockage global < votre abonnement >
    Paramètres globaux de stockage Compte de stockage < votre compte de stockage >
    Paramètres de stockage de code personnalisé Ressource Choisir une source de données à partir du compte actuel
    Compte de stockage des paramètres de stockage de code personnalisé < votre compte de stockage >
    Conteneur de paramètres de stockage de code personnalisé < votre conteneur de stockage >

Écrire une UDF C# avec CodeBehind

Un fichier CodeBehind est un fichier C# associé à un seul script de requête ASA. Visual Studio Tools compresse automatiquement le fichier CodeBehind et le charge sur votre compte de stockage Azure lors de la soumission. Toutes les classes doivent être définies comme publiques et tous les objets doivent être définis comme publics statiques.

  1. Dans l’Explorateur de solutions, développez Script.asql pour rechercher le fichier code-behind Script.asaql.cs.

  2. 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 UDF

  1. Dans l’Explorateur de solutions, ouvrez le fichier Script.asaql .

  2. 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 
    

Tests locaux

  1. Téléchargez l’exemple de fichier de données du simulateur de température.

  2. Dans l’Explorateur de solutions, développez Entrées, cliquez avec le bouton droit surInput.json, puis sélectionnez Ajouter une entrée locale.

    Ajouter une entrée locale au travail Stream Analytics dans Visual Studio

  3. Spécifiez le chemin d’accès du fichier d’entrée local pour les exemples de données que vous avez téléchargés et enregistrés.

    Configuration d’entrée locale pour le travail Stream Analytics dans Visual Studio

  4. Cliquez sur Exécuter localement dans l’éditeur de script. Une fois que l’exécution locale a correctement enregistré les résultats de sortie, appuyez sur n’importe quelle touche pour afficher les résultats au format de tableau.

    Exécuter un travail Azure Stream Analytics localement avec Visual Studio

  5. Vous pouvez également sélectionner Ouvrir le dossier Résultats pour afficher les fichiers bruts au format JSON et CSV.

    Afficher les résultats du travail Azure Stream Analytics local avec Visual Studio

Déboguer une fonction définie par l’utilisateur

Vous pouvez déboguer votre UDF C# localement de la même façon que vous déboguez du code C# standard.

  1. Ajoutez des points d’arrêt dans votre fonction C#.

    Ajouter des points d’arrêt à la fonction définie par l’utilisateur Stream Analytics dans Visual Studio

  2. Appuyez sur F5 pour démarrer le débogage. Le programme s'arrête à vos points d'arrêt, comme prévu.

    Afficher les résultats du débogage de la fonction définie par l'utilisateur de Stream Analytics

Publier votre travail sur Azure

Une fois que vous avez testé votre requête localement, sélectionnez Envoyer à Azure dans l’éditeur de script pour publier le travail sur Azure.

Envoyer votre travail Stream Analytics Edge à Azure à partir de Visual Studio

Déployer sur des appareils IoT Edge

Si vous avez choisi de créer un travail Stream Analytics Edge, il peut maintenant être déployé en tant que module IoT Edge. Suivez le guide de démarrage rapide 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. Suivez ensuite le didacticiel de déploiement du travail pour déployer votre travail Stream Analytics en tant que module IoT Edge.

Étapes suivantes

Dans ce tutoriel, vous avez créé une fonction C# simple définie par l’utilisateur à l’aide de CodeBehind, publié votre travail sur Azure et déployé le travail sur un appareil Azure ou IoT Edge.

Pour en savoir plus sur les différentes façons d’utiliser des fonctions définies par l’utilisateur C# pour les travaux Stream Analytics, passez à cet article :