Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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:
- Si no tiene una suscripción a Azure, cree una cuenta gratuita.
- Instale herramientas de Stream Analytics para Visual Studio y las cargas de trabajo de desarrollo de Azure o de almacenamiento y procesamiento de datos.
- Eche un vistazo a la guía de desarrollo de Stream Analytics Edge existente si va a crear un trabajo de IoT Edge.
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
Inicie Visual Studio.
Seleccione Archivo > Nuevo > Proyecto.
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.
Escriba el nombre del proyecto, la ubicación y el nombre de la solución y seleccione Aceptar.
Configurar la ruta de acceso del paquete de ensamblaje
Abra Visual Studio y vaya al Explorador de soluciones.
Haga doble clic en el archivo de configuración del trabajo,
JobConfig.json.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.
En el Explorador de soluciones, expanda Script.asql para buscar el archivo Script.asaql.cs CodeBehind.
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
En el Explorador de soluciones, abra el archivo Script.asaql .
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
Descargue el archivo de datos de ejemplo del simulador de temperatura.
En el Explorador de soluciones, expanda Entradas, haga clic con el botón derecho enInput.jsony seleccione Agregar entrada local.
Especifique la ruta del archivo de entrada local para los datos de ejemplo que descargó y Guardar.
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.
También puede seleccionar Abrir carpeta de resultados para ver los archivos sin procesar en formato JSON y CSV.
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#.
Agregue puntos de interrupción en la función de C#.
Presione F5 para iniciar la depuración. El programa se detiene en los puntos de interrupción según lo previsto.
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.
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: