Questo documento spiega come aggiornare una Single Message Transform (SMT) per una sottoscrizione Pub/Sub. Le modifiche alle SMT diventano effettive entro 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 della sottoscrizione, 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 le autorizzazioni necessarie per aggiornare gli SMT dell'abbonamento. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per aggiornare i contratti di servizio dell'abbonamento sono necessarie le seguenti autorizzazioni:
-
Concedi l'autorizzazione per aggiornare un abbonamento:
projects.subscriptions.patch -
Concedi l'autorizzazione Visualizza un abbonamento 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 gli SMT dell'abbonamento
Per aggiornare gli SMT dell'abbonamento:
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 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 un nuovo SMT. Fai clic su Aggiungi una trasformazione.
-
Modificare un SMT esistente. Espandi una trasformazione SMT per modificarla.
-
Riordina le trasformazioni SMT. Utilizza le frecce su e giù.
-
Elimina un SMT. Fai clic sul pulsante Elimina.
-
-
Fai clic su Aggiorna.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud , 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à installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
-
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 della sottoscrizione che vuoi aggiornare.
-
TRANSFORMS_FILE: il percorso del file YAML o JSON contenente gli SMT aggiornati.
Di seguito è riportato un esempio di file di trasformazione 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.
-