Aggiornare gli SMT di abbonamento

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

  1. Nella console Google Cloud , vai alla pagina Sottoscrizioni di Pub/Sub.

    Vai ad Abbonamenti

  2. Fai clic sull'abbonamento per il quale vuoi modificare le SMT.

  3. Nella pagina dei dettagli dell'abbonamento, fai clic su Modifica.

    La scheda Trasformazioni elenca tutte le SMT associate all'abbonamento.

  4. Nella pagina Modifica abbonamento, puoi eseguire le seguenti attività:

    1. Aggiungi un nuovo SMT. Fai clic su Aggiungi una trasformazione.

    2. Modificare un SMT esistente. Espandi una trasformazione SMT per modificarla.

    3. Riordina le trasformazioni SMT. Utilizza le frecce su e giù.

    4. Elimina un SMT. Fai clic sul pulsante Elimina.

  5. Fai clic su Aggiorna.

gcloud

  1. Nella console Google Cloud , attiva Cloud Shell.

    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.

  2. 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.

Passaggi successivi