Questo documento spiega come aggiornare una trasformazione di un singolo messaggio (SMT) per una sottoscrizione Pub/Sub. Le modifiche alle SMT diventano effettive dopo pochi minuti. Per gli SMT degli abbonamenti, le modifiche diventano effettive per i nuovi messaggi inviati all'abbonamento dopo l'aggiornamento della funzione definita dall'utente.
Per aggiornare gli SMT delle sottoscrizioni, puoi utilizzare la console Google Cloud , Google Cloud CLI, la libreria client o l'API Pub/Sub.
Ruoli e autorizzazioni richiesti
Per ottenere le autorizzazioni
necessarie per aggiornare gli SMT degli abbonamenti,
chiedi all'amministratore di concederti il ruolo IAM
Editor Pub/Sub (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 le autorizzazioni necessarie per aggiornare i contratti di manutenzione del software dell'abbonamento. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per aggiornare gli SMT degli abbonamenti sono necessarie le seguenti autorizzazioni:
-
Concedi l'autorizzazione per aggiornare un abbonamento:
projects.subscriptions.patch
-
Concedi l'autorizzazione Visualizza una sottoscrizione sul progetto. Questa autorizzazione è necessaria solo se utilizzi la console Google Cloud :
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 i SMT degli abbonamenti
Per aggiornare gli SMT degli abbonamenti:
Console
-
Nella console Google Cloud , vai alla pagina Sottoscrizioni di Pub/Sub.
-
Fai clic sull'abbonamento per il quale vuoi modificare le SMT.
-
Nella pagina dei dettagli della sottoscrizione, fai clic su Modifica.
La scheda Trasformazioni elenca tutte le SMT associate all'abbonamento.
-
Nella pagina Modifica abbonamento puoi eseguire le seguenti operazioni:
-
Aggiungi un nuovo SMT. Fai clic su Aggiungi una trasformazione.
-
Modifica un SMT esistente. Espandi una trasformazione SMT per modificarla.
-
Riordina le trasformazioni SMT. Utilizza le frecce su e giù.
-
Eliminare un SMT. Fai clic sul pulsante Elimina.
-
-
Fai clic su Aggiorna.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Esegui il comando
gcloud pubsub subscriptions update
: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 tutti gli 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.
-