View a markdown version of this page

Requêtes et réponses HTTP - AWS Lambda

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.

Requêtes et réponses HTTP

Un point de terminaison Web Function accepte les HTTP/1.1 demandes et les transmet à votre application HTTP/1.1. Lambda rejette les HTTP/1.0 requêtes via HTTP 505 (version HTTP non prise en charge). Lambda préserve la méthode de requête, le chemin, la chaîne de requête, le corps et la plupart des en-têtes. Il supprime ou modifie les en-têtes qui décrivent la connexion entre le client et le point de terminaison. Il ajoute également des en-têtes qui fournissent le contexte de la demande.

Méthodes HTTP

Les points de terminaison Web Function prennent en charge GET HEADPOST,PUT,PATCH,OPTIONS, etDELETE.

Lambda rejette une méthode non prise en charge avec une réponse HTTP 400 avant que la demande n'atteigne votre application.

En-têtes de demandes

Lambda supprime les en-têtes suivants avant de transmettre une demande :

  • Connection, Keep-Alive, Upgrade, Expect, TE, et Trailer

  • Proxy-Authenticate, Proxy-Authorization et Proxy-Connection

  • X-Real-IP

  • X-HTTP-Method-Override, X-HTTP-Method et X-Method-Override

  • En-têtes dont le nom commence lambda-web- par et en-têtes nommés dans l'en-tête Connection

Lambda valide ou modifie les en-têtes suivants.

En-tête Comportement
Host Doit être le nom de domaine du point de terminaison de la fonction Web (par exemple,bcdfghjklmnpqrst.b7t.lambda-web.us-east-1.on.aws), en minuscules et sans port. Lambda achemine sur cette valeur et renvoie HTTP 404 si elle ne correspond pas à un point de terminaison, ou HTTP 400 si l'en-tête est manquant. Votre application reçoit le nom de domaine du point de terminaison.
X-Forwarded-For Lambda ajoute l'adresse IP du client qui se connecte comme dernière valeur. Les valeurs antérieures proviennent du client et ne sont pas validées. Lorsqu'une CloudFront distribution Amazon se trouve devant le point de terminaison, la dernière valeur est une CloudFront adresse.

Lambda effectue des transferts X-Forwarded-Host depuis le client sans validation. Ne l'utilisez pas pour créer des redirections, des URL absolues ou des autorisations basées sur l'hôte, sauf si une porte d'entrée que vous contrôlez le définit.

Lambda ajoute les en-têtes suivants.

En-tête Description
lambda-web-request-id Identifiant que Lambda attribue à la demande.
lambda-web-endpoint-name Le nom du point de terminaison qui a reçu la demande.

Pour les points de terminaison qui utilisent l'autorisation IAM, Lambda valide la demande signée et supprime l'en-tête avant de la Authorization transmettre. Pour plus d’informations, consultez Utilisation du type IamAuthd'authentification.

En-têtes de réponse

Lambda supprime les en-têtes et les bandes-annonces HTTP limités à la connexion de la réponse de votre application. En fonction du résultat de la demande, Lambda peut ajouter les en-têtes suivants.

En-tête Description
lambda-web-request-id L'identifiant de la demande. Utilisez-le pour corréler une réponse avec les journaux de l'application et du système.
lambda-web-logstream Le flux de journal Amazon CloudWatch Logs qui contient les journaux de l'environnement d'exécution qui a traité la demande.
lambda-web-error-type Type d'erreur, au format <Prefix>.<ErrorReason> (par exemple, Platform.EndpointRequestThrottle ouRuntime.RequestTimeout). Lambda omet cet en-tête pour les erreurs de service internes et les échecs d'autorisation. Pour la liste des valeurs, voirTypes d'erreur liés aux fonctions Web.

Limites d'en-têtes

La ligne de demande, les en-têtes de demande et la ligne vide finale peuvent totaliser jusqu'à 128 KiB. Lambda rejette une demande qui dépasse cette limite avec le protocole HTTP 431 (champs d'en-tête de demande trop grands) avant que la demande n'atteigne votre application. Pour le dépannage, voirLimites des en-têtes de demande.