En este documento se explica cómo actualizar una transformación de mensaje único (SMT) de un tema de Pub/Sub. Los cambios en los SMTs se aplican en cuestión de minutos. En el caso de los SMTs de temas, los cambios se aplican a los mensajes nuevos publicados después de que se actualice el SMT.
Para actualizar los SMTs de un tema, 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 los temas, 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 los temas. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para actualizar los SMTs de un tema, se necesitan los siguientes permisos:
-
Concede al usuario el permiso de actualización de un tema:
projects.topics.patch
-
Concede el permiso para ver un tema en el proyecto. Este permiso solo es necesario si usas la Google Cloud consola:
pubsub.topics.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 los temas
Para actualizar los SMTs de temas, sigue estos pasos:
Consola
En la Google Cloud consola, ve a la página Temas de Pub/Sub.
-
Haz clic en el tema para el que quieras editar las respuestas predefinidas.
En la página de detalles del tema, haz clic en Editar.
En la pestaña Transformaciones se muestran todas las SMTs asociadas al tema.
-
En la página Editar tema, puedes hacer lo siguiente:
-
Añadir una nueva SMT. Haz clic en Añadir transformación.
-
Edita una SMT. Despliega cualquier SMT para editarlo.
-
Reorganiza los SMTs. Usa las flechas hacia arriba y hacia abajo.
-
Eliminar una SMT. Haz clic en el botón Eliminar.
-
-
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 topics update
:gcloud pubsub topics update TOPIC_ID \ --message-transforms-file=TRANSFORMS_FILE
Haz los cambios siguientes:
-
TOPIC_ID: el ID o el nombre del tema 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 del tema, usa el siguiente comando:
gcloud pubsub topics update TOPIC_ID --clear-message-transforms
Sustituye TOPIC_ID por el ID o el nombre del tema que quieras actualizar.
-