Compartir vía


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

  1. 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
    
  2. 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
    
  3. Agregue la clase MessageBodyProto y la clase MessageBodyDeserializer al proyecto.

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

  1. 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 >
  2. 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 una entrada de deserializador personalizada.

  3. Agregue la siguiente consulta al archivo ProtobufCloudDeserializer.asaql.

    SELECT * FROM Input
    
  4. 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

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

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

    Compruebe el resultado de ejecución local.

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.

  1. Agregue puntos de interrupción a la función de .NET.

  2. Haga clic en Ejecutar desde la barra de actividad de Visual Studio Code y seleccione crear un archivo launch.json. Cree el archivo de inicio.

    Elija ProtobufCloudDeserializer y, a continuación, Azure Stream Analytics en la lista desplegable. Cree el archivo de inicio 2.

    Edite el archivo launch.json para reemplazar <ASAScript>.asaql por ProtobufCloudDeserializer.asaql. Configure el archivo de inicio.

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

    Depure el deserializador personalizado.

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:

  1. En el menú de la izquierda de Azure Portal, seleccione Grupos de recursos y luego el nombre del recurso que creó.

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