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 función, completa las siguientes instrucciones:
Habilita la API de Pub/Sub
Habilitar la API de Pub/Sub para el proyecto que recibirá notificaciones
Obtén los roles necesarios
Para obtener los permisos que necesitas para configurar y ver las notificaciones de Pub/Sub de un bucket, pídele a tu administrador que te otorgue los siguientes roles:
Rol de administrador de almacenamiento (
roles/storage.admin
) en el bucket para el que deseas configurar las notificaciones de Pub/SubRol de administrador de Pub/Sub (
roles/pubsub.admin
) en el proyecto en el que deseas recibir notificaciones de Pub/Sub
Estos roles predefinidos contienen los permisos necesarios para configurar y ver las notificaciones de Pub/Sub. Para ver los permisos exactos que son necesarios, expande la sección Permisos necesarios:
Permisos necesarios
storage.buckets.get
storage.buckets.update
pubsub.topics.create
pubsub.topics.setIamPolicy
Puedes obtener estos permisos con otros roles predefinidos o roles personalizados.
Consulta Usa IAM con buckets para obtener instrucciones sobre cómo otorgar roles en los buckets. Consulta Controla el acceso para obtener instrucciones sobre cómo otorgar roles en proyectos y configurar controles de acceso para temas y suscripciones.
Asegúrate de tener un tema de Pub/Sub existente
Si aún no lo hiciste, crea un tema de Pub/Sub al que deseas enviar notificaciones. Este paso no es necesario si planeas usar Google Cloud CLI o Terraform para realizar las instrucciones de esta página.
Otorga el rol necesario al agente de servicio de tu proyecto
Los siguientes pasos no son necesarios si planeas usar Google Cloud CLI o Terraform para realizar las instrucciones de esta página.
Obtén la dirección de correo electrónico del agente de servicio asociada con el proyecto que contiene tu bucket de Cloud Storage.
Otorga al agente de servicio el rol de publicador de Pub/Sub (
roles/pubsub.publisher
) para el tema de Pub/Sub relevante. Consulta Controla el acceso para obtener instrucciones para otorgar roles para temas.
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.
Console
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
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.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 $(gcloud auth print-access-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.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, completa los siguientes pasos:
Console
No puedes administrar notificaciones de Pub/Sub con la consola de Google Cloud. En su lugar, usa Google Cloud 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
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa
cURL
para llamar a la API de JSON con una solicitudGET notificationConfigs
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/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 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:
Console
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
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa
cURL
para llamar a la API de JSON con una solicitudGET notificationConfigs
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
En el ejemplo anterior,
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:
Console
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.
API de REST
API de JSON
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa
cURL
para llamar a la API de JSON con una solicitudDELETE notificationConfigs
:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/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 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 Python que sondea en busca de notificaciones en GitHub.
- Usa las funciones de Cloud Run para entregar eventos con un activador de Cloud Storage.