通过API网关将YAML有效负载传递给Lambda函数

时间:2019-08-16 01:22:46

标签: amazon-web-services aws-lambda yaml aws-api-gateway api-gateway

我想知道是否真的可以使用API​​ Gateway POST方法将YAML有效负载格式传递给AWS Lambda函数。我不需要有效负载的任何模型或使用模板对有效负载进行任何检查。我只想将数据以YAML格式传递给Lambda。有没有人成功做到这一点?

我之前使用JSON有效负载将有效负载传递给Lambda,但是由于某些设计问题,我觉得YAML格式有效负载更适合该任务。我尝试在请求正文中传递YAML有效负载,但收到以下错误。我将方法请求标头保留为 Accept:application / yaml 。我在方法请求中将请求正文内容类型保留为 application / yaml

Thu Aug 15 23:47:58 UTC 2019 : Lambda invocation failed with status: 400. Lambda request id: 66991273-f3fd-427f-85a3-eafe4f94251b
Thu Aug 15 23:47:58 UTC 2019 : Execution failed: Could not parse request body into json:

我也搜索了文档,但是却找不到很多。我不知道这是否完全受支持。 enter image description here

2 个答案:

答案 0 :(得分:1)

API网关仅支持JSON payloads的解析和验证。一种解决方法是lambda函数处理有效负载。在lambda函数内部,将内容类型设置为纯文本,解析请求正文并进行验证。

Request body can be retrieved from event.body when the Lambda Proxy Integration is enabled.

答案 1 :(得分:0)

在“请求集成”部分的映射模板中,请添加一个像这样的映射:application / yaml,并且应该使用“方法请求传递”选项来生成模板。

然后在您的lambda中,您将收到原始的Yaml有效负载->您必须自己解析/验证模型。

请参阅附件的屏幕截图。

Mapping Template