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 a Pub/Sub. Los cambios en los SMT se aplican en unos minutos. En el caso de las SMT de suscripción, los cambios se aplican a los mensajes nuevos que se entregan a la suscripción después de que se actualiza la UDF.

Para actualizar los SMT de suscripciones, 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 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 las SMT de la suscripción:

  • Otorga al permiso de actualización un permiso de 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 de 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 del proyecto y a nivel de cada recurso.

Actualiza los SMT de la suscripción

Para actualizar los SMT de suscripciones, 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 adjuntas 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 editarla.

    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. En la consola de Google Cloud , activa Cloud Shell.

    Activa Cloud Shell

    En la parte inferior de la consola de Google Cloud , 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 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 las SMT 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 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?