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
-
En la consola de Google Cloud , ve a la página Suscripciones de Pub/Sub.
-
Haz clic en la suscripción para la que deseas editar los SMT.
-
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.
-
En la página Editar suscripción, puedes realizar las siguientes tareas:
-
Agrega un nuevo SMT. Haz clic en Agregar una transformación.
-
Edita un SMT existente. Expande cualquier SMT para editarlo.
-
Reorganiza las SMT. Usa las flechas hacia arriba y hacia abajo.
-
Borra un SMT. Haz clic en el botón de borrar.
-
-
Haz clic en Actualizar.
gcloud
-
In the Google Cloud console, 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.
-
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.
-