En esta página, se describe cómo configurar tu bucket para enviar notificaciones sobre cambios de objetos a un tema de Pub/Sub. Para obtener información sobre cómo suscribirte a un tema de Pub/Sub que recibe notificaciones, consulta Elige un tipo de suscripción.
Antes de comenzar
Antes de usar esta característica, debes realizar las siguientes acciones:
Habilitar la API de Pub/Sub para el proyecto que recibirá notificaciones
Tienes el permiso
storage.buckets.update
ystorage.buckets.get
en el bucket que deseas supervisar. Consulta Usa permisos de IAM para obtener instrucciones para realizar esto. Si eres propietario del proyecto que contiene el bucket, es probable que ya tengas el permiso necesario.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, sueles tenerpubsub.topics.setIamPolicy
para él.Consulta la sección sobre el control de acceso a Pub/Sub para obtener instrucciones sobre cómo obtener estos permisos de Pub/Sub.
-
Elige un tema de Pub/Sub existente al que deseas enviar notificaciones.
Obtén la dirección de correo electrónico del agente de servicio asociada con el proyecto que contiene tu bucket de Cloud Storage.
Usa la dirección de correo electrónico que obtuviste en el paso anterior para asignar a la cuenta de servicio la función
pubsub.publisher
de IAM para el tema de Pub/Sub que desees.
Aplica una configuración de notificaciones
Con los siguientes pasos, puedes agregar una configuración de notificaciones a tu bucket que envíe notificaciones a todos los eventos compatibles.
Consola
No puedes administrar notificaciones de Pub/Sub con la consola de Google Cloud. En su lugar, usa gcloud CLI o una de las bibliotecas cliente disponibles.
Línea de comandos
Usa el comando gcloud storage buckets notifications create
:
gcloud storage buckets notifications create gs://BUCKET_NAME --topic=TOPIC_NAME
Aquí:
BUCKET_NAME
es el nombre del bucket correspondiente. Por ejemplo,my-bucket
.TOPIC_NAME
es el tema de Pub/Sub al que se enviarán notificaciones. Si especificas un tema que no existe en tu proyecto, con el comando se crea uno
Para enviar notificaciones de un subconjunto de eventos, incluye la marca --event-types
.
Bibliotecas cliente
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C#.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Si deseas crear una configuración de notificaciones para un bucket con PHP, consulta la documentación de referencia de la biblioteca cliente de Google Cloud.Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Terraform
Puedes usar un recurso de Terraform para agregar una configuración de notificaciones a un bucket.
API de REST
API de JSON
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Crea un archivo JSON que contenga la siguiente información:
{ "topic": "projects/PROJECT_ID/topics/TOPIC_NAME", "payload_format": "JSON_API_V1" }
Aquí:
PROJECT_ID
es el ID del proyecto asociado al tema de Pub/Sub al que deseas enviar notificaciones. Por ejemplo,my-pet-project
.TOPIC_NAME
es el tema de Pub/Sub al que se enviarán notificaciones. Por ejemplo,my-topic
.
Para enviar notificaciones de un subconjunto de eventos, incluye el campo
event_types
en el cuerpo de tu solicitud JSON.Usa
cURL
para llamar a la API de JSON con una solicitudPOST notificationConfigs
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
Aquí:
JSON_FILE_NAME
es la ruta de acceso del archivo que creaste en el paso 2.OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.BUCKET_NAME
es el nombre del bucket para el que deseas que se generen notificaciones. Por ejemplo,my-bucket
.
API de XML
No puedes administrar las notificaciones de Pub/Sub con la API de XML.
Obtén una configuración de notificaciones
Para obtener una configuración específica de notificaciones que esté asociada a tu bucket, haz lo siguiente:
Consola
No puedes administrar notificaciones de Pub/Sub con la consola de Google Cloud. En su lugar, usa gcloud CLI o una de las bibliotecas cliente disponibles.
Línea de comandos
Usa el comando gcloud storage buckets notifications describe
:
gcloud storage buckets notifications describe projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
Aquí:
BUCKET_NAME
es el nombre del bucket cuya configuración de notificación deseas recuperar, por ejemplo,my-bucket
.NOTIFICATION_ID
es el número de ID de la configuración deseada. Por ejemplo,5
.
Si se realiza de forma correcta, la respuesta se verá como el ejemplo siguiente:
etag: '132' id: '132' kind: storage#notification payload_format: JSON_API_V1 selfLink: https://www.googleapis.com/storage/v1/b/my-bucket/notificationConfigs/132 topic: //pubsub.googleapis.com/projects/my-project/topics/my-bucket
Bibliotecas cliente
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C#.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Para obtener una configuración de notificaciones de un bucket con PHP, consulta la documentación de referencia de la biblioteca cliente de Google Cloud.Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
API de REST
API de JSON
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Usa
cURL
para llamar a la API de JSON con una solicitudGET notificationConfigs
:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
Aquí:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.BUCKET_NAME
es el nombre del bucket cuya configuración de notificación deseas recuperar. Por ejemplo,my-bucket
.NOTIFICATION_ID
es el número de ID de la configuración de notificaciones que deseas recuperar. Por ejemplo,5
.
API de XML
No puedes administrar las notificaciones de Pub/Sub con la API de XML.
Enumera las configuraciones de notificaciones de un bucket
Para enumerar todas las configuraciones de notificaciones asociadas con un bucket en particular, realiza las siguientes acciones:
Consola
No puedes administrar notificaciones de Pub/Sub con la consola de Google Cloud. En su lugar, usa gcloud CLI o una de las bibliotecas cliente disponibles.
Línea de comandos
Usa el comando gcloud storage buckets notifications list
:
gcloud storage buckets notifications list gs://BUCKET_NAME
En el ejemplo anterior, BUCKET_NAME
es el nombre del bucket cuyas configuraciones de notificación deseas enumerar. Por ejemplo, my-bucket
.
Bibliotecas cliente
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C#.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Para enumerar las configuraciones de notificaciones asociadas con un bucket a través de PHP, consulta la documentación de referencia de la biblioteca cliente de Google Cloud.Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
API de REST
API de JSON
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Usa
cURL
para llamar a la API de JSON con una solicitudGET notificationConfigs
:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
Aquí:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.BUCKET_NAME
es el nombre del bucket cuyas configuraciones de notificación deseas enumerar. Por ejemplo,my-bucket
.
API de XML
No puedes administrar las notificaciones de Pub/Sub con la API de XML.
Quita una configuración de notificaciones
Para quitar de tu bucket una configuración de notificaciones existente, realiza las siguientes acciones:
Consola
No puedes administrar notificaciones de Pub/Sub con la consola de Google Cloud. En su lugar, usa gcloud CLI o una de las bibliotecas cliente disponibles.
Línea de comandos
Usa el comando gcloud storage buckets notifications delete
:
gcloud storage buckets notifications delete projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
Aquí:
BUCKET_NAME
es el nombre del bucket cuya configuración de notificación deseas borrar. Por ejemplo,my-bucket
.NOTIFICATION_ID
es el número de ID de la configuración que deseas borrar. Por ejemplo,5
.
Si se realiza de forma correcta, la respuesta se verá como el ejemplo siguiente:
Completed 1
Después del envío, pueden pasar hasta 30 segundos para que se detengan todas las notificaciones que la configuración de notificaciones activó.
Bibliotecas cliente
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C#.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Para borrar una configuración de notificaciones de un bucket con PHP, consulta la documentación de referencia de la biblioteca cliente de Google Cloud.Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Terraform
Para quitar la configuración de notificaciones que creaste, ejecuta terraform destroy
desde la carpeta que contiene el archivo de Terraform.
APIs de REST
API de JSON
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Usa
cURL
para llamar a la API de JSON con una solicitudDELETE notificationConfigs
:curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
Aquí:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.BUCKET_NAME
es el nombre del bucket cuya configuración de notificación deseas borrar. Por ejemplo,my-bucket
.NOTIFICATION_ID
es el número de ID de la configuración de notificaciones que deseas borrar. Por ejemplo,5
.
Después del envío, pueden pasar hasta 30 segundos para que se detengan todas las notificaciones que la configuración de notificaciones activó.
API de XML
No puedes administrar las notificaciones de Pub/Sub con la API de XML.
¿Qué sigue?
- Obtén más información sobre las notificaciones de 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.
- Usa Cloud Functions para entregar eventos con un activador de Cloud Storage.