Proprietà delle sottoscrizioni

Le proprietà di sottoscrizione Pub/Sub sono le caratteristiche di una sottoscrizione. Puoi impostare le proprietà delle sottoscrizioni quando crei o aggiorni una sottoscrizione.

Questo documento descrive le diverse proprietà della sottoscrizione che puoi impostare per un abbonamento.

Prima di iniziare

  • Scopri di più sugli abbonamenti.

  • Comprendi il flusso di lavoro per la sottoscrizione a cui vuoi partecipare. create: Pull, Push o BigQuery.

Proprietà delle sottoscrizioni comuni

Quando crei una sottoscrizione, devi specificare una serie di opzioni per e configurare l'abbonamento. Alcune di queste proprietà sono comuni a tutti i tipi di e verranno trattati nelle sezioni successive.

Tempo di conservazione dei messaggi

L'opzione Durata di conservazione dei messaggi specifica per quanto tempo Pub/Sub conserva i messaggi dopo la pubblicazione. Una volta trascorsa la durata di conservazione dei messaggi, Pub/Sub potrebbe ignorare il messaggio indipendentemente dal stato di conferma del messaggio. Per conservare i messaggi confermati per la durata di conservazione dei messaggi, vedi Riprodurre di nuovo ed eliminare i messaggi.

Di seguito sono riportati i valori dell'opzione Durata di conservazione dei messaggi:

  • Valore predefinito = 7 giorni
  • Valore minimo = 10 minuti
  • Valore massimo = 7 giorni

I messaggi non confermati possono derivare da abbonamenti inattivi, esigenze di backup o l'elaborazione è lenta. Se in grado di elaborare i messaggi entro 24 ore, i costi aggiuntivi sono non sostenute. Per evitare nuovi addebiti, gestisci questi scenari come segue:

  • Abbonamenti inattivi. Eliminare gli abbonamenti inattivi per evitare costi di conservazione dei messaggi di abbonamento.

  • Spazio di archiviazione di backup. Se utilizzi la conservazione degli abbonamenti come spazio di archiviazione di backup, puoi passare a un'altra opzione di archiviazione, conservazione dei messaggi di argomento o la conservazione dei messaggi confermati. La conservazione dei messaggi di un argomento archivia i messaggi una sola volta a livello di argomento e rimangono disponibili per tutti da utilizzare quando necessario.

  • Ritardi nell'elaborazione. Aggiungi altri sottoscrittori (se possibile) per elaborare messaggi entro un giorno.

Conserva messaggi confermati

Se specifichi la Durata di conservazione dei messaggi, puoi anche specificare se vuoi conservare i messaggi confermati.

L'opzione Conserva i messaggi confermati ti consente di conservare i messaggi confermati messaggi per la durata di conservazione dei messaggi specificata. Questa opzione aumenta le tariffe per l'archiviazione dei messaggi. Per ulteriori informazioni, vedi costi di archiviazione.

Periodo di scadenza

L'opzione Periodo di scadenza ti consente di estendere il periodo di scadenza di l'abbonamento.

Abbonamenti senza attività o modifiche degli iscritti delle proprietà dell'abbonamento scadono. Se Pub/Sub rileva attività dell'abbonato o se aggiorni una delle proprietà delle sottoscrizioni, l'orologio per l'eliminazione degli abbonamenti viene riavviato. Esempi di attività degli iscritti che includono connessioni aperte, pull attivi o push riusciti.

Se specifichi il periodo di scadenza, il valore deve essere superiore a alla durata di conservazione dei messaggi specificata Opzione Durata di conservazione dei messaggi.

Di seguito sono riportati i valori per l'opzione Periodo di scadenza:

  • Valore predefinito = 31 giorni
  • Valore minimo = 1 giorno

Per evitare che un abbonamento scada, imposta il periodo di scadenza su never expire.

Scadenza conferma

L'opzione Scadenza conferma specifica la scadenza iniziale, dopo la quale un messaggio non confermato viene inviato nuovamente. Puoi estendere la conferma per ogni singolo messaggio, inviando le ModifyAckDeadline richieste.

