Déclencheurs Cloud Storage
Dans Cloud Functions, un déclencheur Cloud Storage permet d'appeler une fonction en réponse aux modifications de Cloud Storage. Lorsque vous spécifiez un déclencheur Cloud Storage pour une fonction, vous choisissez un type d'événement et un bucket Cloud Storage. Votre fonction est appelée chaque fois qu'une modification est apportée à un objet (fichier) situé dans le bucket spécifié.
Les types d'événements Cloud Storage suivants sont acceptés:
Event | Type d'événement | Description |
---|---|---|
Objet finalisé |
|
Se produit lorsqu'un objet est créé ou qu'un objet existant est écrasé et qu'une nouvelle génération de cet objet est créée. |
Objet supprimé |
|
Se produit lorsqu'un objet est définitivement supprimé. |
Objet archivé |
|
Se produit lorsqu'une version active d'un objet est archivée. Pour en savoir plus, consultez la page Gestion des versions des objets. |
Métadonnées des objets mises à jour |
|
Se produit lorsque les métadonnées d'un objet existant changent. |
Pour qu'une fonction utilise un déclencheur Cloud Storage, elle doit être mise en œuvre en tant que fonction basée sur des événements:
Si vous utilisez une fonction CloudEvent, les données d'événement Cloud Storage sont transmises à votre fonction au format CloudEvents et la charge utile des données CloudEvent est de type
StorageObjectData
.Si vous utilisez une fonction d'arrière-plan, la charge utile des données d'événement Cloud Storage est transmise directement à votre fonction dans le format
StorageObjectData
.
Le dépôt Google Events contient des ressources supplémentaires sur l'utilisation des données d'événement.
Autorisations
Pour utiliser des déclencheurs Cloud Storage, l'Agent de service Cloud Storage doit disposer du rôle IAM Éditeur Pub/Sub (roles/pubsub.publisher
) sur votre projet.
Deployment
Vous pouvez spécifier un déclencheur Cloud Storage lorsque vous déployez une fonction. Consultez la page Déployer une fonction Cloud pour obtenir des instructions générales sur le déploiement d'une fonction, ainsi que des informations supplémentaires spécifiques à la configuration des déclencheurs Cloud Storage lors du déploiement.
gcloud
Si vous effectuez un déploiement à l'aide de la CLI gcloud, vous pouvez utiliser le type d'événement Objet finalisé de Cloud Storage avec les options suivantes:
gcloud functions deploy YOUR_FUNCTION_NAME \ --trigger-bucket=YOUR_STORAGE_BUCKET \ [--retry] \ ...
- L'option
--trigger-bucket
spécifie le bucket Cloud Storage que le déclencheur surveillera. Les événements finalisés pour l'objet dans ce bucket déclenchent des appels vers votre fonction. - L'option
--retry
contrôle si les appels de fonction ayant échoué sont automatiquement relancés. Pour en savoir plus, consultez la section Nouvelles tentatives d'exécution des fonctions déclenchées par des événements.
Pour utiliser des types d'événements autres que l'objet finalisé, utilisez les options suivantes:
Pour Cloud Functions (2e génération):
gcloud functions deploy YOUR_FUNCTION_NAME \ --gen2 \ --trigger-event-filters="type=EVENT_TYPE" \ --trigger-event-filters="bucket=YOUR_STORAGE_BUCKET" \ ...
Pour Cloud Functions (1re génération):
gcloud functions deploy YOUR_FUNCTION_NAME \ --trigger-event=EVENT_TYPE \ --trigger-resource=YOUR_STORAGE_BUCKET \ ...
Anciens événements Cloud Storage
Les anciennes fonctions dans Cloud Functions (1re génération) utilisent les anciennes notifications de changement d'objet pour les déclencheurs Cloud Storage:
gcloud functions deploy YOUR_FUNCTION_NAME \ --trigger-event=providers/cloud.storage/eventTypes/object.change \ --trigger-resource=YOUR_STORAGE_BUCKET \ ...
Ce type d'événement est compatible avec les anciennes fonctions qui utilisent déjà ces événements. Toutefois, nous vous déconseillons d'utiliser ce type d'événement, car il pourrait être supprimé ultérieurement.
Console
Si vous effectuez un déploiement à l'aide de la console Google Cloud, vous pouvez configurer un déclencheur Cloud Storage dans la section Déclencheur.
Pour Cloud Functions (2e génération):
- Cliquez sur Ajouter un déclencheur Eventarc pour ajouter un déclencheur d'événement. Le volet Déclencheur Eventarc s'ouvre.
- Dans le champ Fournisseur d'événements, sélectionnez Cloud Storage.
- Dans le champ Événement, sélectionnez un type d'événement.
- Dans le champ Bucket, cliquez sur Parcourir pour sélectionner un bucket Cloud Storage à surveiller. Les modifications apportées aux objets de ce bucket déclenchent des appels vers votre fonction.
- Cochez ou décochez la case Réessayer après échec pour vérifier si les appels de fonction ayant échoué sont automatiquement relancés. Pour en savoir plus, consultez la section Nouvelles tentatives d'exécution des fonctions déclenchées par des événements.
- Cliquez sur Enregistrer le déclencheur.
Pour Cloud Functions (1re génération):
- Dans le champ Type de déclencheur, sélectionnez Cloud Storage.
- Dans le champ Type d'événement, sélectionnez un type d'événement.
- Dans le champ Bucket, cliquez sur Parcourir pour sélectionner un bucket Cloud Storage à surveiller. Les modifications apportées aux objets de ce bucket déclenchent des appels vers votre fonction.
- Cochez ou décochez la case Réessayer après échec pour vérifier si les appels de fonction ayant échoué sont automatiquement relancés. Pour en savoir plus, consultez la section Nouvelles tentatives d'exécution des fonctions déclenchées par des événements.
Diffusion d'événements
Les déclencheurs Cloud Storage sont mis en œuvre avec des notifications Pub/Sub pour Cloud Storage. Les événements sont soumis aux garanties concernant la distribution des notifications Pub/Sub.
Un bucket Cloud Storage peut comporter jusqu'à 10 configurations de notification déclenchant un événement spécifique. Si vous dépassez les limites de notifications du bucket, d'autres déploiements de fonctions échoueront avec une erreur semblable à celle-ci:
Cloud Storage bucket ...: Pub/Sub notification limit reached
Consultez la page Quotas et limites de Cloud Storage pour en savoir plus.
Étapes suivantes
- Découvrez comment écrire des fonctions basées sur des événements.
- Découvrez comment déployer une fonction Cloud.
- Consultez le tutoriel sur la fonction Cloud Storage pour obtenir un exemple d'écriture, de déploiement et d'appel d'une fonction avec un déclencheur Cloud Storage.