Aws lambda AWS网关未在外部调用上应用映射

Aws lambda AWS网关未在外部调用上应用映射,aws-lambda,aws-api-gateway,Aws Lambda,Aws Api Gateway,我有一个AWS网关端点:mypath/{some_id} 我有一个自定义映射将该id发送到Lambda函数,并发送网关的stage(dev或prod): 除此之外,我在请求体上发送了一些自定义数据,比如{“some\u attr”:“some\u value”} 我有两个独立但相关的问题: 如果我从外部命中端点(例如使用curl),则不会应用映射,只有{“some_attr”:“some_value”}作为事件到达Lambda函数 如果我从网关的仪表板中点击端点(通过使用“test”选项),则会

我有一个AWS网关端点:
mypath/{some_id}

我有一个自定义映射将该id发送到Lambda函数,并发送网关的stage(dev或prod):

除此之外,我在请求体上发送了一些自定义数据,比如
{“some\u attr”:“some\u value”}

我有两个独立但相关的问题:

  • 如果我从外部命中端点(例如使用
    curl
    ),则不会应用映射,只有
    {“some_attr”:“some_value”}
    作为
    事件到达Lambda函数
  • 如果我从网关的仪表板中点击端点(通过使用“test”选项),则会应用映射,但请求主体参数是隐藏的,因此只有
    {“some_id”:“$input.params('some_id')”,“aws_Gateway_stage”:“$context.stage”}
    作为事件到达我的Lambda函数

  • 这种行为的原因是什么?

    网关仪表板中的“测试”将发送标题内容类型=application/json。映射模板将用于特定的内容类型。在从curl进行测试时是否发送了application/json的内容类型?这就是问题所在。谢谢
    {
      "some_id": "$input.params('some_id')",
      "aws_gateway_stage": "$context.stage"
    }