从AWS lambda设置http响应头

Saa*_*aar 18 amazon-web-services aws-lambda aws-api-gateway

我的API Gateway/Lamdba设置返回一个http响应头:Lamdba使用回调函数将值作为json的一部分返回,Integration Response将其映射到头中(使用integration.response.body)

使用此解决方案,值将在正文和标题中发回.

如何在不重复响应正文中的值的情况下映射Lambda响应中的标头?

Kha*_* T. 35

如果启用了Lambda代理集成,则可以将响应头设置为Lambda输出的一部分,API Gateway将作为HTTP响应的一部分返回给客户端.

Node.js示例:

callback(null, {
    "isBase64Encoded": false, // Set to `true` for binary support.
    "statusCode": 200,
    "headers": {
        "header1Name": "header1Value",
        "header2Name": "header2Value",
    },
    "body": "...",
});
Run Code Online (Sandbox Code Playgroud)

如果不返回额外的响应头,则where headers可以为null或未指定.

请参阅用于代理集成的Lambda函数的输出格式.


B07*_*73N 10

并且,如果你不要兰巴代理集成启用,您可以添加(和地图)在亚马逊的API网关主机的响应头:

转到资源 -> 方法执行 -> 方法响应 -> 为 http 状态 200 添加“Access-Control-Allow-Origin”(或其他)标头。然后返回方法执行 -> 集成响应 -> http 状态 200 ->将“Access-Control-Allow-Origin”的标头映射设置为“*”(或其他)。

解决了这个错误...:“请求的资源上不存在‘Access-Control-Allow-Origin’标头”