Utilisation de AWS Lambda avec CloudFront Lambda@Edge
Lambda@Edge vous permet d'exécuter des fonctions Lambda en Node.js et Python pour personnaliser le contenu livré par CloudFront, en exécutant les fonctions dans des emplacements AWS plus proches de l'utilisateur. Les fonctions s'exécutent en réponse à des événements CloudFront sans approvisionner ou gérer de serveurs. Vous pouvez utiliser des fonctions Lambda pour modifier les demandes et réponses CloudFront aux stades suivants :
-
Après réception par CloudFront d'une demande provenant d'un utilisateur (demande utilisateur)
-
Avant transmission par CloudFront de la demande à l'origine (demande à l'origine)
-
Après réception par CloudFront de la réponse de l'origine (réponse de l'origine)
-
Avant transmission par CloudFront de la réponse à l'utilisateur (réponse à l'utilisateur)

Note
Lambda @Edge prend en charge un ensemble limité d'environnements d'exécution et de fonctionnalités. Pour plus d'informations, consultez Exigences et restrictions relatives aux fonctions Lambda dans le Manuel du développeur Amazon CloudFront.
Vous pouvez également générer des réponses pour les utilisateurs sans jamais envoyer de demande à l'origine.
Exemple Événement de message CloudFront
{ "Records": [ { "cf": { "config": { "distributionId": "EDFDVBD6EXAMPLE" }, "request": { "clientIp": "2001:0db8:85a3:0:0:8a2e:0370:7334", "method": "GET", "uri": "/picture.jpg", "headers": { "host": [ { "key": "Host", "value": "d111111abcdef8.cloudfront.net" } ], "user-agent": [ { "key": "User-Agent", "value": "curl/7.51.0" } ] } } } } ] }
Lambda@Edge vous permet de créer diverses solutions, par exemple :
-
Inspecter des cookies afin de réécrire des URL vers différentes versions d'un site en vue de réaliser des tests A/B.
-
Envoyer des objets différents à vos utilisateurs en fonction de l'en-tête
User-Agent
, qui contient des informations sur l'appareil qui a envoyé la demande. Par exemple, vous pouvez envoyer des images aux utilisateurs dans différentes résolutions selon l'appareil qu'ils utilisent. -
Inspecter les en-têtes ou les jetons autorisés, en insérant un en-tête correspondant et en autorisant le contrôle de l'accès avant de transférer une demande vers l'origine.
-
Ajouter, supprimer et modifier des en-têtes, et réécrire le chemin d'accès de l'URL pour diriger les utilisateurs vers différents objets dans le cache.
-
Générer de nouvelles réponses HTTP pour rediriger les utilisateurs non authentifiés vers les pages de connexion, ou créer et déployer des pages web statiques depuis le périphérique. Pour plus d'informations, consultez Utilisation de fonctions Lambda pour générer des réponses HTTP aux demandes utilisateur et à l'origine dans le Manuel du développeur Amazon CloudFront.
Pour plus d'informations sur l'utilisation de Lambda@Edge, consultez Utilisation de CloudFront avec Lambda@Edge.