Didacticiel : Écrire une fonction C# définie par l’utilisateur pour un travail Edge Azure Stream Analytics (préversion)Tutorial: Write a C# user-defined function for Azure Stream Analytics Edge job (Preview)

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.C# user-defined functions (UDFs) created in Visual Studio allow you to extend the Azure Stream Analytics query language with your own functions. Vous pouvez réutiliser le code existant (y compris les DLL) et utiliser une logique mathématique ou complexe avec C#.You can reuse existing code (including DLLs) and use mathematical or complex logic with C#. Il existe trois façons d’implémenter des fonctions définies par l’utilisateur : fichiers code-behind dans un projet Stream Analytics, fonctions définies par l’utilisateur issues d’un projet C# local ou fonctions définies par l’utilisateur issues d’un package existant à partir d’un compte de stockage.There are three ways to implement UDFs: CodeBehind files in a Stream Analytics project, UDFs from a local C# project, or UDFs from an existing package from a storage account. Ce tutoriel utilise la méthode code-behind pour implémenter une fonction C# de base.This tutorial uses the CodeBehind method to implement a basic C# function. La fonctionnalité de fonction définie par l’utilisateur pour les travaux de périphérie Stream Analytics étant disponible en préversion, elle ne doit pas être utilisée dans les charges de travail de production.The UDF feature for Stream Analytics Edge jobs is currently in preview and shouldn't be used in production workloads.

Ce tutoriel vous montre comment effectuer les opérations suivantes :In this tutorial, you learn how to:

  • Créer une fonction définie par l’utilisateur C# à l’aide de code-behind.Create a C# user defined function using CodeBehind.
  • Tester votre travail de périphérie Stream Analytics localement.Test your Stream Analytics Edge job locally.
  • Publier votre travail de périphérie sur Azure.Publish your Edge job to Azure.

PrérequisPrerequisites

Avant de commencer, veillez à effectuer les prérequis suivants :Before you start, make sure you've completed the following prerequisites:

Créez un conteneur dans votre compte Stockage Azure.Create a container in your Azure Storage Account

Le conteneur que vous créez servira à stocker le package C# compilé et à déployer celui-ci sur votre appareil IoT Edge.The container you create will be used to store the compiled C# package and deploy the package to your IoT Edge device. Utilisez un conteneur dédié pour chaque travail Stream Analytics.Use a dedicated container for each Stream Analytics job. La réutilisation du même conteneur pour plusieurs travaux de périphérie Stream Analytics n’est pas prise en charge.Reusing the same container for multiple Stream Analytics Edge jobs is not supported. Si vous avez déjà un compte de stockage avec des conteneurs existants, vous pouvez les utiliser.If you already have a storage account with existing containers, you may use them. Sinon, vous devez créer un conteneur.If not, you'll need to create a new container.

Créer un projet de périphérie Stream Analytics dans Visual StudioCreate a Stream Analytics Edge project in Visual Studio

  1. Démarrez Visual Studio.Start Visual Studio.

  2. Sélectionnez Fichier > Nouveau > Projet.Select File > New > Project.

  3. Dans la liste des modèles sur la gauche, sélectionnez Stream Analytics, puis Application de périphérie Azure Stream Analytics.In the templates list on the left, select Stream Analytics, and then select Azure Stream Analytics Edge Application.

  4. Entrez les éléments Nom, Emplacement et Nom de la solution de votre projet, puis sélectionnez OK.Input the project Name, Location, and Solution name, and select OK.

    Créer un projet de périphérie Azure Stream Analytics dans Visual Studio

Configurer le chemin du package d’assemblyConfigure assembly package path

  1. Ouvrez Visual Studio et accédez à l’Explorateur de solutions.Open Visual Studio and navigate to the Solution Explorer.

  2. Double-cliquez sur le fichier de configuration du travail, EdgeJobConfig.json.Double-click the job configuration file, EdgeJobConfig.json.

  3. Développez la section Configuration du code défini par l’utilisateur et remplissez la configuration avec les valeurs suggérées suivantes :Expand the User-Defined Code Configuration section, and fill out the configuration with the following suggested values:

    ParamètreSetting Valeur suggéréeSuggested value
    Source de l’assemblyAssembly Source Référence de projet local ou code-behindLocal Project Reference or CodeBehind
    RessourceResource Choisissez des données du compte actuelChoose data from current account
    AbonnementSubscription Choisissez votre abonnement.Choose your subscription.
    Compte de stockageStorage Account Choisissez votre compte de stockage.Choose your storage account.
    ConteneurContainer Choisissez le conteneur que vous avez créé dans votre compte de stockage.Choose the container you created in your storage account.

    Configuration du travail de périphérie Azure Stream Analytics dans Visual Studio

