Questo documento spiega come aggiornare una trasformazione di un singolo messaggio (SMT) per un abbonamento Pub/Sub. Le modifiche alle SMT diventano effettive entro pochi minuti. Per le SMT degli abbonamenti, le modifiche diventano effettive per i nuovi messaggi inviati all'abbonamento dopo l'aggiornamento della UDF.
Per aggiornare le SMT degli abbonamenti, puoi utilizzare la Google Cloud console, Google Cloud CLI, la libreria client o l'API Pub/Sub.
Ruoli e autorizzazioni richiesti
Per ottenere le autorizzazioni necessarie per aggiornare le SMT degli abbonamenti, 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 include le autorizzazioni necessarie per aggiornare le SMT degli abbonamenti. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per aggiornare le SMT degli abbonamenti sono necessarie le seguenti autorizzazioni:
-
Concedi l'autorizzazione per aggiornare un abbonamento:
projects.subscriptions.patch -
Concedi l'autorizzazione per visualizzare un abbonamento nel progetto. Questa autorizzazione è necessaria solo se utilizzi la Google Cloud console:
pubsub.subscriptions.view
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Puoi configurare il controllo dell'accesso a livello di progetto e a livello di singola risorsa.
Aggiornare le SMT degli abbonamenti
Per aggiornare le SMT degli abbonamenti:
Console
-
Nella Google Cloud console, vai alla pagina Abbonamenti di Pub/Sub.
-
Fai clic sull'abbonamento per il quale vuoi modificare le SMT.
-
Nella pagina dei dettagli dell'abbonamento, fai clic su Modifica.
La scheda Trasformazioni elenca tutte le SMT associate all'abbonamento.
-
Nella pagina Modifica abbonamento, puoi eseguire le seguenti attività:
-
Aggiungi una nuova SMT. Fai clic su Aggiungi una trasformazione.
-
Modifica una SMT esistente. Espandi una SMT per modificarla.
-
Riordina le SMT. Utilizza le frecce su e giù.
-
Elimina una SMT. Fai clic sul pulsante Elimina.
-
-
Fai clic su Aggiorna.
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.
-
Esegui il
gcloud pubsub subscriptions updatecomando:gcloud pubsub subscriptions update SUBSCRIPTION_ID \ --message-transforms-file=TRANSFORMS_FILE
Sostituisci quanto segue:
-
SUBSCRIPTION_ID: l'ID o il nome dell'abbonamento che vuoi aggiornare.
-
TRANSFORMS_FILE: il percorso del file YAML o JSON contenente le SMT aggiornate.
Di seguito è riportato un esempio di file di trasformazioni YAML:
- javascriptUdf: code: > function redactSSN(message, metadata) { const data = JSON.parse(message.data); delete data['ssn']; message.data = JSON.stringify(data); return message; } functionName: redactSSN - javascriptUdf: code: > function filterHighAmount(message, metadata) { const data = JSON.parse(message.data); if (data['amount'] > 100 ) { return null; } return message; } functionName: filterHighAmount
Per cancellare tutte le SMT dall'abbonamento, utilizza il seguente comando:
gcloud pubsub subscriptions update SUBSCRIPTION_ID --clear-message-transforms
Sostituisci SUBSCRIPTION_ID con l'ID o il nome dell'abbonamento che vuoi aggiornare.
-