Ma configuration API Gateway/Lamdba renvoie un en-tête de réponse http: Lamdba utilise la fonction de rappel pour renvoyer la valeur dans le cadre d'un json et la réponse d'intégration la mappe dans un en-tête (à l'aide de integration.response.body)
Avec cette solution, les valeurs sont renvoyées à la fois dans le corps et l'en-tête.
Comment mapper les en-têtes de la réponse Lambda sans dupliquer les valeurs dans le corps de la réponse?
Si vous avez l'intégration du proxy Lambda activée, vous pouvez définir les en-têtes de réponse dans le cadre de la sortie Lambda et API Gateway les renverra dans le cadre de la réponse HTTP à le client.
Exemple Node.js:
callback(null, {
"isBase64Encoded": false, // Set to `true` for binary support.
"statusCode": 200,
"headers": {
"header1Name": "header1Value",
"header2Name": "header2Value",
},
"body": "...",
});
où headers
peut être null ou non spécifié si aucun en-tête de réponse supplémentaire ne doit être renvoyé.
Voir Format de sortie d'une fonction Lambda pour l'intégration du proxy .
et, si vous NE PAS avez intégration du proxy Lamba activé, vous pouvez ajouter (et mapper) les en-têtes de réponse dans la console de passerelle Amazon API:
accédez aux ressources -> exécution de la méthode -> réponse de la méthode -> ajoutez l'en-tête "Access-Control-Allow-Origin" (ou autre) pour le statut http 200. Revenez ensuite à l'exécution de la méthode -> intégration de la méthode -> http status 200 -> définissez le mappage d'en-tête pour "Access-Control-Allow-Origin" sur "*" (ou autre).
Résolution de cette erreur ...: "Aucun en-tête" Access-Control-Allow-Origin "n'est présent sur la ressource demandée"