En este documento, se explica cómo actualizar una transformación de mensaje único (SMT) para un tema de Pub/Sub. Los cambios en los SMT se aplican en unos minutos. En el caso de los SMT de temas, los cambios se aplican a los mensajes nuevos que se publican después de que se actualiza el SMT.
Para actualizar los SMT de temas, 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 temas,
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 temas. 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 temas:
-
Otorga al permiso de actualización un permiso de tema en el tema:
projects.topics.patch
-
Otorga el permiso para ver un tema en el proyecto. Este permiso solo es necesario si usas la consola: Google Cloud
pubsub.topics.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 las SMT de temas
Para actualizar los SMT de temas, sigue estos pasos:
Console
En la consola de Google Cloud , ve a la página Temas de Pub/Sub.
-
Haz clic en el tema para el que deseas editar los SMT.
En la página de detalles del tema, haz clic en Editar.
En la pestaña Transformaciones, se enumeran todas las SMT que se adjuntan al tema.
-
En la página Editar tema, 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 topics update
:gcloud pubsub topics update TOPIC_ID \ --message-transforms-file=TRANSFORMS_FILE
Reemplaza lo siguiente:
-
TOPIC_ID: Es el ID o el nombre del tema 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 del tema, usa el siguiente comando:
gcloud pubsub topics update TOPIC_ID --clear-message-transforms
Reemplaza TOPIC_ID por el ID o el nombre del tema que deseas actualizar.
-