Différences entre CloudFront Functions et 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.

Différences entre CloudFront Functions et Lambda @Edge

CloudFront Functions et Lambda @Edge fournissent tous deux un moyen d'exécuter du code en réponse à CloudFront des événements.

CloudFront Functions est idéal pour les fonctions légères et de courte durée dans les cas d'utilisation suivants :

  • Normalisation de la clé de cache : transformez les attributs de demandes HTTP (en-têtes, chaînes de requêtes, cookies et même le chemin de l’URL) pour créer une clé de cache optimale, ce qui peut améliorer le taux d’accès à votre cache.

  • Manipulation des en-têtes : insérez, modifiez ou supprimez des en-têtes HTTP dans la demande ou la réponse. Par exemple, vous pouvez ajouter un en-tête True-Client-IP à chaque requête.

  • Redirections ou réécriture d’URL : redirigez les utilisateurs vers d’autres pages en fonction des informations de la demande, ou redirigez toutes les demandes d’un chemin vers un autre.

  • Autorisation de demandes : validez des jetons d’autorisations hachés, tels que les jetons Web JSON (JWT), en inspectant les en-têtes d’autorisation ou d’autres métadonnées de demandes.

Pour commencer à utiliser CloudFront Functions, voirPersonnalisez à la périphérie avec CloudFront Functions.

Lambda@Edge est une solution idéale pour les cas d’utilisation suivants :

  • Fonctions dont l’exécution peut durer des millisecondes

  • Fonctions qui nécessitent un processeur ou une mémoire ajustable

  • Fonctions qui dépendent de bibliothèques tierces (y compris le AWS SDK, pour l'intégration avec d'autres Services AWS bibliothèques)

  • Fonctions qui nécessitent un accès réseau pour utiliser des services externes pour le traitement

  • Fonctions qui nécessitent l’accès au système de fichiers ou au corps des demandes HTTP

Pour démarrer avec Lambda@Edge, consultez Personnalisation en périphérie avec Lambda@Edge.

Pour vous aider à choisir l'option adaptée à votre cas d'utilisation, utilisez le tableau suivant pour comprendre les différences entre CloudFront Functions et Lambda @Edge. Pour en savoir plus sur les différences qui s’appliquent aux méthodes d’assistance à la modification d’origine, consultez Choisissez entre CloudFront Functions et Lambda @Edge.

CloudFront Fonctions Lambda@Edge
Langages de programmation JavaScript (conforme à la norme ECMAScript 5.1) Node.js et Python
Sources des évènements
  • Demande utilisateur

  • Réponse utilisateur

  • Demande utilisateur

  • Réponse utilisateur

  • Demande de l’origine

  • Réponse de l’origine

Prend en charge Amazon CloudFront KeyValueStore

Oui

CloudFront KeyValueStore ne prend en charge que le JavaScript runtime 2.0

Non

Échelle Jusqu’à des millions de demandes par seconde Jusqu'à 10 000 requêtes par seconde et par région
Durée de la fonction Inférieure à une milliseconde

Jusqu'à 30 secondes (demande du spectateur et réponse du spectateur)

Jusqu'à 30 secondes (requête de l'origine et réponse de l'origine)

Taille maximale de la mémoire de la fonction

2 Mo

128 Mo (demande du spectateur et réponse du spectateur)

10 240 Mo (10 Go) (demande de l’origine et réponse de l’origine)

Pour de plus amples informations, veuillez consulter Quotas sur Lambda@Edge.

Taille maximale du code de fonction et des bibliothèques incluses 10 Ko

50 Mo (demande du spectateur et réponse du spectateur)

50 Mo (requête de l'origine et réponse de l'origine)

Accès réseau Non Oui
Accès au système de fichiers Non Oui
Accès au corps de la requête Non Oui
Accès à la géolocalisation et aux données de l'appareil Oui

Non (demande utilisateur et réponse utilisateur)

Oui (demande de l’origine et réponse de l’origine)

Peut être entièrement construit et testé dans CloudFront Oui Non
Journalisation et métriques des fonctions Oui Oui