Tutorial: deserializadores de .NET personalizados para Azure Stream Analytics en Visual Studio Code (versión preliminar)
Importante
El deserializador de .NET personalizado para Azure Stream Analytics se retirará el 30 de septiembre de 2024. Después de esa fecha, no será posible usar la característica.
Azure Stream Analytics tiene compatibilidad integrada con tres formatos de datos: JSON, CSV y Avro, como se indica en este documento. Con los deserializadores de .NET personalizados, puede procesar datos en otros formatos, como búfer de protocolo, Bond y otros formatos definidos por el usuario para trabajos en la nube. En este tutorial se muestra cómo crear, probar y depurar un deserializador de .NET personalizado para un trabajo de Azure Stream Analytics mediante Visual Studio Code.
Aprenderá a:
- Crear un deserializador personalizado para el búfer de protocolo.
- Creación de un trabajo de Azure Stream Analytics en Visual Studio Code.
- Configurar el trabajo de Stream Analytics para usar el deserializador personalizado.
- Ejecutar de forma local el trabajo de Stream Analytics para probar y depurar el deserializador personalizado.
Prerrequisitos
Instale el SDK de .NET Core y reinicie Visual Studio Code.
Use este inicio rápido para aprender a crear un trabajo de Stream Analytics mediante Visual Studio Code.
Creación de un deserializador personalizado
Abra un terminal y ejecute el siguiente comando para crear una biblioteca de clases de .NET en Visual Studio Code para el deserializador personalizado llamado ProtobufDeserializer.
dotnet new classlib -o ProtobufDeserializer
Vaya al directorio del proyecto ProtobufDeserializer e instale los paquetes NuGet Microsoft.Azure.StreamAnalytics y Google.Protobuf.
dotnet add package Microsoft.Azure.StreamAnalytics
dotnet add package Google.Protobuf
Agregue la clase MessageBodyProto y la clase MessageBodyDeserializer al proyecto.
Compile el proyecto ProtobufDeserializer.
Incorporación de un proyecto de Azure Stream Analytics
Abra Visual Studio Code y seleccione Ctrl+Mayús+P para abrir la paleta de comandos. A continuación, escriba ASA y seleccione ASA: Crear nuevo proyecto. Asígnele el nombre ProtobufCloudDeserializer.
Configuración de un trabajo de Stream Analytics
Haga doble clic en JobConfig.json. Use las configuraciones predeterminadas, excepto las siguientes:
Configuración Valor sugerido Recurso de configuración de almacenamiento global Selección del origen de datos desde la cuenta actual Suscripción de configuración de almacenamiento global < su suscripción > Cuenta de almacenamiento de la configuración de almacenamiento global < su cuenta de almacenamiento > Cuenta de almacenamiento de la configuración CustomCodeStorage < su cuenta de almacenamiento > Contenedor de configuración CustomCodeStorage < su contenedor de almacenamiento > En la carpeta Entradas, abra input.json. Seleccione Add live input (Agregar entrada en directo), agregue una entrada desde Azure Data Lake Storage Gen2/Blob Storage y elija Seleccionar en las suscripciones de Azure. Use las configuraciones predeterminadas, excepto las siguientes:
Configuración Valor sugerido Nombre Entrada Suscripción < su suscripción > Cuenta de almacenamiento < su cuenta de almacenamiento > Contenedor < su contenedor de almacenamiento > Tipo de serialización Elija Personalizado SerializationProjectPath Seleccione Choose library project path (Selección de la ruta de acceso de proyecto de biblioteca) de CodeLens y seleccione el proyecto de biblioteca ProtobufDeserializer creado en la sección anterior. Seleccione compilar proyecto para compilar el proyecto SerializationClassName Seleccione select deserialization class (seleccionar clase de deserialización) de CodeLens para rellenar automáticamente el nombre de clase y la ruta de acceso del archivo DLL Class Name (Nombre de clase) MessageBodyProto.MessageBodyDeserializer Agregue la siguiente consulta al archivo ProtobufCloudDeserializer.asaql.
SELECT * FROM Input
Descargue el archivo de entrada de ejemplo protobuf. En la carpeta Entradas, haga clic con el botón derecho en input.json y seleccione Agregar entrada local. A continuación, haga doble clic en local_input1.json y use las configuraciones predeterminadas, excepto las siguientes.
Configuración Valor sugerido Selección de la ruta de acceso de archivo local Seleccione CodeLens para seleccionar < La ruta de acceso del archivo de entrada de protobuf de ejemplo descargado>
Ejecución del trabajo de Stream Analytics
Abra ProtobufCloudDeserializer.asaql, seleccione Run Locally (Ejecutar localmente) de CodeLens y, a continuación, elija Use Local Input (Usar entrada local) en la lista desplegable.
En la pestaña Resultados del diagrama de trabajos, puede ver los resultados de salida. También puede hacer clic en los pasos del diagrama de trabajo para ver el resultado intermedio. Para obtener más detalles, consulte el artículo sobre cómo depurar localmente mediante el diagrama de trabajo.
Ha implementado correctamente un deserializador personalizado para el trabajo de Stream Analytics. En este tutorial, ha probado el deserializador personalizado localmente con datos de entrada locales. También puede probarlo mediante la entrada de datos en directo en la nube. Para ejecutar el trabajo en la nube, configuraría correctamente la entrada y la salida. Después, envíe el trabajo a Azure desde Visual Studio Code para ejecutar el trabajo en la nube con el deserializador personalizado que implementó.
Depuración del deserializador
Puede depurar el deserializador de .NET localmente de la misma manera que el código de .NET estándar.
Agregue puntos de interrupción a la función de .NET.
Haga clic en Ejecutar desde la barra de actividad de Visual Studio Code y seleccione crear un archivo launch.json.
Elija ProtobufCloudDeserializer y, a continuación, Azure Stream Analytics en la lista desplegable.
Edite el archivo launch.json para reemplazar <ASAScript>.asaql por ProtobufCloudDeserializer.asaql.
Pulse F5 para iniciar la depuración. El programa se detendrá en los puntos de interrupción según lo previsto. Esto funciona para los datos de entrada local y de entrada en directo.
Limpieza de recursos
Cuando no los necesite, elimine el grupo de recursos, el trabajo de streaming y todos los recursos relacionados. La eliminación del trabajo evita la facturación de las unidades de streaming utilizadas por el trabajo. Si piensa utilizar el trabajo en el futuro, puede detenerlo y volver a iniciarlo más adelante cuando sea necesario. Si no va a seguir usando este trabajo, siga estos pasos para eliminar todos los recursos creados en este tutorial:
En el menú de la izquierda de Azure Portal, seleccione Grupos de recursos y luego el nombre del recurso que creó.
En la página del grupo de recursos, seleccione Eliminar, escriba el nombre del recurso que quiere eliminar en el cuadro de texto y, luego, seleccione Eliminar.
Pasos siguientes
En este tutorial, aprendió a implementar un deserializador de .NET personalizado para la serialización de entrada del búfer de protocolo. Para más información sobre la creación de deserializadores personalizados, continúe con el siguiente artículo: