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.
Restrictions sur Lambda@Edge
Les restrictions suivantes s'appliquent uniquement à Lambda@Edge.
Table des matières
Pour obtenir des informations sur les quotas , consultez Quotas sur Lambda@Edge.
Résolution DNS
CloudFront effectue une résolution DNS sur le nom de domaine d'origine avant d'exécuter la fonction Lambda @Edge de votre demande d'origine. Si le service DNS de votre domaine rencontre des problèmes et ne CloudFront parvient pas à résoudre le nom de domaine pour obtenir l'adresse IP, votre fonction Lambda @Edge ne sera pas invoquée. CloudFrontrenverra un code d'état HTTP 502 (Bad Gateway) au client. Pour de plus amples informations, veuillez consulter Erreur DNS (NonS3OriginDnsError).
Si la logique de votre fonction modifie le nom de domaine d'origine, elle CloudFront effectuera une autre résolution DNS sur le nom de domaine mis à jour une fois l'exécution de la fonction terminée.
Pour plus d’informations sur la gestion du basculement DNS, consultez Configuration du basculement DNS dans le Guide du développeur Amazon Route 53.
Codes d’état HTTP
Les fonctions Lambda @Edge pour les événements de réponse du spectateur ne peuvent pas modifier le code d'état HTTP de la réponse, que la réponse provienne de l'origine ou du CloudFront cache.
Version de la fonction Lambda
Vous devez utiliser une version numérotée de la fonction Lambda, et non $LATEST ou des alias.
Région Lambda
La fonction Lambda doit résider dans la région USA Est (Virginie du Nord).
Autorisations de rôle Lambda
Le rôle d'exécution IAM associé à la fonction Lambda doit autoriser les principaux de service lambda.amazonaws.com et edgelambda.amazonaws.com à endosser le rôle. Pour de plus amples informations, veuillez consulter Définition des autorisations et rôles IAM pour Lambda@Edge.
Fonctionnalités de Lambda
Les fonctionnalités Lambda suivantes ne sont pas prises en charge par Lambda@Edge :
-
Configurations de gestion de l’environnement d’exécution Lambda autres que Auto (par défaut)
-
Configuration de votre fonction Lambda pour accéder à des ressources au sein de votre VPC
-
Variables d’environnement Lambda (à l’exception des variables d’environnement réservées, qui sont automatiquement prises en charge)
-
Fonctions Lambda avec la Gestion des dépendances AWS Lambda à l’aide de couches
-
Simultanéité allouée Lambda
Note
Les fonctions Lambda@Edge partagent les mêmes capacités de simultanéité régionale que toutes les fonctions Lambda. Pour de plus amples informations, veuillez consulter Quotas sur Lambda@Edge.
-
Création d'une fonction Lambda à l'aide d'une image de conteneur
-
Fonctions Lambda avec plus de 512 Mo de stockage éphémère
-
Utilisation d’une clé gérée par le client pour votre package de déploiement .zip
Environnements d'exécution pris en charge
Lambda@Edge prend en charge les dernières versions des environnements d’exécution Node.js et Python. Pour obtenir la liste des versions prises en charge et leurs futures dates d’obsolescence, consultez Environnements d’exécution pris en charge dans le Guide du développeur AWS Lambda .
Astuce
-
À titre de bonne pratique, privilégiez les versions les plus récentes des environnements d’exécution fournis afin de bénéficier des améliorations de performance et des nouvelles fonctionnalités.
-
Vous ne pouvez pas créer ni mettre à jour de fonctions avec des versions obsolètes de Node.js. Vous ne pouvez associer les fonctions existantes à ces versions qu'à des CloudFront distributions. Les fonctions avec ces versions qui sont associées aux distributions continueront de s’exécuter. Toutefois, nous vous recommandons de déplacer votre fonction vers des versions plus récentes de Node.js. Pour plus d'informations, consultez la politique de dépréciation des environnements d'exécution dans le guide du AWS Lambda développeur et le calendrier de publication de Node.js
sur. GitHub
CloudFront en-têtes
Les fonctions Lambda @Edge peuvent lire, modifier, supprimer ou ajouter n'importe lequel des CloudFront en-têtes répertoriés dans. Ajouter des en-têtes de CloudFront demande
Remarques
-
Si vous CloudFront souhaitez ajouter ces en-têtes, vous devez les configurer CloudFront pour les ajouter à l'aide d'une politique de cache ou d'une politique de demande d'origine.
-
CloudFront ajoute les en-têtes après l'événement de demande de visualisation, ce qui signifie que les en-têtes ne sont pas disponibles pour les fonctions Lambda @Edge dans une demande de visualisation. Les en-têtes ne sont disponibles que pour les fonctions Lambda@Edge dans une demande d’origine et une réponse d’origine.
-
Si la demande du lecteur inclut des en-têtes portant ces noms et que vous avez configuré pour ajouter ces en-têtes CloudFront à l'aide d'une politique de cache ou d'une politique de demande d'origine, les valeurs d'en-tête CloudFront figurant dans la demande du lecteur sont alors remplacées. Les fonctions orientées vers le spectateur voient la valeur d'en-tête de la demande du lecteur, tandis que les fonctions orientées vers l'origine voient la valeur d'en-tête ajoutée. CloudFront
-
Si une fonction de demande d'affichage ajoute l'
CloudFront-Viewer-Countryen-tête, elle échoue à la validation et CloudFront renvoie le code d'état HTTP 502 (Bad Gateway) au visualiseur.
Restrictions relatives au corps de la requête avec l'option Inclure le corps
Lorsque vous choisissez l’option Inclure le corps pour exposer le corps de la demande à votre fonction Lambda@Edge, les informations et les limites de taille suivantes s’appliquent aux parties du corps qui sont exposées ou remplacées.
-
CloudFront base64 code toujours le corps de la requête avant de l'exposer à Lambda @Edge.
-
Si le corps de la requête est volumineux, CloudFront tronquez-le avant de l'exposer à Lambda @Edge, comme suit :
-
Pour les événements de requête d'utilisateur, le corps est tronqué à 40 Ko.
-
Pour les événements de requête de l'origine, le corps est tronqué à 1 Mo.
-
-
Si vous accédez au corps de la demande en lecture seule, CloudFront envoie le corps de la demande d'origine complet à l'origine.
-
Si votre fonction Lambda@Edge remplace le corps de la demande, les limites de taille suivantes s’appliquent au corps que la fonction renvoie :
-
Si la fonction Lambda@Edge renvoie le corps en texte brut :
-
Pour les événements de demande utilisateur, la limite de taille du corps est fixée à 40 Ko.
-
Pour les événements de demande à l’origine, la limite de taille du corps est fixée à 1 Mo.
-
-
Si la fonction Lambda@Edge renvoie le corps en tant que texte codé base64 :
-
Pour les événements de demande utilisateur, la limite de taille du corps est fixée à 53,2 Ko.
-
Pour les événements de demande à l’origine, la limite de taille du corps est fixée à 1,33 Mo.
-
-
Note
Si votre fonction Lambda@Edge renvoie un corps qui dépasse ces limites, votre demande échouera avec un code de statut HTTP 502 (Erreur de validation Lambda). Nous vous recommandons de mettre à jour votre fonction Lambda@Edge afin que le corps ne dépasse pas ces limites.
Délai de réponse et délai d’attente des connexions actives (origines personnalisées uniquement)
Si vous utilisez des fonctions Lambda@Edge pour définir le délai de réponse ou le délai d’attente des connexions actives pour les origines de votre distribution, assurez-vous de définir une valeur que votre origine est capable de prendre en charge. Pour de plus amples informations, veuillez consulter Quotas de délai de réponse et d’attente des connexions actives.