Di seguito sono riportati i valori dell'opzione Scadenza di conferma:

  • Valore predefinito = 10 secondi
  • Valore minimo = 10 secondi
  • Valore massimo = 600 secondi

In alcuni casi, le librerie client di Pub/Sub controllare la frequenza di erogazione e modificare dinamicamente la scadenza di conferma. In questo modo, il messaggio potrebbe essere recapitato prima della conferma la scadenza che hai impostato. Per ignorare questo comportamento, usa minDurationPerAckExtension e maxDurationPerAckExtension. Per ulteriori informazioni sull'uso di questi valori, consulta Supporto della distribuzione "exactly-once" nelle librerie client.

Filtro sottoscrizioni

Utilizza l'opzione Filtro sottoscrizioni per specificare una stringa con un espressione di filtro. Se una sottoscrizione ha un filtro, la sottoscrizione recapita solo i messaggi che corrispondono al filtro. Il servizio Pub/Sub automaticamente riconosce i messaggi che non corrispondono al filtro.

  • Puoi filtrare i messaggi in base ai rispettivi attributi, ma non in base ai dati al loro interno.

  • Se non specificata, la sottoscrizione non filtra i messaggi e i sottoscrittori ricevono tutti i messaggi.

  • Non è possibile modificare o rimuovere i filtri una volta applicati.

Quando ricevi i messaggi da una sottoscrizione con un filtro, non devi pagare tariffe del traffico in uscita per i messaggi che Pub/Sub riconosce automaticamente. Ti trovi tariffe e costi di consegna dei messaggi le tariffe di archiviazione correlate a Seek per questi messaggi.

Per ulteriori informazioni, vedi Filtrare i messaggi da una sottoscrizione.

Ordinamento messaggi

Quando una sottoscrizione ha l'ordinamento dei messaggi abilitato, I client sottoscrittori ricevono i messaggi pubblicati nella stessa regione con stessa chiave di ordinamento nell'ordine in cui i messaggi sono stati ricevuti dal servizio.

Quando si utilizza la consegna ordinata, gli avvisi per i messaggi successivi vengono non elaborati finché non vengono elaborati i riconoscimenti per i messaggi precedenti.

Gli editori devono inviare i messaggi con una chiave di ordinamento in modo che Pub/Sub può consegnare i messaggi in ordine.

Se non viene configurato, Pub/Sub potrebbe non recapitano i messaggi in ordine, anche se hanno una chiave di ordinamento.

Argomento messaggi non recapitabili

Quando non è possibile recapitare un messaggio dopo un determinato numero di tentativi di recapito o un sottoscrittore non riesce a confermare il messaggio, puoi configurare un argomento messaggi non recapitabili in cui questi messaggi possono essere ripubblicati.

Se imposti un argomento messaggi non recapitabili, puoi anche specificare il numero massimo di tentativi di recapito. Di seguito sono riportati i valori per il numero massimo di tentativi di consegna per l'argomento messaggi non recapitabili:

  • Valore predefinito = 5 tentativi di recapito
  • Valore minimo = 5 tentativi di recapito
  • Valore massimo = 100 tentativi di recapito

Se l'argomento messaggi non recapitabili si trova in un progetto diverso da quello della sottoscrizione, Inoltre, devi specificare l'ID progetto con l'argomento messaggi non recapitabili.

Per ulteriori informazioni, vedi Inoltro ad argomenti messaggi non recapitabili.

Criterio di ripetizione

Se la scadenza della conferma scade o se l'abbonato risponde con un riscontro negativo, Pub/Sub può inviare messaggio di nuovo. Questo tentativo di ripubblicazione è noto come criterio relativo ai nuovi tentativi dell'abbonamento.

Per impostazione predefinita, il criterio per i nuovi tentativi per una sottoscrizione è impostato su utilizza Riprova immediatamente. Con questa opzione, Pub/Sub invia di nuovo il messaggio alla scadenza di conferma scade o un abbonato risponde con un messaggio di conferma negativa.

Puoi anche impostare il valore su Riprova dopo un ritardo di backoff esponenziale. In questo caso, devi specificare i valori di backoff massimo e minimo.

Di seguito sono riportate alcune linee guida per impostare i valori massimi e valori minimi di backoff:

  • Se imposti il valore massimo per la durata del backoff, il valore predefinito per il valore minimo la durata del backoff è di 10 secondi.

  • Se imposti il valore minimo per la durata del backoff, il valore predefinito la durata massima del backoff è di 600 secondi.

  • La durata di backoff più lunga che puoi specificare è 600 secondi.

Criterio di ripetizione e messaggi in batch

Se i messaggi sono in batch, Pub/Sub avvia la il backoff quando si verifica una delle seguenti condizioni:

  • Il sottoscrittore invia una conferma negativa per ogni messaggio nel batch.

  • La scadenza per la conferma scade.

Criterio di ripetizione ed esecuzione push della sottoscrizione

Se ricevi messaggi da una sottoscrizione push, Pub/Sub potrebbe Inviare di nuovo i messaggi dopo il backoff del push anziché la durata del backoff esponenziale. Quando il backoff del push è più lungo rispetto alla durata del backoff esponenziale, Pub/Sub invia nuovamente non confermati dopo il backoff del push.

Proprietà delle sottoscrizioni pull

Quando configuri una sottoscrizione pull, puoi specificare quanto segue proprietà.

Consegna "exactly-once"

Consegna "exactly-once". Se impostato, Pub/Sub soddisfa Garanzie di consegna exactly-once. Se non specificato, l'abbonamento supporta consegna at-least-once di ogni messaggio.

Proprietà delle sottoscrizioni push

Quando configuri una sottoscrizione push, puoi specificare quanto segue proprietà.

Endpoint

URL endpoint (obbligatorio). Un indirizzo HTTPS pubblicamente accessibile. Il server per il push l'endpoint deve avere un certificato SSL valido firmato da un'autorità di certificazione. Il servizio Pub/Sub consegna i messaggi da cui eseguire il push degli endpoint nella stessa regione Google Cloud del servizio Pub/Sub archivia i messaggi. Il servizio Pub/Sub recapita i messaggi nella stessa regione Google Cloud secondo il criterio del "best effort".

Pub/Sub non richiede più la prova della proprietà per il push domini URL di abbonamento. Se il tuo dominio riceve richieste POST impreviste da Pub/Sub, puoi segnalare i presunti abusi.

Autenticazione

Attiva autenticazione. Quando questa opzione è abilitata, i messaggi consegnati da Pub/Sub all'endpoint push includono un'intestazione di autorizzazione a per consentire all'endpoint di autenticare la richiesta. Autenticazione automatica e sono disponibili meccanismi di autorizzazione per gli endpoint App Engine Standard e Cloud Functions ospitati nello stesso progetto dell'abbonamento.

La configurazione dell'autenticazione di un abbonamento push autenticato è costituito da un account di servizio gestito dall'utente, e i parametri dei segmenti di pubblico sono specificati in un elemento create, patch, o ModifyPushConfig chiamata. Devi inoltre concedere un ruolo specifico a un agente di servizio, come illustrato in nella prossima sezione.

  • Account di servizio gestito dall'utente (obbligatorio). L'account di servizio associato al push abbonamento. Questo account viene utilizzato come attestazione email del token JWT (JSON Web Token) generato. Di seguito è riportato un elenco dei requisiti per l'account di servizio:

  • Pubblico. Una singola stringa senza distinzione tra maiuscole e minuscole a cui il webhook per convalidare il pubblico previsto di questo particolare token.

  • Agente di servizio (obbligatorio).

    • Pub/Sub crea automaticamente un account di servizio per te con il formato service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com.

    • A questo agente di servizio deve essere concesso Autorizzazione iam.serviceAccounts.getOpenIdToken (inclusa in roles/iam.serviceAccountTokenCreator ) per consentire a Pub/Sub di creare token JWT per richieste push autenticate.

Annullamento del wrapping del payload

L'opzione Abilita l'annullamento del wrapping del payload rimuove Pub/Sub messaggi di tutti i metadati dei messaggi, ad eccezione dei dati dei messaggi. Con carico utile l'unwrapping, i dati del messaggio vengono consegnati direttamente come corpo HTTP.

  • Scrivi metadati. Aggiunge di nuovo i metadati del messaggio rimossi in precedenza nel l'intestazione della richiesta.

Proprietà BigQuery

Se selezioni un tipo di consegna sottoscrizione come Scrivi in BigQuery, puoi specificare le seguenti proprietà aggiuntive.

Utilizza schema argomento

Questa opzione consente a Pub/Sub di utilizzare lo schema dell'argomento Pub/Sub a cui è allegato. Inoltre, Pub/Sub scrive i campi dei messaggi nella casella colonne nella tabella BigQuery.

Quando utilizzi questa opzione, ricordati di controllare i seguenti requisiti aggiuntivi:

  • I campi dello schema dell'argomento e dello schema BigQuery devono avere gli stessi nomi e i tipi devono essere compatibili tra loro.

  • Anche qualsiasi campo facoltativo nello schema dell'argomento deve essere sono facoltative nello schema BigQuery.

  • I campi obbligatori nello schema dell'argomento non devono essere necessariamente richiesta nello schema BigQuery.

  • Se sono presenti campi BigQuery non presenti in lo schema dell'argomento, questi campi BigQuery deve essere in modalità NULLABLE.

  • Se lo schema dell'argomento ha campi aggiuntivi che non sono presenti nello schema BigQuery e questi ultimi seleziona l'opzione Rilascia campi sconosciuti.

  • Puoi selezionare solo una delle proprietà della sottoscrizione, Utilizza schema argomento. o Utilizza schema della tabella.

Se non selezioni l'opzione Utilizza schema argomento o Utilizza schema della tabella, assicurati che la tabella BigQuery abbia una colonna denominata data di digita BYTES, STRING o JSON. Pub/Sub scrive il messaggio colonna BigQuery.

Potresti non vedere le modifiche allo schema degli argomenti Pub/Sub o Lo schema della tabella BigQuery viene applicato immediatamente con i messaggi vengono scritte nella tabella BigQuery. Ad esempio, se il campo Drop campi sconosciuti è abilitata ed è presente un campo nella dello schema Pub/Sub, ma non di BigQuery, i messaggi scritti nella tabella BigQuery potrebbero non contenere il campo dopo averlo aggiunto allo schema di BigQuery. In seguito, gli schemi sincronizzati e i messaggi successivi includono il campo.

Quando utilizzi l'opzione Utilizza schema argomento per BigQuery di abbonamento, puoi anche sfruttare la modifica acquisizione dei dati (CDC). CDC aggiorna le tabelle BigQuery l'elaborazione e l'applicazione di modifiche alle righe esistenti.

Per saperne di più su questa funzionalità, consulta Flusso di aggiornamenti delle tabelle con Change Data Capture (CDC).

Per scoprire come utilizzare questa funzionalità con le sottoscrizioni BigQuery, consulta Change Data Capture (CDC) di BigQuery.

Utilizza schema tabella

Questa opzione consente a Pub/Sub di utilizzare lo schema Tabella BigQuery per scrivere i campi di un file JSON nelle colonne corrispondenti. Quando utilizzi questa opzione, ricordati di verifica i seguenti requisiti aggiuntivi:

  • I messaggi pubblicati devono essere in formato JSON.

  • Se l'argomento della sottoscrizione ha uno schema associato, la proprietà di codifica dei messaggi deve essere impostata su JSON.

  • Se sono presenti campi BigQuery non presenti in i messaggi, questi campi di BigQuery devono essere in modalità NULLABLE.

  • Se i messaggi contengono campi aggiuntivi che non sono presenti Schema BigQuery e questi campi possono essere eliminati, seleziona il opzione Trascina campi sconosciuti.

  • Nel messaggio JSON, valori DATE, DATETIME, TIME e TIMESTAMP devono essere numeri interi che rispettano le rappresentazioni supportate.

  • Nel messaggio JSON, i valori NUMERIC e BIGNUMERIC devono essere codificati in byte utilizzando BigDecimalByteStringEncoder.

  • Puoi selezionare solo una delle proprietà della sottoscrizione, Utilizza schema argomento. o Utilizza schema della tabella.

Se non selezioni l'opzione Utilizza schema argomento o Utilizza schema della tabella, assicurati che la tabella BigQuery abbia una colonna denominata data di digita BYTES, STRING o JSON. Pub/Sub scrive il messaggio colonna BigQuery.

Potresti non vedere le modifiche allo schema della tabella BigQuery ha effetto immediato con i messaggi scritti nella tabella BigQuery. Ad esempio, se l'opzione Rilascia campi sconosciuti è abilitata e un campo viene dei messaggi, ma non dello schema BigQuery. i messaggi scritti nella tabella BigQuery potrebbero non contenere il campo dopo averlo aggiunto allo schema di BigQuery. In seguito, lo schema si sincronizza e i messaggi successivi includono il campo.

Quando utilizzi l'opzione Utilizza schema della tabella per la tua sottoscrizione BigQuery, puoi possono anche sfruttare la tecnologia Change Data Capture (CDC) di BigQuery. CDC aggiorna le tabelle BigQuery elaborando e applicando modifiche alle righe.

Per saperne di più su questa funzionalità, consulta Flusso di aggiornamenti delle tabelle con Change Data Capture (CDC).

Per informazioni su come utilizzare questa funzionalità con le sottoscrizioni BigQuery, consulta Acquisizione dei dati sulle modifiche a BigQuery.

Rilascia campi sconosciuti

Questa opzione viene utilizzata con Utilizza schema argomento o Utilizza schema tabella. . Questa opzione consente a Pub/Sub di eliminare qualsiasi campo presente nell'argomento. nello schema o nel messaggio, ma non nello schema BigQuery. Senza Drop sconosciuto campi impostati, i messaggi con campi aggiuntivi non vengono scritti in in BigQuery e rimangono nel backlog della sottoscrizione. La termina con uno stato di errore.

Scrivi metadati

Questa opzione consente a Pub/Sub scrivere i metadati di ciascun messaggio in colonne aggiuntive Tabella BigQuery. In caso contrario, i metadati non viene scritto nella tabella BigQuery.

Se selezioni l'opzione Scrivi metadati, assicurati che il valore La tabella BigQuery contiene i campi descritti nella seguente tabella.

Se non selezioni l'opzione Scrivi metadati, la tabella BigQuery di destinazione richiede solo il campo data, a meno che use_topic_schema è vero. Se selezioni sia Scrivi metadati che Utilizza lo schema dell'argomento; lo schema dell'argomento deve essere Non devono contenere campi con nomi corrispondenti a quelli dei parametri dei metadati. Questa limitazione include le versioni camelcase di questi parametri snake case.

Parametri
subscription_name

STRINGA

Nome di una sottoscrizione.

message_id

STRINGA

ID di un messaggio

publish_time

TIMESTAMP

L'ora di pubblicazione di un messaggio.

data

BYTES, STRING o JSON

Il corpo del messaggio.

Il campo data è obbligatorio per tutte le destinazioni Le tabelle BigQuery che non selezionano Utilizza schema dell'argomento o Utilizza schema della tabella. Se è di tipo JSON, il corpo del messaggio deve essere JSON valido.

attributes

STRING o JSON

Un oggetto JSON contenente tutti gli attributi dei messaggi. Inoltre, contiene altri campi che fanno parte il messaggio Pub/Sub, inclusa la chiave di ordinamento, se presente.

Proprietà di Cloud Storage

