Cette page explique comment configurer votre bucket pour qu'il envoie des notifications de modification d'objet à un sujet Pub/Sub. Pour en savoir plus sur l'abonnement à un sujet Pub/Sub recevant des notifications, consultez la section Choisir un type d'abonnement.
Avant de commencer
Avant d'utiliser cette fonctionnalité, procédez comme suit :
Activer l'API Pub/Sub
Activer l'API Pub/Sub pour le projet qui recevra les notifications.
Obtenir les rôles requis
Pour obtenir les autorisations nécessaires pour configurer et afficher les notifications Pub/Sub d'un bucket, demandez à votre administrateur de vous accorder les rôles suivants:
Rôle Administrateur de l'espace de stockage (
roles/storage.admin
) sur le bucket pour lequel vous souhaitez configurer les notifications Pub/SubRôle Administrateur Pub/Sub (
roles/pubsub.admin
) sur le projet dans lequel vous souhaitez recevoir des notifications Pub/Sub
Ces rôles prédéfinis contiennent les autorisations requises pour configurer et afficher les notifications Pub/Sub. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
storage.buckets.get
storage.buckets.update
pubsub.topics.create
pubsub.topics.setIamPolicy
Vous pouvez également obtenir ces autorisations avec d'autres rôles prédéfinis ou rôles personnalisés.
Consultez la page Utiliser IAM avec des buckets pour savoir comment attribuer des rôles sur des buckets. Consultez la page Contrôler les accès pour savoir comment attribuer des rôles aux projets et définir des contrôles d'accès pour les sujets et les abonnements.
Vérifiez que vous disposez d'un sujet Pub/Sub existant
Si vous ne l'avez pas déjà fait, créez un sujet Pub/Sub auquel vous souhaitez envoyer des notifications. Cette étape n'est pas nécessaire si vous prévoyez d'utiliser Google Cloud CLI ou Terraform pour exécuter les instructions de cette page.
Attribuer le rôle requis à l'agent de service de votre projet
Les étapes suivantes ne sont pas nécessaires si vous prévoyez d'utiliser Google Cloud CLI ou Terraform pour exécuter les instructions de cette page.
Obtenir l'adresse e-mail de l'agent de service associé au projet contenant votre bucket Cloud Storage.
Attribuez à l'agent de service le rôle Diffuseur Pub/Sub (
roles/pubsub.publisher
) pour le sujet Pub/Sub concerné. Consultez la page Contrôler les accès pour obtenir des instructions sur l'attribution de rôles pour des sujets.
Appliquer une configuration de notification
Les étapes suivantes permettent d'ajouter une configuration de notification à votre bucket qui envoie les notifications pour tous les événements compatibles.
Console
Vous ne pouvez pas gérer les notifications Pub/Sub avec la console Google Cloud. Utilisez plutôt gcloud CLI ou l’une des bibliothèques clientes disponibles.
Ligne de commande
Exécutez la commande gcloud storage buckets notifications create
:
gcloud storage buckets notifications create gs://BUCKET_NAME --topic=TOPIC_NAME
Où :
BUCKET_NAME
correspond au nom du bucket concerné. Par exemple,my-bucket
.TOPIC_NAME
est le sujet Pub/Sub auquel envoyer des notifications. Si vous spécifiez un sujet qui n'existe pas dans votre projet, la commande le crée pour vous.
Pour envoyer des notifications pour un sous-ensemble d'événements, ajoutez l'option --event-types
.
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Pour créer une configuration de notification pour un bucket à l'aide de PHP, consultez la documentation de référence de la bibliothèque cliente Google Cloud.Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Terraform
Vous pouvez utiliser une ressource Terraform pour ajouter une configuration de notification à un bucket.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Créez un fichier JSON contenant les informations suivantes :
{ "topic": "projects/PROJECT_ID/topics/TOPIC_NAME", "payload_format": "JSON_API_V1" }
Où :
PROJECT_ID
correspond à l'ID du projet associé au sujet Pub/Sub auquel vous souhaitez envoyer des notifications. Par exemple,my-pet-project
.TOPIC_NAME
est le sujet Pub/Sub auquel envoyer des notifications. Exemple :my-topic
Pour envoyer des notifications pour un sous-ensemble d'événements, ajoutez le champ
event_types
dans le corps de votre requête JSON.Exécutez
cURL
pour appeler l'API JSON avec une requêtePOST 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"
Où :
JSON_FILE_NAME
correspond au chemin d'accès au fichier que vous avez créé à l'étape 2.BUCKET_NAME
correspond au nom du bucket pour lequel vous souhaitez générer des notifications. Par exemple,my-bucket
.
API XML
Vous ne pouvez pas gérer les notifications Pub/Sub avec l'API XML.
Obtenir une configuration de notification
Pour obtenir une configuration de notification spécifique associée à votre bucket, procédez comme suit:
Console
Vous ne pouvez pas gérer les notifications Pub/Sub avec la console Google Cloud. Utilisez plutôt Google Cloud CLI ou l’une des bibliothèques clientes disponibles.
Ligne de commande
Exécutez la commande gcloud storage buckets notifications describe
:
gcloud storage buckets notifications describe projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
Où :
BUCKET_NAME
est le nom du bucket dont vous souhaitez récupérer la configuration de notification. Par exemple,my-bucket
.NOTIFICATION_ID
est le numéro d'identification de la configuration pertinente. Par exemple,5
.
Si l'opération réussit, la réponse se présente comme suit :
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
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Pour obtenir une configuration de notification pour un bucket à l'aide de PHP, consultez la documentation de référence de la bibliothèque cliente Google Cloud.Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Exécutez
cURL
pour appeler l'API JSON avec une requêteGET notificationConfigs
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
Où :
BUCKET_NAME
est le nom du bucket dont vous souhaitez récupérer la configuration de notification. Exemple :my-bucket
.NOTIFICATION_ID
est le numéro d'identification de la configuration de notification que vous souhaitez récupérer. Par exemple,5
.
API XML
Vous ne pouvez pas gérer les notifications Pub/Sub avec l'API XML.
Répertorier les configurations de notification pour un bucket
Pour répertorier toutes les configurations de notification associées à un bucket particulier :
Console
Vous ne pouvez pas gérer les notifications Pub/Sub avec la console Google Cloud. Utilisez plutôt gcloud CLI ou l’une des bibliothèques clientes disponibles.
Ligne de commande
Exécutez la commande gcloud storage buckets notifications list
:
gcloud storage buckets notifications list gs://BUCKET_NAME
Où BUCKET_NAME
est le nom du bucket dont vous souhaitez lister les configurations de notification. Exemple : my-bucket
.
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Pour regrouper les configurations de notification associées à un bucket à l'aide de PHP, consultez la documentation de référence de la bibliothèque cliente Google Cloud.Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Exécutez
cURL
pour appeler l'API JSON avec une requêteGET notificationConfigs
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs"
Où
BUCKET_NAME
est le nom du bucket dont vous souhaitez lister les configurations de notification. Exemple :my-bucket
.
API XML
Vous ne pouvez pas gérer les notifications Pub/Sub avec l'API XML.
Supprimer une configuration de notification
Pour supprimer une configuration de notification existante de votre bucket :
Console
Vous ne pouvez pas gérer les notifications Pub/Sub avec la console Google Cloud. Utilisez plutôt gcloud CLI ou l’une des bibliothèques clientes disponibles.
Ligne de commande
Exécutez la commande gcloud storage buckets notifications delete
:
gcloud storage buckets notifications delete projects/_/buckets/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID
Où :
BUCKET_NAME
est le nom du bucket dont vous souhaitez supprimer la configuration de notification. Exemple :my-bucket
.NOTIFICATION_ID
est le numéro d'identification de la configuration que vous souhaitez supprimer. Par exemple,5
.
Si l'opération réussit, la réponse se présente comme suit :
Completed 1
L'arrêt des notifications déclenchées par la configuration de notification peut prendre jusqu'à 30 secondes.
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Pour supprimer une configuration de notification d'un bucket à l'aide de PHP, consultez la documentation de référence de la bibliothèque cliente Google Cloud.Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Terraform
Pour supprimer la configuration de notification que vous avez créée, exécutez terraform destroy
à partir du dossier contenant votre fichier Terraform.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Exécutez
cURL
pour appeler l'API JSON avec une requêteDELETE notificationConfigs
:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/notificationConfigs/NOTIFICATION_ID"
Où :
BUCKET_NAME
correspond au nom du bucket dont vous souhaitez supprimer la configuration de notification. Exemple :my-bucket
.NOTIFICATION_ID
correspond au numéro d'identification de la configuration de notification que vous souhaitez supprimer. Par exemple,5
.
L'arrêt des notifications déclenchées par la configuration de notification peut prendre jusqu'à 30 secondes.
API XML
Vous ne pouvez pas gérer les notifications Pub/Sub avec l'API XML.
Étapes suivantes
- Apprenez-en plus sur les notifications Pub/Sub pour Cloud Storage.
- Créez un abonnement dans Pub/Sub pour afficher les notifications envoyées par Cloud Storage.
- Découvrez un exemple d'application Python qui interroge les notifications sur GitHub.
- Utilisez les fonctions Cloud Run pour diffuser des événements avec un déclencheur Cloud Storage.