Choisissez l'événement pour déclencher la fonction - 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.

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.