Écrire une fonction C# définie par l’utilisateur avec du code-behindWrite a C# UDF with CodeBehind

Un fichier code-behind est un fichier C# associé à un script de requête ASA Edge.A CodeBehind file is a C# file associated with a single ASA Edge query script. Visual Studio Tools compresse automatiquement le fichier code-behind et le charge sur votre compte de stockage Azure au moment de l’envoi.Visual Studio tools will automatically zip the CodeBehind file and upload it to your Azure storage account upon submission. 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.All classes must be defined as public and all objects must be defined as static public.

  1. Dans l’Explorateur de solutions, développez Script.asql pour rechercher le fichier code-behind Script.asaql.cs.In Solution Explorer, expand Script.asql to find the Script.asaql.cs CodeBehind file.

  2. Remplacez le code par l’exemple suivant :Replace the code with the following sample:

        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’utilisateurImplement the UDF

  1. Dans l’Explorateur de solutions, ouvrez le fichier Script.asaql.In Solution Explorer, open the Script.asaql file.

  2. Remplacez la requête existante par ce qui suit :Replace the existing query with the following:

        SELECT machine.temperature, udf.ASAEdgeUDFDemo_Class1_SquareFunction(try_cast(machine.temperature as bigint))
        INTO Output
        FROM Input 
    

Test localLocal testing

  1. Téléchargez l’exemple de fichier de données du simulateur de température de périphérie.Download the Edge temperature simulator sample data file.

  2. 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.In Solution Explorer, expand Inputs, right-click Input.json, and select Add Local Input.

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

  3. 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.Specify the local input file path for the sample data you downloaded and Save.

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

  4. Cliquez sur Exécuter localement dans l’éditeur de script.Click Run Locally in the script editor. 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.Once the local run has successfully saved the output results, press any key to see the results in table format.

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

  5. Vous pouvez également sélectionner Ouvrir le dossier de résultats pour voir les fichiers bruts au format JSON et CSV.You can also select Open Results Folder to see the raw files in JSON and CSV format.

    Afficher les résultats d’un travail Azure Stream Analytics local avec Visual Studio

Déboguer une fonction définie par l’utilisateurDebug a UDF

Vous pouvez déboguer votre fonction C# définie par l’utilisateur localement de la même façon que du code C# standard.You can debug your C# UDF locally the same way you debug standard C# code.

  1. Ajoutez des points d’arrêt à votre fonction C#.Add breakpoints in your C# function.

    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.Press F5 to start debugging. Le programme s’arrête sur vos points d’arrêt comme prévu.The program will stop at your breakpoints as expected.

    Afficher les résultats de débogage d’une fonction Stream Analytics définie par l’utilisateur

Publier votre travail sur AzurePublish your job to 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.Once you've tested your query locally, select Submit to Azure in the script editor to publish the job to Azure.

Envoyer votre travail de périphérie Stream Analytics sur Azure à partir de Visual Studio

Déployer sur des appareils IoT EdgeDeploy to IoT Edge devices

Votre travail Stream Analytics est maintenant prêt à être déployé en tant que module IoT Edge.Your Stream Analytics job is now ready to be deployed as an IoT Edge module. 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.Follow the IoT Edge quickstart to create an IoT Hub, register an IoT Edge device, and install and start the IoT Edge runtime on your device. Ensuite, suivez le tutoriel Déployer la tâche pour déployer votre travail Stream Analytics en tant que module IoT Edge.Then follow the deploy the job tutorial to deploy your Stream Analytics job as an IoT Edge module.

Étapes suivantesNext steps

Dans ce tutoriel, vous avez créé une fonction C# simple définie par l’utilisateur à l’aide de code-behind, publié votre travail sur Azure, puis déployé celui-ci sur des appareils IoT Edge à l’aide du portail IoT Hub.In this tutorial, you created a simple C# user-defined function using CodeBehind, published your job to Azure, and deployed the job to IoT Edge devices using the IoT Hub portal.

Pour en savoir plus sur les différentes façons d’utiliser des fonctions C# définies par l’utilisateur pour des travaux de périphérie Stream Analytics, passez à cet article :To learn more about the different ways to use C# user-defined functions for Stream Analytics Edge jobs, continue to this article: