当前位置: 首页 > 知识库问答 >
问题:

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

彭阳荣
2023-03-14

我想知道是否可以使用API网关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:

共有2个答案

弓明亮
2023-03-14

在请求集成部分的映射模板中,请添加如下映射:application/yaml,模板应使用“method-Request-passthrough”选项生成。

然后在你的λ中,你会收到生yaml有效载荷-

请参阅附加的屏幕截图。

程阳平
2023-03-14

API网关仅支持JSON有效负载的解析和验证。一个变通解决方案是处理有效载荷的lambda函数。在lambda函数中,将内容类型设置为纯文本,解析请求正文并验证。

请求正文可以从事件中检索。启用Lambda代理集成时的body

 类似资料:
  • 我有一个用Java编写的AWS Lambda函数,它由AWS API网关调用触发。 我试图向其中一个endpoint发出请求,并使用JSON作为有效负载。 然后,网关将检测,并通过默认模板传递所有请求参数(包括正文)。有趣的是这一部分 它应该给我一张

  • 我是aws lambda和api网关的新手,我正在尝试向lambda函数传递一个json字符串。 但是,lambda不是用字符串调用的。 这是lambda。它获取一个对象作为输入,并返回类的字符串表示形式和对象的值。 api网关的映射模板是 api网关测试中的日志显示: 我希望json字符串被传递给lambda(作为字符串对象),但是TestMapping lambda返回的不是这个 如您所见,L

  • 我正在尝试使用此解决方案将我的Api-Gateway地图应用程序/x-wow-form-urlencoded到json:如何从Amazon API Gateway将参数从POST传递到AWS Lambda 但是到目前为止,我的lambda被成功触发,只有我的request.body总是空的。如果有人知道如何使用. net-core c#处理它,我真的很感激洞察力。 到目前为止,我的无服务器lamb

  • 我正在使用AWS API网关的自定义授权器来验证应用程序的令牌, 我能够正确地使用自定义授权器, 即。能够验证令牌并返回IAM策略, 该策略决定是否允许将请求转发到业务逻辑Lambda函数。 到目前为止,我发现有两种方法可以实现这一点- 1。将数据作为要返回的策略中的主体Id。 2。在策略的Context对象中设置数据,该对象可以根据代码作为检索 我正在尝试第二种方法,但无法检索在上下文中设置的数

  • 问题内容: 我知道该主题有很多答案,但是找不到解决我问题的方法。我有一个如下所示的ASP.NET MVC Web API: 我尝试这样称呼它: 然后,URL如下所示: 选择: 网址: 两种方法都不起作用。 我是否真的必须以字符串形式发送和接收它或使用POST? 问题答案: 不,不要尝试在GET请求中发送JSON。将JSON与其他具有主体的动词一起使用,例如POST和PUT。 通过使用属性装饰您的a