Actualiza los SMT de temas

En este documento, se explica cómo actualizar una transformación de mensaje único (SMT) para un tema de Pub/Sub. Los cambios en las SMTs entran en vigencia en unos minutos. En el caso de las SMTs de temas, los cambios se aplican a los mensajes nuevos publicados después de que se actualiza la SMT.

Para actualizar las SMTs de temas, puedes usar la Google Cloud consola de , Google Cloud CLI, la biblioteca cliente o la API de Pub/Sub.

Roles y permisos requeridos

Para obtener el permiso que necesitas para actualizar las SMTs de temas, pídele a tu administrador que te otorgue el rol de IAM de editor de Pub/Sub (roles/pubsub.editor) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene el pubsub.topics.update permiso, que se requiere para actualizar las SMTs de temas.

También puedes obtener este permiso con roles personalizados o otros roles predefinidos.

Puedes configurar el control de acceso a nivel de proyecto y a nivel de los recursos individuales.

Actualiza las SMTs de temas

Para actualizar las SMTs de temas, sigue estos pasos:

Console

  1. En la Google Cloud consola de, ve a la página Temas de Pub/Sub.

    Ir a temas

  2. Haz clic en el tema para el que deseas editar las SMTs.

  3. En la página de detalles del tema, haz clic en Editar.

    En la pestaña Transformaciones , se enumeran todas las SMTs que se adjuntan al tema.

  4. En la página Editar tema, puedes realizar las siguientes tareas:

    1. Agrega una SMT nueva. Haz clic en Agregar una transformación.

    2. Edita una SMT existente. Expande cualquier SMT para editarla.

    3. Reorganiza las SMTs. Usa las flechas hacia arriba y hacia abajo.

    4. Borra una SMT. Haz clic en el botón Borrar.

  5. Haz clic en Actualizar.

gcloud

  1. En la Google Cloud consola de, activa Cloud Shell.

    Activa Cloud Shell

    En la parte inferior de la Google Cloud consola de, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. Ejecuta el gcloud pubsub topics updatecomando:

    gcloud pubsub topics update TOPIC_ID \
        --message-transforms-file=TRANSFORMS_FILE

    Reemplaza lo siguiente:

    • TOPIC_ID: Es el ID o el nombre del tema que deseas actualizar.

    • TRANSFORMS_FILE: Es la ruta de acceso al archivo YAML o JSON que contiene las SMTs actualizadas.

      A continuación, se muestra un ejemplo de un archivo de transformaciones 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

    Para borrar todas las SMTs del tema, usa el siguiente comando:

    gcloud pubsub topics update TOPIC_ID --clear-message-transforms

    Reemplaza TOPIC_ID por el ID o el nombre del tema que deseas actualizar.

¿Qué sigue?