【问题标题】:Test lambda returns different result from API gateway test and Postman测试 lambda 从 API 网关测试和 Postman 返回不同的结果
【发布时间】:2020-07-07 16:22:09
【问题描述】:

我有一个 Lambda 函数来提取 Json 中的键。

它能够从我的 Lambda 测试事件中提取密钥,但如果我使用 API 网关方法测试或 Postman 发送相同的 Json 主体则不能。 lambda 代码如下:

def lambda_handler(event, context):

    if 'name' in event.keys():

这是我的 lambda 测试事件中的 Json 和 Postman 中的帖子正文:

{
  "name"   : "bob",
  "age"    : "5"
}

【问题讨论】:

  • 我强烈推荐:print(json.dumps(event, indent=2))
  • API 网关 aws_proxy 与 lambda 的集成使用不同的 event format

标签: json amazon-web-services aws-lambda postman aws-api-gateway


【解决方案1】:

当 API-Gateway 将 Postman 有效负载发送到 Lambda 时,会添加一大堆额外信息,您可以使用 print(event) 查看这些信息。如果您想使用 Lambda 测试来模拟 Postman 有效负载,则需要将 Lambda 测试有效负载更改为相同。

试试这样的: 1. 通过 Postman 发送一个有效负载并在您的 Lambda 中使用 print(event) 来查看该有效负载的样子。 2. 将您进入步骤 (1) 的有效负载复制到 Lambda 测试用例中。

瞧,您的 Lambda 测试和 Postman 调用应该产生相同的结果。

要访问 Postman 发送的 JSON 对象,您现在需要使用 dict = json.loads(event['body'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-06
    • 2017-04-20
    • 1970-01-01
    • 2019-10-25
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多