Condividi tramite


Analizzare Protobuf in Analisi di flusso di Azure

Analisi di flusso di Azure supporta l'elaborazione di eventi nei formati di dati Protobuf (Protocol Buffer). È possibile usare il deserializzatore Protobuf predefinito durante la configurazione degli input. Per usare il deserializzatore predefinito, specificare il file di definizione Protobuf, il tipo di messaggio e lo stile del prefisso.

Nota

Analisi di flusso di Azure non supporta il registro schemi per i formati di dati Protobuf (Protocol Buffer).

Procedura per configurare un processo di Analisi di flusso

Per configurare il processo di Analisi di flusso per deserializzare gli eventi in Protobuf:

  1. Dopo aver creato il processo di Analisi di flusso, selezionare Input.

  2. Selezionare Aggiungi input e quindi selezionare l'input da configurare per aprire il riquadro per la configurazione di input.

  3. Selezionare Formato di serializzazione eventi per visualizzare un elenco a discesa e quindi selezionare Protobuf.

     Screenshot che mostra le selezioni per la configurazione di Protobuf per un processo di Analisi di flusso di Azure.

  4. Completare la configurazione usando le indicazioni seguenti:

    Nome proprietà Descrizione
    File di definizione Protobuf File che specifica la struttura e i tipi di dati degli eventi Protobuf
    Tipo di messaggio Tipo di messaggio da deserializzare
    Stile prefisso Impostazione che determina per quanto tempo un messaggio deve deserializzare correttamente gli eventi Protobuf

     Screenshot che mostra le caselle di input nel riquadro di configurazione per un processo di Analisi di flusso di Azure, dopo aver selezionato Protobuf come formato di serializzazione degli eventi.

Per altre informazioni sui tipi di dati Protobuf, vedere la documentazione ufficiale relativa ai buffer del protocollo.

Limiti

  • Il deserializzatore Protobuf accetta un solo file di definizione Protobuf alla volta. Le importazioni nei file di definizione Protobuf personalizzate non sono supportate. Ad esempio:

     Screenshot che mostra un esempio di file di definizione Protobuf personalizzato.

    Questo file di definizione Protobuf fa riferimento a un altro file di definizione Protobuf nelle importazioni. Poiché il deserializzatore Protobuf avrebbe solo il file di definizione Protobuf corrente e non sa quale carseat.proto è, non sarebbe in grado di deserializzare correttamente.

  • Quando un file di definizione Protobuf contiene uno spazio dei nomi o un pacchetto, il tipo di messaggio deve includerlo. Ad esempio:

     Screenshot che mostra un esempio di file di definizione Protobuf con uno spazio dei nomi.

    Nel deserializzatore Protobuf nel portale, il tipo di messaggio deve essere Namespacetest.Volunteer invece del solito Volunteer.

  • Se il pacchetto o lo spazio dei nomi originale è tutto maiuscolo o minuscolo, il tipo di messaggio deve includerlo con il primo carattere del pacchetto o dello spazio dei nomi in lettere maiuscole. Ad esempio, se lo spazio dei nomi è nameSpaceTest, usare nameSpaceTest.Volunteer. Questa regola si applica a un tipo di messaggio senza uno spazio dei nomi o un pacchetto.

  • È necessario specificare il messaggio nel file di definizione protobuf senza la Optional parola chiave . In Proto 3 tutti i campi sono facoltativi. Ad esempio:

    Screenshot che mostra un esempio di file di definizione Protobuf con parola chiave facoltativa nel messaggio.

    Questo file di definizione Protobuf mostra un messaggio con Optional parola chiave. Per deserializzare correttamente, è necessario rimuovere la parola chiave :

    Screenshot che mostra un esempio di file di definizione Protobuf senza parola chiave facoltativa nel messaggio.

  • Quando si inviano messaggi serializzati tramite google.protobuf, il tipo di prefisso deve essere impostato su base128 perché è il tipo più compatibile con più tipi.

  • I messaggi di servizio non sono supportati nei deserializzatori Protobuf. Il processo genera un'eccezione se si tenta di usare un messaggio di servizio. Ad esempio:

     Screenshot che mostra un esempio di messaggio del servizio.

  • Questi tipi di dati non sono supportati:

    • Any
    • One of (correlati alle enumerazioni)
    • Durations
    • Struct
    • Field Mask (non supportato da protobuf-net)
    • List Value
    • Value
    • Null Value
    • Empty

Nota

Per assistenza diretta sull'uso del deserializzatore Protobuf, inviare un messaggio di posta elettronica a askasa@microsoft.com.

Vedi anche

Tipi di dati in Analisi di flusso di Azure