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.
Choix de l’événement qui déclenche la fonction
Lorsque vous décidez quel CloudFront événement vous souhaitez utiliser pour déclencher une fonction Lambda, tenez compte des points suivants :
- Je souhaite CloudFront mettre en cache des objets modifiés par une fonction Lambda
-
Pour mettre en cache un objet qui a été modifié par une fonction Lambda afin de CloudFront pouvoir le servir depuis l'emplacement périphérique lors de sa prochaine demande, utilisez l'événement de demande d'origine ou de réponse d'origine.
Cela réduit la charge sur l'origine, réduit la latence pour les demandes suivantes et réduit le coût de l'appel de Lambda@Edge sur les demandes suivantes.
Par exemple, si vous souhaitez ajouter, supprimer ou modifier les en-têtes des objets renvoyés par l'origine et que vous souhaitez CloudFront mettre le résultat en cache, utilisez l'événement de réponse d'origine.
- Je souhaite que la fonction s’exécute pour chaque demande
-
Pour exécuter la fonction pour chaque demande CloudFront reçue pour la distribution, utilisez les événements de demande du visualiseur ou de réponse du visualiseur.
Les événements de demande d'origine et de réponse d'origine se produisent uniquement lorsqu'un objet demandé n'est pas mis en cache dans un emplacement périphérique et CloudFront transmet une demande à l'origine.
- Je souhaite que la fonction modifie la clé de cache
-
Pour modifier une valeur que vous utilisez comme base pour la mise en cache, utilisez l’événement demande utilisateur.
Par exemple, si une fonction modifie l'URL pour inclure une abréviation de langue dans le chemin d'accès (par exemple, parce que l'utilisateur a choisi sa langue dans une liste déroulante), utilisez l'événement de demande utilisateur :
-
URL dans la demande du visualiseur — https://example.com/en/ index.html
-
URL lorsque la demande provient d'une adresse IP en Allemagne https://example.com/de/ — index.html
Vous utilisez également l'événement de demande utilisateur si vous mettez en cache en fonction des cookies ou des en-têtes de demande.
Note
Si la fonction modifie les cookies ou les en-têtes, configurez CloudFront pour transmettre la partie applicable de la demande à l'origine. Pour plus d’informations, consultez les rubriques suivantes :
-
- La fonction affecte la réponse provenant de l’origine
-
Pour modifier la demande d’une manière qui affecte la réponse de l’origine, utilisez l’événement demande à l’origine.
En général, la plupart des événements de demande du visiteur ne sont pas transmis à l'origine. CloudFront répond à une demande avec un objet qui se trouve déjà dans le cache périphérique. Si la fonction modifie la demande en fonction d'un événement de demande d'origine, met en CloudFront cache la réponse à la demande d'origine modifiée.