En esta página, se describe cómo configurar y usar las notificaciones de Cloud Pub/Sub para Cloud Storage. Con las notificaciones de Cloud Pub/Sub puedes realizar un seguimiento de los cambios en tus objetos de Cloud Storage: A fin de obtener más información sobre Cloud Pub/Sub para Cloud Storage, consulta la página de conceptos de notificaciones.
Requisitos previos
Antes de usar esta función, debes realizar las siguientes acciones:
Habilita la API de Cloud Pub/Sub para el proyecto que recibirá notificaciones.
Obtén los permisos necesarios en el depósito que desees supervisar:
Si eres propietario del proyecto que contiene el depósito, es probable que tengas el permiso necesario.
Si usas IAM, debes tener el permiso
storage.buckets.update
. Consulta Usa permisos de IAM a fin de obtener instrucciones para realizar esto.Si usas las LCA, debes tener el permiso
OWNER
. Consulta Configura las LCA a fin de obtener instrucciones para realizar esto.
Obtén los permisos necesarios en el proyecto que recibirá notificaciones:
Si eres propietario del proyecto que recibirá notificaciones, lo más probable es que tengas el permiso necesario.
Si piensas crear temas para recibir notificaciones, debe tener el permiso
pubsub.topics.create
.Ya sea que pienses usar temas nuevos o existentes, debes tener el permiso
pubsub.topics.setIamPolicy
. Si creas un tema, generalmente tienespubsub.topics.setIamPolicy
para él.Consulta Control de acceso de Cloud Pub/Sub para obtener instrucciones para obtener estos permisos de Cloud Pub/Sub.
- .
Tener un tema Cloud Pub/Sub existente al que desees enviar notificaciones.
Obtén la dirección de correo electrónico de la cuenta de servicio asociada con el proyecto que contiene tu depósito de Cloud Storage.
Usa la dirección de correo electrónico que obtuviste en el paso anterior a fin de asignar a la cuenta de servicio la función
pubsub.publisher
de IAM para el tema de Cloud Pub/Sub que desees.
Aplica una configuración de notificaciones
Con los siguientes pasos, puedes agregar una configuración de notificaciones a tu depósito que envíe notificaciones de todos los eventos compatibles. A fin de enviar notificaciones para un subconjunto de eventos, incluye la marca -e
con el comando de gsutil o la clave event_types
en el cuerpo de tu solicitud JSON.
gsutil
Usa el comando gsutil notification create
y reemplaza [VALUES_IN_BRACKETS]
por los valores adecuados:
gsutil notification create -t [TOPIC_NAME] -f json gs://[BUCKET_NAME]
Si usas un [TOPIC_NAME]
que no existe en tu proyecto, gsutil crea uno.
API de JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
Crea un archivo .json que contenga la siguiente información y reemplaza
[VALUES_IN_BRACKETS]
por los valores adecuados:{ "topic": "projects/[PROJECT_ID]/topics/[TOPIC_NAME]", "payload_format": "JSON_API_V1" }
Usa
cURL
para llamar a la API de JSON con una solicitud dePOST notificationConfigs
y reemplaza[VALUES_IN_BRACKETS]
por los valores adecuados:curl -X POST --data-binary @[JSON_FILE_NAME].json
-H "Authorization: Bearer [OAUTH2_TOKEN]"
-H "Content-Type: application/json"
"https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/notificationConfigs"
Enumera las configuraciones de notificaciones para un depósito
Para enumerar las configuraciones de notificaciones asociadas con un depósito en particular, realiza las siguientes acciones:
gsutil
Usa el comando gsutil notification list
y reemplaza [VALUES_IN_BRACKETS]
por los valores adecuados:
gsutil notification list gs://[BUCKET_NAME]
API de JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
Usa
cURL
para llamar a la API de JSON con una solicitud deGET notificationConfigs
y reemplaza[VALUES_IN_BRACKETS]
por los valores adecuados:curl -X GET
-H "Authorization: Bearer [OAUTH2_TOKEN]"
"https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/notificationConfigs"
Quita una configuración de notificaciones
Para quitar de tu depósito una configuración de notificaciones existente, realiza las siguientes acciones:
gsutil
Usa el comando gsutil notification delete
y reemplaza [VALUES_IN_BRACKETS]
por los valores adecuados:
gsutil notification delete projects/_/buckets/[BUCKET_NAME]/notificationConfigs/[CONFIGURATION_NAME]
Una vez enviadas, pueden pasar hasta 30 segundos para que se detengan todas las notificaciones que la configuración de notificaciones activó.
API de JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
Usa
cURL
para llamar a la API de JSON con una solicitud deDELETE notificationConfigs
y reemplaza[VALUES_IN_BRACKETS]
por los valores adecuados:curl -X DELETE
-H "Authorization: Bearer [OAUTH2_TOKEN]"
"https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/notificationConfigs/[CONFIGURATION_NAME]"
Una vez enviadas, pueden pasar hasta 30 segundos para que se detengan todas las notificaciones que la configuración de notificaciones activó.
Qué sigue
- Obtén más información sobre las notificaciones de Cloud Pub/Sub para Cloud Storage.
- Crea una suscripción en Pub/Sub para ver las notificaciones que Cloud Storage envió.
- Consulta una app de ejemplo de sondeo de Python para notificaciones en GitHub.
- Crea un álbum de fotos que use las notificaciones de Cloud Pub/Sub para Cloud Storage.
- Obtén más información sobre cómo usar Cloud Pub/Sub para tareas de larga duración.