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 des clés de cache : transformez les attributs des HTTP demandes (en-têtes, chaînes de requête, cookies et même le URL chemin) pour créer une clé de cache optimale, ce qui peut améliorer le taux de réussite de votre cache.

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

  • URLredirections ou réécritures : redirigez les visiteurs vers d'autres pages en fonction des informations contenues dans la demande, ou réécrivez toutes les demandes d'un chemin à l'autre.

  • Demande d'autorisation — Validez les jetons d'autorisation hachés, tels que les jetons JSON Web (JWT), en inspectant les en-têtes d'autorisation ou les autres métadonnées de demande.

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

Lambda @Edge est idéal pour les cas d'utilisation suivants :

  • Fonctions dont l'exécution prend plusieurs millisecondes ou plus

  • Fonctions nécessitant un réglage CPU ou une mémoire

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

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

  • Fonctions nécessitant un accès au système de fichiers ou au corps des HTTP demandes

Pour démarrer avec Lambda@Edge, consultez Personnalisez à la 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.

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

  • Réponse utilisateur

  • Requête utilisateur

  • Réponse utilisateur

  • Requête de l'origine

  • Réponse de l’origine

Supports Amazon CloudFront KeyValueStore

Oui

CloudFront KeyValueStore ne prend en charge que le JavaScript runtime 2.0

Non

Évolutivité 10 000 000 de requêtes par seconde ou plus Jusqu'à 10 000 requêtes par seconde et par région
Durée de la fonction Inférieure à une milliseconde

Jusqu'à 5 secondes (requête utilisateur et réponse utilisateur)

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

Taille maximale de la mémoire des fonctions

2 Mo

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

10 240 Mo (10 Go) (demande d'origine et réponse d'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

1 Mo (requête utilisateur et réponse utilisateur)

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 du téléspectateur et réponse du téléspectateur)

Oui (demande d'origine et réponse d'origine)

Peut être entièrement construit et testé dans CloudFront Oui Non
Journalisation et métriques des fonctions Oui Oui
Tarification Offre gratuite disponible ; facturation à la requête Pas d'offre gratuite ; facturation à la requête et durée de fonction