Compartir vía


Tutorial: Escritura de una función definida por el usuario de C# para el trabajo de Azure Stream Analytics (versión preliminar)

Importante

Las funciones definidas por el usuario de .Net Standard para Azure Stream Analytics se retirarán el 30 de septiembre de 2024. Después de esa fecha, no será posible usar la característica. Realice la transición a funciones definidas por el usuario de JavaScript para Azure Stream Analytics.

Las funciones definidas por el usuario (UDF) de C# creadas en Visual Studio le permiten ampliar el lenguaje de consulta de Azure Stream Analytics con sus propias funciones. Puede reutilizar el código existente (incluidos los archivos DLL) y usar lógica matemática o compleja con C#. Hay tres maneras de implementar UDF:

  • Archivos de CodeBehind en un proyecto de Stream Analytics
  • UDF de un proyecto de C# local
  • UDF de un paquete existente de una cuenta de almacenamiento.

En este tutorial se usa el método CodeBehind para implementar una función básica de C#. La característica UDF para trabajos de Stream Analytics está actualmente en versión preliminar y no debe usarse en cargas de trabajo de producción.

En este tutorial, aprenderá a:

  • Cree una función definida por el usuario de C# mediante CodeBehind.
  • Pruebe el trabajo de Stream Analytics localmente.
  • Publique el trabajo en Azure.

Prerrequisitos

Antes de empezar, asegúrese de que ha completado los siguientes requisitos previos:

Creación de un contenedor en la cuenta de Azure Storage

El contenedor que crea se usa para almacenar el paquete de C# compilado. Si crea un trabajo de Edge, esta cuenta de almacenamiento también se usa para implementar el paquete en el dispositivo IoT Edge. Use un contenedor dedicado para cada trabajo de Stream Analytics. No se admite la reutilización del mismo contenedor para varios trabajos perimetrales de Stream Analytics. Si ya tiene una cuenta de almacenamiento con contenedores existentes, puede usarlas. Si no es así, debe crear un nuevo contenedor.

Creación de un proyecto de Stream Analytics en Visual Studio

  1. Inicie Visual Studio.

  2. Seleccione Archivo > Nuevo > Proyecto.

  3. En la lista de plantillas de la izquierda, seleccione Stream Analytics y, a continuación, seleccione Aplicación perimetral de Azure Stream Analytics o Aplicación de Azure Stream Analytics.

  4. Escriba el nombre del proyecto, la ubicación y el nombre de la solución y seleccione Aceptar.

    Creación de un proyecto perimetral de Azure Stream Analytics en Visual Studio

Configurar la ruta de acceso del paquete de ensamblaje

  1. Abra Visual Studio y vaya al Explorador de soluciones.

  2. Haga doble clic en el archivo de configuración del trabajo, JobConfig.json.

  3. Expanda la sección Configuración de código definido por el usuario y complete la configuración con los siguientes valores sugeridos:

    Configuración Valor sugerido
    Recurso de configuración de almacenamiento global Elija el origen de datos de la cuenta actual
    Suscripción a la configuración global de almacenamiento < su suscripción >
    Configuraciones Globales de Almacenamiento Cuenta de Almacenamiento < su cuenta de almacenamiento >
    Recurso de configuración de almacenamiento para código personalizado Elija el origen de datos de la cuenta actual
    Cuenta de almacenamiento de configuración de almacenamiento de código personalizado < su cuenta de almacenamiento >
    Contenedor de configuración de almacenamiento de código personalizado < su contenedor de almacenamiento >

Escritura de una UDF de C# con CodeBehind

Un archivo CodeBehind es un archivo de C# asociado a un único script de consulta ASA. Las herramientas de Visual Studio comprimen automáticamente el archivo CodeBehind y lo cargan en la cuenta de Almacenamiento de Azure tras su envío. Todas las clases deben definirse como públicas y todos los objetos deben definirse como públicos estáticos.

  1. En el Explorador de soluciones, expanda Script.asql para buscar el archivo Script.asaql.cs CodeBehind.

  2. Reemplace el código por el ejemplo siguiente:

        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; 
                } 
            } 
        } 
    

Implementación de la UDF

  1. En el Explorador de soluciones, abra el archivo Script.asaql .

  2. Reemplace la consulta existente por la consulta siguiente:

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

Pruebas locales

  1. Descargue el archivo de datos de ejemplo del simulador de temperatura.

  2. En el Explorador de soluciones, expanda Entradas, haga clic con el botón derecho enInput.jsony seleccione Agregar entrada local.

    Adición de una entrada local al trabajo de Stream Analytics en Visual Studio

  3. Especifique la ruta del archivo de entrada local para los datos de ejemplo que descargó y Guardar.

    Configuración de entrada local para el trabajo de Stream Analytics en Visual Studio

  4. Haga clic en Ejecutar localmente en el editor de scripts. Una vez que la ejecución local haya guardado correctamente los resultados de la salida, presione cualquier tecla para ver los resultados en formato de tabla.

    Ejecución local del trabajo de Azure Stream Analytics con Visual Studio

  5. También puede seleccionar Abrir carpeta de resultados para ver los archivos sin procesar en formato JSON y CSV.

    Visualización de los resultados del trabajo local de Azure Stream Analytics con Visual Studio

Depuración de una UDF

Puede depurar la UDF de C# localmente de la misma manera que depura el código estándar de C#.

  1. Agregue puntos de interrupción en la función de C#.

    Adición de puntos de interrupción a la función definida por el usuario de Stream Analytics en Visual Studio

  2. Presione F5 para iniciar la depuración. El programa se detiene en los puntos de interrupción según lo previsto.

    Visualización de los resultados de depuración de funciones definidas por el usuario de Stream Analytics

Publicación del trabajo en Azure

Una vez que haya probado la consulta localmente, seleccione Enviar a Azure en el editor de scripts para publicar el trabajo en Azure.

Enviar un trabajo de Stream Analytics en dispositivos perimetrales a Azure desde Visual Studio

Implementación en dispositivos IoT Edge

Si decide compilar un trabajo de Stream Analytics Edge, ahora se puede implementar como un módulo de IoT Edge. Siga el inicio rápido de IoT Edge para crear una instancia de IoT Hub, registrar un dispositivo IoT Edge e instalar e iniciar el entorno de ejecución de IoT Edge en el dispositivo. A continuación, siga el tutorial de implementación del trabajo para implementar el trabajo de Stream Analytics como un módulo de IoT Edge.

Pasos siguientes

En este tutorial, ha creado una función sencilla definida por el usuario de C# mediante CodeBehind, ha publicado el trabajo en Azure e implementado el trabajo en el dispositivo Azure o IoT Edge.

Para más información sobre las distintas formas de usar funciones definidas por el usuario de C# para trabajos de Stream Analytics, continúe con este artículo: