Questo documento spiega come creare un argomento Pub/Sub con le trasformazioni di singoli messaggi (SMT).
Le SMT degli argomenti consentono di apportare modifiche leggere ai dati e agli attributi dei messaggi direttamente in Pub/Sub. Questa funzionalità consente di pulire, filtrare o convertire il formato dei dati prima che i messaggi vengano pubblicati nell'argomento.
Per creare un argomento con le SMT, puoi utilizzare la Google Cloud console, Google Cloud CLI, la libreria client o l'API Pub/Sub.
Prima di iniziare
Scopri di più sul servizio Pub/Sub e sulla sua terminologia.
Scopri di più sulle SMT.
Ruoli e autorizzazioni richiesti
Per ottenere l'autorizzazione necessaria per creare un argomento con le SMT,
chiedi all'amministratore di concederti il
ruolo IAM Pub/Sub Editor (roles/pubsub.editor) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene l'
pubsub.topics.create
autorizzazione,
necessaria per
creare un argomento con le SMT.
Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.
Creare un argomento con le SMT
Prima di creare un argomento con le SMT, consulta la documentazione relativa alle proprietà di un argomento.
Per creare un argomento Pub/Sub con una o più SMT, segui questi passaggi. Puoi abilitare fino a 5 SMT per argomento.
Console
Nella Google Cloud console, vai alla pagina Argomenti di Pub/Sub.
Fai clic su Crea argomento.
Nel campo ID argomento, inserisci un ID per l'argomento. Per saperne di più sulla denominazione degli argomenti, consulta le linee guida per la denominazione.
In Trasformazioni, fai clic su Aggiungi una trasformazione.
Seleziona il Tipo di trasformazione. Per saperne di più sui tipi di SMT supportati, consulta Tipi di SMT.
Imposta le proprietà di configurazione per la SMT. L'insieme di proprietà dipende dal tipo di SMT. Per saperne di più, consulta la documentazione relativa al tipo di SMT.
(Facoltativo) Per convalidare la SMT, fai clic su Convalida. Se la SMT è valida, viene visualizzato il messaggio
"Validation passed". In caso contrario, viene visualizzato un messaggio di errore.Per aggiungere un'altra trasformazione, fai clic su Aggiungi una trasformazione e ripeti i passaggi precedenti.
Per disporre le SMT in un ordine specifico, fai clic su Sposta in alto o Sposta in basso. Per rimuovere una SMT, fai clic su Elimina.
(Facoltativo) Per testare una SMT su un messaggio di esempio:
Fai clic su Testa trasformazioni.
Nella finestra Testa trasformazione, seleziona la funzione che vuoi testare.
Nella finestra Messaggio di input, inserisci un messaggio di esempio.
Per aggiungere un attributo al messaggio, fai clic su Aggiungi un attributo e inserisci la chiave e il valore dell'attributo. Puoi aggiungere più attributi.
Fai clic su Test. Il risultato dell'applicazione della SMT al messaggio viene visualizzato in Messaggio di output.
Per chiudere la finestra Testa trasformazioni, fai clic su Chiudi.
Se crei più di una SMT, puoi testare l'intera sequenza di trasformazioni nel seguente modo:
- Testa la prima SMT nella sequenza, come descritto nei passaggi precedenti.
- Seleziona la SMT successiva. Il messaggio di input viene precompilato con il messaggio di output del test precedente.
- Continua a testare le SMT in ordine per assicurarti che l'intera sequenza funzioni come previsto.
Per creare l'argomento, fai clic su Crea.
gcloud
-
Nella Google Cloud console, attiva Cloud Shell.
Nella parte inferiore della Google Cloud console viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già inclusa e installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Crea un file YAML o JSON che definisca una o più SMT. La definizione YAML o JSON dipende dal tipo di SMT. Per saperne di più, consulta Tipi di SMT.
Se il file include più di una SMT, Pub/Sub le esegue nell'ordine in cui sono elencate.
(Facoltativo) Per convalidare una SMT, esegui il
gcloud pubsub message-transforms validatecomando:gcloud pubsub message-transforms validate \ --message-transform-file=TRANSFORM_FILESostituisci quanto segue:
- TRANSFORM_FILE: il percorso di un file YAML o JSON che definisce una singola SMT. Se crei più SMT, devi convalidarle singolarmente.
(Facoltativo) Per testare una o più SMT su un messaggio Pub/Sub di esempio, esegui il
gcloud pubsub message-transforms testcomando:gcloud pubsub message-transforms test \ --message-transforms-file=TRANSFORMS_FILE \ --message=MESSAGE \ --attribute=ATTRIBUTESSostituisci quanto segue:
- TRANSFORMS_FILE: il percorso di un file YAML o JSON che definisce una o più SMT.
- MESSAGE: il corpo del messaggio di esempio.
- ATTRIBUTES: (facoltativo) Un elenco di attributi dei messaggi separati da virgole. Ogni attributo è una coppia chiave-valore formattata come
KEY="VALUE".
Il comando esegue le SMT in ordine, utilizzando l'output di ogni SMT come input per la successiva. Il comando restituisce i risultati di ogni passaggio.
Per creare l'argomento, esegui il
gcloud pubsub topics createcomando:gcloud pubsub topics create TOPIC_ID \ --message-transforms-file=TRANSFORMS_FILESostituisci quanto segue:
- TOPIC_ID: l'ID o il nome dell'argomento che vuoi creare. Per le linee guida su come denominare un argomento, consulta Nomi delle risorse. Il nome di un argomento non è modificabile.
- TRANSFORMS_FILE: il percorso di un file YAML o JSON che definisce una o più SMT.
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub C# .
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Java.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Python.
Vai
L'esempio seguente utilizza la versione principale della libreria client Go Pub/Sub (v2). Se utilizzi ancora la libreria v1, consulta la guida alla migrazione alla v2. Per visualizzare un elenco di esempi di codice della versione 1, consulta gli esempi di codice deprecati.
Prima di provare questo esempio, segui le istruzioni di configurazione di Go in Guida rapida all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Pub/Sub Go.