En esta página se describe cómo configurar un segmento para que envíe notificaciones sobre los cambios de los objetos a un tema de Pub/Sub. Para obtener información sobre cómo suscribirse a un tema de Pub/Sub que recibe notificaciones, consulte Elegir un tipo de suscripción.
Antes de empezar
Antes de usar esta función, sigue estas instrucciones.
Habilitar la API Pub/Sub
Habilita la API Pub/Sub en el proyecto que recibirá las notificaciones.
Obtener los roles necesarios
Para obtener los permisos que necesitas para configurar y ver las notificaciones de Pub/Sub de un segmento, pide a tu administrador que te conceda los siguientes roles. Estos roles predefinidos contienen los permisos necesarios para configurar y ver las notificaciones de Pub/Sub.
Rol Administrador de Storage (
roles/storage.admin
) en el segmento para el que quieras configurar las notificaciones de Pub/SubRol Administrador de Pub/Sub (
roles/pubsub.admin
) en el proyecto en el que quieras recibir notificaciones de Pub/Sub
Puede que puedas obtener estos permisos con otros roles predefinidos o roles personalizados.
Consulta Usar la gestión de identidades y accesos con los contenedores para obtener instrucciones sobre cómo asignar roles a los contenedores. Consulta Controlar el acceso para obtener instrucciones sobre cómo asignar roles a proyectos y configurar controles de acceso para temas y suscripciones.
Asegúrate de que tienes un tema de Pub/Sub
Si aún no lo has hecho, crea un tema de Pub/Sub al que quieras enviar notificaciones. Este paso no es necesario si tienes previsto usar la CLI de Google Cloud o Terraform para seguir las instrucciones de esta página.
Asigna el rol necesario al agente de servicio de tu proyecto
No es necesario que sigas estos pasos si tienes previsto usar la CLI de Google Cloud o Terraform para llevar a cabo las instrucciones de esta página.
Obtén la dirección de correo del agente de servicio asociado al proyecto que contiene tu segmento de Cloud Storage.
Concede al agente de servicio el rol de editor de Pub/Sub (
roles/pubsub.publisher
) en el tema de Pub/Sub correspondiente. Consulta Controlar el acceso para obtener instrucciones sobre cómo conceder roles a temas.
Aplicar una configuración de notificación
Con los pasos siguientes, se añade una configuración de notificación a tu segmento que envía notificaciones de todos los eventos admitidos.
Consola
No puedes gestionar las notificaciones de Pub/Sub con la consola.Google Cloud En su lugar, usa la CLI de gcloud o una de las bibliotecas de 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
Donde:
BUCKET_NAME
es el nombre del segmento correspondiente. Por ejemplo,my-bucket
.TOPIC_NAME
es el tema de Pub/Sub al que se enviarán las notificaciones. Si especificas un tema que no existe en tu proyecto, el comando creará uno por ti.
Para enviar notificaciones de un subconjunto de eventos, incluye la marca --event-types
.
Bibliotecas de cliente
C++
Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
C#
Para obtener más información, consulta la documentación de referencia de la API C# de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Go
Para obtener más información, consulta la documentación de referencia de la API Go de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Java
Para obtener más información, consulta la documentación de referencia de la API Java de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Node.js
Para obtener más información, consulta la documentación de referencia de la API Node.js de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
PHP
Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Para crear una configuración de notificaciones para un segmento mediante PHP, consulta la documentación de referencia de la biblioteca de cliente de Google Cloud.Python
Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Ruby
Para obtener más información, consulta la documentación de referencia de la API Ruby de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Terraform
Puedes usar un recurso de Terraform para añadir una configuración de notificación a un contenedor.
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para 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" }
Donde:
PROJECT_ID
es el ID del proyecto asociado al tema de Pub/Sub al que quieres enviar notificaciones. Por ejemplo,my-pet-project
.TOPIC_NAME
es el tema de Pub/Sub al que se enviarán las notificaciones. Por ejemplo,my-topic
.
Para enviar notificaciones de un subconjunto de eventos, incluya el campo
event_types
en el cuerpo de su solicitud JSON.Usa
cURL
para llamar a la API 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"
Donde:
JSON_FILE_NAME
es la ruta del archivo que has creado en el paso 2.BUCKET_NAME
es el nombre del segmento para el que quieres que se generen notificaciones. Por ejemplo,my-bucket
.
API XML
No puedes gestionar las notificaciones de Pub/Sub con la API XML.
Obtener una configuración de notificación
Para obtener una configuración de notificación específica asociada a tu contenedor, sigue estos pasos:
Consola
No puedes gestionar las notificaciones de Pub/Sub con la consola.Google Cloud En su lugar, usa Google Cloud CLI o una de las bibliotecas de 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
Donde:
BUCKET_NAME
es el nombre del segmento cuya configuración de notificaciones quieres obtener. Por ejemplo,my-bucket
.NOTIFICATION_ID
es el número de ID de la configuración correspondiente. Por ejemplo,5
.
Si la solicitud se hace correctamente, la respuesta será similar a la del siguiente ejemplo:
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 de cliente
C++
Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
C#
Para obtener más información, consulta la documentación de referencia de la API C# de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Go
Para obtener más información, consulta la documentación de referencia de la API Go de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Java
Para obtener más información, consulta la documentación de referencia de la API Java de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Node.js
Para obtener más información, consulta la documentación de referencia de la API Node.js de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
PHP
Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Para obtener una configuración de notificación de un bucket mediante PHP, consulta la documentación de referencia de la biblioteca de cliente de Google Cloud.Python
Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Ruby
Para obtener más información, consulta la documentación de referencia de la API Ruby de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API 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"
Donde:
BUCKET_NAME
es el nombre del contenedor cuya configuración de notificaciones quieres obtener. Por ejemplo,my-bucket
.NOTIFICATION_ID
es el número de ID de la configuración de notificaciones que quieres obtener. Por ejemplo,5
.
API XML
No puedes gestionar las notificaciones de Pub/Sub con la API XML.
Mostrar configuraciones de notificación de un segmento
Para enumerar todas las configuraciones de notificaciones asociadas a un determinado contenedor, sigue estos pasos:
Consola
No puedes gestionar las notificaciones de Pub/Sub con la consola.Google Cloud En su lugar, usa la CLI de gcloud o una de las bibliotecas de cliente disponibles.
Línea de comandos
Usa el comando gcloud storage buckets notifications list
:
gcloud storage buckets notifications list gs://BUCKET_NAME
Donde BUCKET_NAME
es el nombre del contenedor cuyas configuraciones de notificaciones quieres enumerar. Por ejemplo, my-bucket
.
Bibliotecas de cliente
C++
Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
C#
Para obtener más información, consulta la documentación de referencia de la API C# de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Go
Para obtener más información, consulta la documentación de referencia de la API Go de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Java
Para obtener más información, consulta la documentación de referencia de la API Java de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Node.js
Para obtener más información, consulta la documentación de referencia de la API Node.js de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
PHP
Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Para enumerar las configuraciones de notificaciones asociadas a un bucket mediante PHP, consulta la documentación de referencia de la biblioteca de cliente de Google Cloud.Python
Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Ruby
Para obtener más información, consulta la documentación de referencia de la API Ruby de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API 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"
Donde
BUCKET_NAME
es el nombre del contenedor cuyas configuraciones de notificaciones quieres enumerar. Por ejemplo,my-bucket
.
API XML
No puedes gestionar las notificaciones de Pub/Sub con la API XML.
Eliminar una configuración de notificación
Para eliminar una configuración de notificación de un segmento, sigue estos pasos:
Consola
No puedes gestionar las notificaciones de Pub/Sub con la consola.Google Cloud En su lugar, usa la CLI de gcloud o una de las bibliotecas de 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
Donde:
BUCKET_NAME
es el nombre del segmento cuya configuración de notificaciones quieres eliminar. Por ejemplo,my-bucket
.NOTIFICATION_ID
es el número de ID de la configuración que quieres eliminar. Por ejemplo,5
.
Si la solicitud se hace correctamente, la respuesta será similar a la del siguiente ejemplo:
Completed 1
Una vez enviada, pueden pasar hasta 30 segundos para que se detengan todas las notificaciones activadas por la configuración de notificaciones.
Bibliotecas de cliente
C++
Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
C#
Para obtener más información, consulta la documentación de referencia de la API C# de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Go
Para obtener más información, consulta la documentación de referencia de la API Go de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Java
Para obtener más información, consulta la documentación de referencia de la API Java de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Node.js
Para obtener más información, consulta la documentación de referencia de la API Node.js de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
PHP
Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Para eliminar una configuración de notificación de un bucket con PHP, consulta la documentación de referencia de la biblioteca de cliente de Google Cloud.Python
Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Ruby
Para obtener más información, consulta la documentación de referencia de la API Ruby de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Terraform
Para eliminar la configuración de notificaciones que has creado, ejecuta terraform destroy
desde la carpeta que contiene tu archivo de Terraform.
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API 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"
Donde:
BUCKET_NAME
es el nombre del segmento cuya configuración de notificaciones quieres eliminar. Por ejemplo,my-bucket
.NOTIFICATION_ID
es el número de ID de la configuración de notificaciones que quieres eliminar. Por ejemplo,5
.
Una vez enviadas, las notificaciones activadas por la configuración de notificaciones pueden tardar hasta 30 segundos en detenerse.
API XML
No puedes gestionar las notificaciones de Pub/Sub con la API XML.
Siguientes pasos
Consulta más información sobre las notificaciones de Pub/Sub para Cloud Storage.
Crea una suscripción en Pub/Sub para ver las notificaciones enviadas por Cloud Storage.
Consulta una aplicación de ejemplo de Python que sondea las notificaciones en GitHub.
Usa funciones de Cloud Run para enviar eventos con un activador de Cloud Storage.