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.
Choisissez l'événement pour déclencher 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 veux que la fonction s'exécute pour chaque requête
-
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 veux que la fonction change la clé de cache
-
Pour modifier une valeur que vous utilisez comme base pour la mise en cache, utilisez l'événement Viewer request.
Par exemple, si une fonction modifie le URL pour inclure une abréviation de langue dans le chemin (par exemple, parce que l'utilisateur a choisi sa langue dans une liste déroulante), utilisez l'événement viewer request :
-
URLdans la demande du visualiseur — https://example.com/en/ index.html
-
URLlorsque 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 depuis l'origine
-
Pour modifier la demande de manière à affecter la réponse de l'origine, utilisez l'événement de demande d'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 déjà présent 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.