我们在无服务器 api 中有一个 POST 端点,它监听 Magento 2 集成激活回调并处理有效负载。此回调请求的 Content-Type 为application/x-www-form-urlencoded
。但是,当我们尝试获取回调时,lambda 函数会立即完成执行,跳过整个函数体。我们在 Cloudwatch 日志中看到的仅此而已。甚至console.log
不打印。(端点只向控制台打印一个字符串。没有异步操作。但这个问题仍然存在)
2020-12-12T12:24:47.012+05:30 START RequestId: 4afba03d-54ef-4b5e-bd44-157b0b7a9f9b Version: $LATEST
2020-12-12T12:24:47.050+05:30 END RequestId: 4afba03d-54ef-4b5e-bd44-157b0b7a9f9b
2020-12-12T12:24:47.050+05:30 REPORT RequestId: 4afba03d-54ef-4b5e-bd44-157b0b7a9f9b Duration: 37.83 ms Billed Duration: 38 ms Memory Size: 128 MB Max Memory Used: 109 MB Init Duration: 893.79 ms
当我们尝试使用 Content-Type: application/json 从 POSTMAN 访问相同的端点时,端点按预期工作。
因此,我们认为问题可能出在Content-Type
标头上,并在某处读到添加请求映射模板可以解决此问题。application/x-www-form-urlencoded
因此,我们甚至不时在 lambda 方法的集成请求中添加了内容类型的映射模板,内容如下。但不幸的是,我们的问题并没有解决。
"{ "body": "$util.base64Decode($input.body)" }"
{
"formparams" : $input.json('$')
}
{
"body" : $input.json('$')
}
我的问题是:我们如何设置端点来打印 POST 请求有效负载,防止它立即退出? 一周以来,我们一直在寻找解决此问题的方法。如果有人能输入他们有用的、有价值的建议来解决这个问题,那将是一个很大的帮助。提前致谢