Esercitazione: Deserializzatori .NET personalizzati per Analisi di flusso di Azure in Visual Studio Code (anteprima)
Importante
Il deserializzatore .net personalizzato per Analisi di flusso di Azure verrà ritirato il 30 settembre 2024. Dopo tale data, non sarà possibile usare la funzionalità.
Analisi di flusso di Azure offre il supporto predefinito per tre formati di dati: JSON, CSV e Avro, come illustrato in questo documento. Con deserializzatori .NET personalizzati, è possibile elaborare i dati in altri formati, ad esempio Buffer del protocollo, Bond e altri formati definiti dall'utente per i processi cloud. Questa esercitazione illustra come creare, testare ed eseguire il debug di un deserializzatore .NET personalizzato per un processo di Analisi di flusso di Azure usando Visual Studio Code.
Nello specifico:
- Creare un deserializzatore personalizzato per il buffer di protocollo.
- Creare un processo di Analisi di flusso di Azure in Visual Studio Code.
- Configurare un processo di analisi di flusso per l'uso del deserializzatore personalizzato.
- Eseguire un processo di Analisi di flusso in locale per eseguire il test e il debug del deserializzatore personalizzato.
Prerequisiti
Installare .NET Core SDK e riavviare Visual Studio Code.
Usare questa guida introduttiva per informazioni su come creare un processo di Analisi di flusso con Visual Studio Code.
Creare un deserializzatore personalizzato
Aprire un terminale ed eseguire il comando seguente per creare una libreria di classi .NET in Visual Studio Code per il deserializzatore personalizzato denominato ProtobufDeserializer.
dotnet new classlib -o ProtobufDeserializer
Passare alla directory del progetto ProtobufDeserializer e installare i pacchetti NuGet Microsoft.Azure.StreamAnalytics e Google.Protobuf .
dotnet add package Microsoft.Azure.StreamAnalytics
dotnet add package Google.Protobuf
Aggiungere la classe MessageBodyProto e la classe MessageBodyDeserializer al progetto.
Compilare il progetto ProtobufDeserializer .
Aggiungere un progetto di Analisi di flusso di Azure
Aprire Visual Studio Code e premere CTRL+MAIUSC+P per aprire il riquadro comandi. Immettere quindi ASA e selezionare ASA: Create New Project (AsA: Crea nuovo progetto). Denominarlo ProtobufCloudDeserializer.
Configurare un processo di analisi di flusso
Fare doppio clic su JobConfig.json. Usare le configurazioni predefinite, tranne per le impostazioni seguenti:
Impostazione Valore consigliato Global Storage Settings Resource (Risorsa impostazioni di archiviazione globali) Scegliere l'origine dati dall'account corrente Global Storage Settings Subscription (Sottoscrizione impostazioni di archiviazione globali) < sottoscrizione > Global Storage Settings Storage Account (Account di archiviazione impostazioni di archiviazione globali) < l'account di archiviazione > CustomCode Archiviazione Impostazioni Archiviazione Account < l'account di archiviazione > CustomCode Archiviazione Impostazioni Contenitore < contenitore di archiviazione > In Cartella Input aprire input.json. Selezionare Aggiungi input live e aggiungere un input da Azure Data Lake Archiviazione Gen2/Archiviazione BLOB, scegliere Seleziona dalla sottoscrizione di Azure. Usare le configurazioni predefinite, tranne per le impostazioni seguenti:
Impostazione Valore consigliato Nome Input Abbonamento < sottoscrizione > Account di archiviazione < l'account di archiviazione > Contenitore < contenitore di archiviazione > Tipo di serializzazione Scegliere personalizzato SerializationProjectPath Selezionare Scegli percorso progetto libreria da CodeLens e selezionare il progetto di libreria ProtobufDeserializer creato nella sezione precedente. Selezionare il progetto di compilazione per compilare il progetto SerializationClassName Selezionare la classe di deserializzazione da CodeLens per popolare automaticamente il nome della classe e il percorso della DLL Nome della classe MessageBodyProto.MessageBodyDeserializer Aggiungere la query seguente al file ProtobufCloudDeserializer.asaql .
SELECT * FROM Input
Scaricare il file di input protobuf di esempio. Nella cartella Input fare clic con il pulsante destro del mouse su input.json e scegliere Aggiungi input locale. Fare quindi doppio clic su local_input1.json e usare le configurazioni predefinite, ad eccezione delle impostazioni seguenti.
Impostazione Valore consigliato Selezionare il percorso del file locale Selezionare CodeLens per selezionare < Il percorso del file per il file di input protobuf di esempio scaricato>
Eseguire il processo di analisi di flusso
Aprire ProtobufCloudDeserializer.asaql e selezionare Esegui localmente da CodeLens e quindi scegliere Usa input locale dall'elenco a discesa.
Nella scheda Risultati del diagramma processo è possibile visualizzare i risultati dell'output. È anche possibile fare clic sui passaggi del diagramma di processo per visualizzare il risultato intermedio. Per altri dettagli, vedere Eseguire il debug in locale usando il diagramma dei processi.
È stato implementato correttamente un deserializzatore personalizzato per il processo di Analisi di flusso. In questa esercitazione è stato testato il deserializzatore personalizzato in locale con i dati di input locali. È anche possibile testarlo usando l'input dei dati in tempo reale nel cloud. Per eseguire il processo nel cloud, è necessario configurare correttamente l'input e l'output. Inviare quindi il processo ad Azure da Visual Studio Code per eseguire il processo nel cloud usando il deserializzatore personalizzato implementato.
Eseguire il debug del deserializzatore
È possibile eseguire il debug del deserializzatore .NET in locale esattamente come si esegue il debug di codice .NET standard.
Aggiungere punti di interruzione nella funzione .NET.
Fare clic su Esegui dalla barra attività di Visual Studio Code e selezionare Crea un file launch.json.
Scegliere ProtobufCloudDeserializer e quindi Analisi di flusso di Azure dall'elenco a discesa.
Modificare il file launch.json per sostituire <ASAScript.asaql> con ProtobufCloudDeserializer.asaql.
Premere F5 per avviare il debug. Il programma verrà interrotto in corrispondenza dei punti di interruzione nel modo previsto. Questa operazione funziona sia per i dati di input locale che per i dati di input in tempo reale.
Pulire le risorse
Quando non sono più necessari, eliminare il gruppo di risorse, il processo di streaming e tutte le risorse correlate. Eliminando il processo si evita di pagare per le unità di streaming usate dal processo. Se si prevede di usare il processo in futuro, è possibile arrestarlo e riavviarlo in un secondo momento, quando è necessario. Se non si intende continuare a usare questo processo, eliminare tutte le risorse create da questa esercitazione attenendosi alla procedura seguente:
Scegliere Gruppi di risorse dal menu a sinistra del portale di Azure e quindi selezionare il nome della risorsa creata.
Nella pagina del gruppo di risorse selezionare Elimina, digitare il nome della risorsa da eliminare nella casella di testo e quindi selezionare Elimina.
Passaggi successivi
In questa esercitazione è stato illustrato come implementare un deserializzatore .NET personalizzato per la serializzazione dell'input del buffer di protocollo. Per altre informazioni sulla creazione di deserializzatori personalizzati, continuare con l'articolo seguente: