Aggiornare gli SMT di abbonamento

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

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

    Vai agli abbonamenti

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

  3. Nella pagina dei dettagli della sottoscrizione, fai clic su Modifica.

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

  4. Nella pagina Modifica abbonamento puoi eseguire le seguenti operazioni:

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

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

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

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

  5. Fai clic su Aggiorna.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    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.

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

Passaggi successivi