Actualizar las SMTs de una suscripción

En este documento se explica cómo actualizar una transformación de mensaje único (SMT) de una suscripción de Pub/Sub. Los cambios en los SMTs se aplican en unos minutos. En el caso de los SMTs de suscripción, los cambios se aplican a los mensajes nuevos que se entregan a la suscripción después de actualizar la UDF.

Para actualizar los SMTs de una suscripción, puedes usar la Google Cloud consola, la CLI de Google Cloud, la biblioteca de cliente o la API Pub/Sub.

Roles y permisos necesarios

Para obtener los permisos que necesitas para actualizar los SMTs de la suscripción, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Editor de Pub/Sub (roles/pubsub.editor) en tu proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para actualizar los SMTs de las suscripciones. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para actualizar los SMTs de una suscripción, se necesitan los siguientes permisos:

  • Concede el permiso de actualización de suscripciones en la suscripción: projects.subscriptions.patch
  • Concede a la vista el permiso de suscripción en el proyecto. Este permiso solo es necesario si usas la Google Cloud consola: pubsub.subscriptions.view

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Puede configurar el control de acceso a nivel de proyecto y de recurso individual.

Actualizar las SMTs de una suscripción

Para actualizar los SMTs de una suscripción, sigue estos pasos:

Consola

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

    Ir a Suscripciones

  2. Haz clic en la suscripción de la que quieras editar las traducciones automáticas.

  3. En la página de detalles de la suscripción, haz clic en Editar.

    En la pestaña Transformaciones se muestran todas las SMTs asociadas a la suscripción.

  4. En la página Editar suscripción, puedes hacer lo siguiente:

    1. Añadir una nueva SMT. Haz clic en Añadir transformación.

    2. Edita una SMT. Despliega cualquier SMT para editarlo.

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

    4. Eliminar una SMT. Haz clic en el botón Eliminar.

  5. Haz clic en Actualizar.

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. Ejecuta el comando gcloud pubsub subscriptions update:

    gcloud pubsub subscriptions update SUBSCRIPTION_ID \
        --message-transforms-file=TRANSFORMS_FILE

    Haz los cambios siguientes:

    • SUBSCRIPTION_ID: el ID o el nombre de la suscripción que quieras actualizar.

    • TRANSFORMS_FILE: ruta al archivo YAML o JSON que contiene los SMTs actualizados.

      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 todos los SMTs de la suscripción, usa el siguiente comando:

    gcloud pubsub subscriptions update SUBSCRIPTION_ID --clear-message-transforms

    Sustituye SUBSCRIPTION_ID por el ID o el nombre de la suscripción que quieras actualizar.

Siguientes pasos