View a markdown version of this page

CloudFront événements pouvant déclencher une fonction Lambda @Edge - Amazon CloudFront

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

CloudFront événements pouvant déclencher une fonction Lambda @Edge

Pour chaque comportement de cache d'une CloudFront distribution Amazon, vous pouvez ajouter jusqu'à quatre déclencheurs (associations) qui entraînent l'exécution d'une fonction Lambda lorsque des CloudFront événements spécifiques se produisent. CloudFront les déclencheurs peuvent être basés sur l'un des quatre CloudFront événements, comme le montre le schéma suivant.

Graphique conceptuel qui montre comment les événements CloudFront déclencheurs des fonctions Lambda s'intègrent à CloudFront.

Les CloudFront événements qui peuvent être utilisés pour déclencher les fonctions Lambda @Edge sont les suivants :

Demande utilisateur

La fonction s'exécute lorsqu'elle CloudFront reçoit une demande d'un utilisateur, avant de vérifier si l'objet demandé se trouve dans le CloudFront cache.

La fonction ne s’exécute pas dans les cas suivants :

  • Lors de la récupération d’une page d’erreur personnalisée.

  • Quand redirige CloudFront automatiquement une requête HTTP vers HTTPS (lorsque la valeur de Viewer Protocol Policy est Rediriger HTTP vers HTTPS).

demande à l’origine

La fonction s'exécute uniquement lorsque CloudFront vous transmettez une demande à votre origine. Lorsque l'objet demandé se trouve dans le CloudFront cache, la fonction ne s'exécute pas.

Réponse de l’origine

La fonction s'exécute après avoir CloudFront reçu une réponse de l'origine et avant de mettre en cache l'objet dans la réponse. Notez que la fonction s'exécute même si une erreur est renvoyée de l'origine.

La fonction ne s’exécute pas dans les cas suivants :

  • Lorsque le fichier demandé se trouve dans le CloudFront cache et n'a pas expiré.

  • Lorsque la réponse est générée à partir d'une fonction qui a été déclenchée par un événement de demande à l'origine.

Réponse utilisateur

La fonction s'exécute avant de renvoyer le fichier demandé à l'utilisateur. Notez que la fonction s'exécute, que le fichier soit déjà dans le CloudFront cache ou non.

La fonction ne s’exécute pas dans les cas suivants :

  • Lorsque l'origine renvoie un code de statut HTTP égal ou supérieur à 400.

  • Lorsqu'une page d'erreur personnalisée est renvoyée.

  • Lorsque la réponse est générée à partir d'une fonction qui a été déclenchée par un événement de demande utilisateur.

  • Quand redirige CloudFront automatiquement une requête HTTP vers HTTPS (lorsque la valeur de Viewer Protocol Policy est Rediriger HTTP vers HTTPS).

Lorsque vous ajoutez plusieurs déclencheurs au même comportement de cache, vous pouvez les utiliser pour exécuter la même fonction ou des fonctions différentes pour chaque déclencheur. Vous pouvez associer la même fonction à plusieurs distributions.

Note

Lorsqu'un CloudFront événement déclenche l'exécution d'une fonction Lambda, celle-ci doit se terminer avant de CloudFront pouvoir continuer.

Par exemple, si une fonction Lambda est déclenchée par un événement de demande d' CloudFront utilisateur, elle CloudFront ne renvoie pas de réponse au visualiseur ou ne transmet pas la demande à l'origine tant que la fonction Lambda n'a pas fini de s'exécuter.

Cela signifie que chaque demande qui déclenche une fonction Lambda augmente sa latence. Vous souhaitez ainsi que la fonction s’exécute le plus vite possible.