gpt4 book ai didi

amazon-web-services - 集成请求中的Amazon API Gateway的主体映射模板如何工作?

转载 作者:行者123 更新时间:2023-12-04 15:55:03 26 4
gpt4 key购买 nike

我是AWS API网关世界的新手,并且按照API文档中的说明进行操作,例如也是定义的示例here

现在,在我的工作要求中,我想拥有完整的调用者的HTTP header ,以及API网关收到的作为HTTP请求的调用者的IP地址详细信息。

是的,我将示例称为已定义的 here它讨论了$ context变量,没有讨论任何示例的地方。是的,我想将更改后的信息(通过“人体贴图模板”传递给Lambda函数)。

是的,我还提到了有关请求正文传递的讨论-使用三个选项,我选择了全部三个? [正如它一个接一个地说-了解他们的工作原理],但是它的文档充满了困惑,没有可用的示例,也没有地方谈论“为什么”。

enter image description here

我的问题:在什么情况下它将选择特定模板(如我定义的“应用程序/请求”)?我从 postman 发送了请求,并添加了内容类型“application/sumit”,这意味着该内容不是json,而是我的自定义类型,应将其选中(作为正文内容),然后发送到连接的Lambda函数,但是不能按我预期的方式工作(我将所有三个选项一一选择为做事的默认情况)。

这三个选项到底是什么意思:

如果没有模板与请求的Content-Type header 相匹配(例如,如果没有Content-Type是与任何一个都不匹配的abc/abc,则表示什么?)给定的信息:请求正文将传递给没有模板匹配请求Content-Type header 时的集成。

是否未定义模板? (推荐)(为什么建议使用?,其背后的原因是什么,在哪里可以找到答案?)给定信息:仅当未定义映射模板时,请求主体才会传递给集成。

从不(这意味着原始主体应直接转发给Lambda函数,但不是这样吗?)给定信息:请求主体将永远不会传递给集成。内容类型 header 与任何模板都不匹配的请求将被HTTP 415响应拒绝。

enter image description here
enter image description here

最佳答案

我们正在为此改进文档。

现在,我们只建议使用第二个选项(“当未定义模板时”)。

这样可以确保只要为方法定义了请求模板,客户端的请求主体就不会被逐字“传递”给端点。

如果客户端发送与您的模板之一匹配的“Content-Type” header ,则您的映射模板将应用于请求正文并发送到集成。

如果客户端发送的“Content-Type” header 与您的任何模板都不匹配,则请求将失败并显示415错误。

在某些情况下,您可能只想代理从客户端发送到集成的请求正文。在这些情况下,第一个选项(“当没有模板匹配时”)是合适的,但是请注意允许客户端完全控制请求主体进行集成的安全性。

关于amazon-web-services - 集成请求中的Amazon API Gateway的主体映射模板如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37109164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com