Quando selezioni un tipo di consegna delle sottoscrizioni come Scrivi in Cloud Storage, puoi specificare le seguenti proprietà aggiuntive.

Nome bucket

Prima di creare un bucket Cloud Storage, deve esistere già un bucket abbonamento a Cloud Storage.

I messaggi vengono inviati in batch e archiviati nel bucket Cloud Storage. Un singolo batch o file viene archiviato come oggetto nel bucket.

Il bucket Cloud Storage deve avere Pagamenti a carico del richiedente disattivata.

Per creare un bucket Cloud Storage, consulta Crea bucket.

Prefisso, suffisso e data/ora del nome file

I file Cloud Storage di output generati da Cloud Storage vengono archiviati come oggetti nel bucket Cloud Storage. Il nome dell'oggetto archiviato nel bucket Cloud Storage è del seguente formato: <file-prefix><UTC-date-time>_<uuid><file-suffix>.

Il seguente elenco include i dettagli del formato file e i campi che personalizzare:

  • <file-prefix> è il prefisso del nome file personalizzato. Questo campo è facoltativo.

  • <UTC-date-time> è una stringa personalizzabile generata automaticamente in base all'ora viene creato l'oggetto.

  • <uuid> è una stringa casuale generata automaticamente per l'oggetto.

  • <file-suffix> è il suffisso del nome file personalizzato. Questo campo è facoltativo. La Il suffisso del nome file non può terminare con "/".

  • Puoi modificare il prefisso e il suffisso del nome file:

    • Ad esempio, se il valore del prefisso del nome file è prod_ e il valore di il suffisso del nome file è _archive, il nome di un oggetto di esempio è prod_2023-09-25T04:10:00+00:00_uN1QuE_archive.

    • Se non specifichi il prefisso e il suffisso del nome file, il nome dell'oggetto archiviato nel bucket Cloud Storage è nel formato: <UTC-date-time>_<uuid>.

    • I requisiti di denominazione degli oggetti di Cloud Storage si applicano anche al nome file il prefisso e il suffisso. Per ulteriori informazioni, vedi Informazioni sugli oggetti Cloud Storage.

  • È possibile modificare la modalità di visualizzazione di data e ora nel nome file:

    • Matcher data/ora obbligatori che puoi utilizzare solo una volta: year (YYYY o YY), mese (MM), giorno (DD), ora (hh), minuto (mm), secondo (ss). Ad esempio, YY-YYYY o MMM non è valido.

    • Corrispondenza facoltativi che puoi utilizzare una sola volta: separatore data/ora (T) e e la differenza di fuso orario (Z o +00:00).

    • Elementi facoltativi che puoi utilizzare più volte: trattino (-), trattino basso (_), due punti (:) e barra (/).

    • Ad esempio, se il valore del formato data/ora nome file è YYYY-MM-DD/hh_mm_ssZ, il nome di un oggetto di esempio è prod_2023-09-25/04_10_00Z_uNiQuE_archive.

    • Se il formato data/ora del nome file termina con un carattere che non è un matcher, questo carattere sostituirà il separatore tra <UTC-date-time> e <uuid>. Ad esempio, se il valore del formato data/ora nome file è YYYY-MM-DDThh_mm_ss-, il nome di un oggetto di esempio è prod_2023-09-25T04_10_00-uNiQuE_archive.

Batch di file

Le sottoscrizioni Cloud Storage ti consentono di decidere quando creare un nuovo file di output archiviato come oggetto in Cloud Storage di sincronizzare la directory di una VM con un bucket. Pub/Sub scrive un file di output quando uno dei sono soddisfatte le condizioni di raggruppamento specificate. Di seguito sono riportate le Condizioni di raggruppamento in batch di Cloud Storage:

  • Durata massima batch di archiviazione. Questa impostazione è obbligatoria. La La sottoscrizione Cloud Storage scrive un nuovo file di output se viene superato il valore specificato per la durata massima. In caso contrario specifica il valore, viene applicato un valore predefinito di 5 minuti. Di seguito sono riportati i valori applicabili per la durata massima:

    • Valore minimo = 1 minuto
    • Valore predefinito = 5 minuti
    • Valore massimo = 10 minuti
  • Byte massimi batch di archiviazione. Questa impostazione è facoltativa. La La sottoscrizione Cloud Storage scrive un nuovo file di output se è stato superato il valore massimo di byte specificato. Di seguito sono riportate le valori per i byte massimi:

    • Valore minimo = 1 kB
    • Valore massimo = 10 GiB

