Amazon web services 将API网关用作具有uri(请求路径和变量查询参数)传递的http代理
我正在尝试使用API网关执行一些基本路由。 我需要实现以下场景:Amazon web services 将API网关用作具有uri(请求路径和变量查询参数)传递的http代理,amazon-web-services,routing,aws-api-gateway,Amazon Web Services,Routing,Aws Api Gateway,我正在尝试使用API网关执行一些基本路由。 我需要实现以下场景: 用户发出请求xxxx执行api.eu-west-1.amazonaws.com/prod/api1/a/b/./n?param1=val1&parma2=val2…¶mn=valn请求应转到api1.back.end/a/b/./n?param1=val1&parma2=val2…¶mn=valn 用户发出请求xxxx执行api.eu-west-1.amazonaws.com/prod/api2/a/b/./n?
- 用户发出请求xxxx执行api.eu-west-1.amazonaws.com/prod/api1/a/b/./n?param1=val1&parma2=val2…¶mn=valn请求应转到api1.back.end/a/b/./n?param1=val1&parma2=val2…¶mn=valn
- 用户发出请求xxxx执行api.eu-west-1.amazonaws.com/prod/api2/a/b/./n?param1=val1&parma2=val2…¶mn=valn请求应转到api2.back.end/a/b/./n?param1=val1&parma2=val2…¶mn=valn
- 用户发出请求xxxx执行api.eu-west-1.amazonaws.com/prod/******/a/b/。/n?param1=val1&parma2=val2…¶mn=valn请求应转到api3.back.end/a/b/。/n?param1=val1&parma2=val2…¶mn=valn…¶mn=valn
谢谢大家! API网关目前不支持此用例;每个方法和路径都必须在API定义中明确定义
支持这样的通过代理是我们从其他客户那里听到的请求,我们可以考虑在将来的服务更新中支持它。
更新日期:2016年9月20日:我很高兴地宣布,我们已经推出了一系列功能,允许如上所述的代理请求。有关更多详细信息,请参阅我们的。虽然不理想,但您可以在Lambda中执行此路由/重定向,不是吗?通过返回重定向或代理对目标服务器的调用,也许?@ericpeters0n API网关仍需要支持变量或“贪婪”资源路径,但它不支持。当前,您需要在API网关定义中定义每个资源/方法,并将其映射到集成(例如Lambda).Gist(对于单级路径):
create resource--path part'{proxy+}--parent id{id of/root resource}
put方法——请求参数method.request.path.proxy=true
<代码>放置集成--键入HTTP_代理--uri'http://downstream.domain/{basefile}'--请求参数integration.request.path.basefile=method.request.path.proxy<代码>创建部署