Actualiza los SMT de suscripción

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

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

Roles y permisos requeridos

Para obtener los permisos que necesitas para actualizar los SMT de suscripción, pídele a tu administrador que te otorgue el rol de IAM de editor de Pub/Sub (roles/pubsub.editor) en tu 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 los permisos necesarios para actualizar los SMT de suscripción. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para actualizar los SMT de suscripciones:

  • Otorga el permiso para actualizar una suscripción en la suscripción: projects.subscriptions.patch
  • Otorga al usuario permiso de suscripción en el proyecto. Este permiso solo es necesario si usas la consola: Google Cloud pubsub.subscriptions.view

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

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

Actualiza los SMT de la suscripción

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

Console

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

    Ir a Suscripciones

  2. Haz clic en la suscripción para la que deseas editar los SMT.

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

    En la pestaña Transformaciones, se enumeran todas las SMT que se adjuntan a la suscripción.

  4. En la página Editar suscripción, puedes realizar las siguientes tareas:

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

    2. Edita un SMT existente. Expande cualquier SMT para editarlo.

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

    4. Borra un SMT. Haz clic en el botón de borrar.

  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

    Reemplaza lo siguiente:

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

    • TRANSFORMS_FILE: Es la ruta de acceso al archivo YAML o JSON que contiene los SMT actualizados.

      A continuación, se muestra un ejemplo de un archivo de transformaciones de 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 SMT de la suscripción, usa el siguiente comando:

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

    Reemplaza SUBSCRIPTION_ID por el ID o el nombre de la suscripción que deseas actualizar.

¿Qué sigue?