Ad esempio, puoi configurare una durata massima di 6 minuti e per un massimo di 2 GB. Se al quarto minuto il file di output raggiunge di 2 GB, Pub/Sub finalizza il file precedente e inizia scrivendo in un nuovo file.

Una sottoscrizione Cloud Storage potrebbe scrivere su più file in un a un bucket Cloud Storage contemporaneamente. Se hai configurato di creare un nuovo file ogni 6 minuti, potresti osservare più file Cloud Storage creati ogni 6 minuti.

In alcune situazioni, Pub/Sub potrebbe iniziare a scrivere in un nuovo prima dell'ora configurata dalle condizioni di raggruppamento dei file. Un file potrebbe anche superare il valore Max byte se la sottoscrizione riceve messaggi di dimensioni maggiori del valore "Max byte".

Formato file

Quando crei una sottoscrizione Cloud Storage, puoi specificare il formato dei file di output da archiviare bucket Cloud Storage come Text o Avro.

  • Testo: i messaggi vengono archiviati come testo normale. Un carattere di nuova riga separa un messaggio dal messaggio precedente nel file. Solo messaggio vengono archiviati i payload, non gli attributi o altri metadati.

  • Avro: i messaggi vengono archiviati in Apache Avro binario. Quando selezioni Avro, puoi attivare le seguenti proprietà aggiuntive:

    • Scrivi metadati: questa opzione consente di archiviare i metadati del messaggio insieme al messaggio. I metadati come i campi subscription_name, message_id, publish_time e attributes vengono scritti nei campi di primo livello dell'oggetto Avro di output, mentre tutte le altre proprietà dei messaggi diverse dai dati (ad esempio, una order_key, se presente) vengono aggiunte come voci nella mappa attributes.

      Se la funzionalità di scrittura dei metadati è disabilitata, solo il payload del messaggio viene scritto nell'oggetto Avro di output. Ecco lo schema Avro per i messaggi di output con i metadati di scrittura disabilitati:

      {
        "type": "record",
        "namespace": "com.google.pubsub",
        "name": "PubsubMessage",
        "fields": [
          { "name": "data", "type": "bytes" }
        ]
      }
      

      Ecco lo schema Avro per i messaggi di output con i metadati di scrittura abilitati:

      {
        "type": "record",
        "namespace": "com.google.pubsub",
        "name": "PubsubMessageWithMetadata",
        "fields": [
          { "name": "subscription_name", "type": "string" },
          { "name": "message_id", "type": "string"  },
          { "name": "publish_time", "type": {
              "type": "long",
              "logicalType": "timestamp-micros"
            }
          },
          { "name": "attributes", "type": { "type": "map", "values": "string" } },
          { "name": "data", "type": "bytes" }
        ]
      }
      
    • Utilizza schema argomento: questa opzione consente a Pub/Sub di utilizzare lo schema schema dell'argomento Pub/Sub a cui l'abbonamento è allegato quando scrivi file Avro.

      Quando utilizzi questa opzione, ricordati di controllare i seguenti requisiti aggiuntivi:

      • Lo schema dell'argomento deve essere in formato Apache Avro.

      • Se sono abilitate le opzioni Utilizza schema argomento e Scrivi metadati, lo schema dell'argomento deve avere un oggetto Record nella directory principale. Pub/Sub espanderà l'elenco dei campi del record in modo da includere i campi dei metadati. Di conseguenza, il record non può contenere campi con lo stesso nome dei campi dei metadati (subscription_name, message_id, publish_time o attributes).

Passaggi successivi