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 dans une CloudFront distribution Amazon, vous pouvez ajouter jusqu'à quatre déclencheurs (associations) qui déclenchent 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 suivants, comme le montre le schéma suivant.

Graphique conceptuel qui montre comment les événements CloudFront déclencheurs pour les 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 visualiseur, 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.

  • Lorsque redirige CloudFront automatiquement une HTTP demande vers HTTPS (lorsque la valeur du Viewer Protocol Policy est Redirect HTTP vers HTTPS).

Demande de 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é est 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 indépendamment du fait 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 HTTP statut supérieur ou égal à 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.

  • Lorsque redirige CloudFront automatiquement une HTTP demande vers HTTPS (lorsque la valeur du Viewer Protocol Policy est Redirect 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'affichage, elle CloudFront ne renverra pas de réponse au CloudFront visualiseur ni ne transmettra la demande à l'origine tant que la fonction Lambda n'aura pas fini de s'exécuter.

Cela signifie que chaque requête qui déclenche une fonction Lambda augmente la latence de la demande. Vous souhaitez donc que la fonction s'exécute le plus rapidement possible.