Aggiornare gli SMT di abbonamento

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

  1. Nella Google Cloud console, vai alla pagina Abbonamenti 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 una nuova SMT. Fai clic su Aggiungi una trasformazione.

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

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

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

  5. Fai clic su Aggiorna.

gcloud

  1. Nella Google Cloud console, attiva Cloud Shell.

    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.

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

Passaggi successivi