En este documento se explica cómo actualizar una transformación de mensaje único (SMT) de una suscripción de Pub/Sub. Los cambios en los SMTs se aplican en unos minutos. En el caso de los SMTs de suscripción, los cambios se aplican a los mensajes nuevos que se entregan a la suscripción después de actualizar la UDF.
Para actualizar los SMTs de una suscripción, 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 la suscripción, 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 las suscripciones. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para actualizar los SMTs de una suscripción, se necesitan los siguientes permisos:
-
Concede el permiso de actualización de suscripciones en la suscripción:
projects.subscriptions.patch
-
Concede a la vista el permiso de suscripción en el proyecto. Este permiso solo es necesario si usas la Google Cloud consola:
pubsub.subscriptions.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 una suscripción
Para actualizar los SMTs de una suscripción, sigue estos pasos:
Consola
-
En la Google Cloud consola, ve a la página Suscripciones de Pub/Sub.
-
Haz clic en la suscripción de la que quieras editar las traducciones automáticas.
-
En la página de detalles de la suscripción, haz clic en Editar.
En la pestaña Transformaciones se muestran todas las SMTs asociadas a la suscripción.
-
En la página Editar suscripción, 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 subscriptions update
:gcloud pubsub subscriptions update SUBSCRIPTION_ID \ --message-transforms-file=TRANSFORMS_FILE
Haz los cambios siguientes:
-
SUBSCRIPTION_ID: el ID o el nombre de la suscripción 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 de la suscripción, usa el siguiente comando:
gcloud pubsub subscriptions update SUBSCRIPTION_ID --clear-message-transforms
Sustituye SUBSCRIPTION_ID por el ID o el nombre de la suscripción que quieras actualizar.
-