Restrictions sur 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.

Restrictions sur Lambda@Edge

Les restrictions suivantes s'appliquent uniquement à Lambda@Edge.

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 :

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.