AWS Lambda python 函数在输出中给出 json headers

AWS Lambda python function giving json headers in the output

我正在尝试调用 lambda 服务。当我点击 Get 方法(在 Api 网关->阶段->GET 下)调用 Url 时,我还看到了 json headers 和状态代码。但是在 acloud guru 讲座视频中,我只看到 body。谁能告诉我我在这里遗漏了什么。

这是我的 python 函数:

def lambda_handler(event, context):

print("In lambda handler")

resp = {

   "statusCode": 200,

   "headers": {

   "Access-Control-Allow-Origin": "*",

},

"body": "myName"

}

return resp

实际输出:

{"statusCode": 200, "headers": {"Access-Control-Allow-Origin": "*"}, "body": "myName"}

预期输出:

myName

此处您使用了 lambda 代理集成,但未在 API 网关级别启用它。

您可以在集成请求下启用它,见下图

有两种类型的 API 网关和 Lambda 集成

  1. 代理集成 - 对 API 网关的请求直接转发到 lambda,响应从 lambda 发送。我们必须在这个集成
  2. 的 lambda 内部创建具有适当状态代码和 headers 的响应 body
  3. Lambda 集成 - 可以在发送到 lambda 之前修改请求,并且可以使用映射模板从 API 网关级别的 lambda 响应修改响应

此博客 post 提供了有关 2 个集成的更多详细信息 https://medium.com/@lakshmanLD/lambda-proxy-vs-lambda-integration-in-aws-api-gateway-3a9397af0e6d