Déclencheurs Cloud Storage (1re génération)

Dans Cloud Run 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 spécifiez un bucket Cloud Storage. Votre fonction est appelée chaque fois qu'une modification se produit sur un objet (fichier) dans le bucket spécifié.

Les types d'événements Cloud Storage suivants sont acceptés :

Événement Type d'événement Description
Objet finalisé
  • google.storage.object.finalize
Se produit lorsqu'un objet est créé, ou lorsqu'un objet existant est écrasé et qu'une nouvelle génération de cet objet est créée.
Objet supprimé
  • google.storage.object.delete
Se produit lorsqu'un objet est définitivement supprimé. Pour en savoir plus, consultez Suppression réversible.
Objet archivé
  • google.storage.object.archive
Se produit lorsqu'une version active d'un objet devient une version obsolète. Pour en savoir plus, consultez Gestion des versions d'objets.
Métadonnées d'objet mises à jour
  • google.storage.object.metadataUpdate
Envoyé lorsque les métadonnées d'un objet existant sont modifiées.

Pour qu'une fonction utilise un déclencheur Cloud Storage, elle doit être mise en œuvre en tant que fonction basée sur les événements :

Le dépôt Google Events contient des ressources supplémentaires sur l'utilisation des données d'événement.

Déploiement

Vous pouvez spécifier un déclencheur Cloud Storage lorsque vous déployez une fonction. Consultez la page Déployer une fonction Cloud Run pour obtenir des instructions générales sur le déploiement d'une fonction. Consultez la suite de cette page pour obtenir des informations supplémentaires spécifiques à la configuration des déclencheurs Cloud Storage lors du déploiement.

gcloud

Si vous déployez à l'aide de la gcloud CLI, vous pouvez utiliser le type d'événement Objet finalisé Cloud Storage avec les options suivantes :

gcloud functions deploy YOUR_FUNCTION_NAME \
--no-gen2 \
--trigger-bucket=YOUR_STORAGE_BUCKET \
[--retry] \
...

Pour utiliser des types d'événements autres que le type Objet finalisé, utilisez les options suivantes :

  gcloud functions deploy YOUR_FUNCTION_NAME 
--no-gen2
--trigger-event=EVENT_TYPE
--trigger-resource=YOUR_STORAGE_BUCKET
...

Anciens événements Cloud Storage

Les anciennes fonctions de Cloud Run 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 \
--no-gen2 \
--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 se peut qu'il soit 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 :

  1. Dans le champ Type de déclencheur, sélectionnez Cloud Storage.
  2. Dans le champ Type d'événement, sélectionnez un type d'événement.
  3. Dans le champ Bucket, cliquez sur Parcourir pour sélectionner un bucket Cloud Storage que le déclencheur doit surveiller. Les modifications apportées aux objets de ce bucket déclencheront des appels vers votre fonction.
  4. 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 implémentés avec les notifications Pub/Sub pour Cloud Storage. Les événements sont soumis aux garanties de diffusion 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, des déploiements de fonctions supplémentaires échoueront avec un message d'erreur semblable à celui-ci :

Cloud Storage bucket ...: Pub/Sub notification limit reached

Pour contourner cette limite, vous pouvez gérer votre propre sujet Pub/Sub et l'enregistrer pour les notifications Cloud Storage du type auquel vous souhaitez que votre fonction réponde. Par exemple, vous pouvez configurer une seule notification pour l'événement de votre choix (comme la création d'un objet) vers un sujet Pub/Sub. Ensuite, ajoutez autant d'abonnés de fonction que nécessaire au sujet pour traiter l'événement et le distribuer à plusieurs destinations. Exemple :

  1. Créez votre propre sujet Pub/Sub.
  2. Créez une seule configuration de notification sur votre bucket Cloud Storage qui se déclenche lors d'un événement spécifique (tel que OBJECT_FINALIZE pour la création d'objet) et envoie l'événement à votre sujet Pub/Sub unique.
  3. Créez une ou plusieurs fonctions déclenchées par votre sujet Pub/Sub.

Pour en savoir plus sur les limites de Cloud Storage, consultez la page Quotas et limites de Cloud Storage.

Étapes suivantes