【发布时间】:2021-01-17 06:11:14
【问题描述】:
我想根据请求中收到的请求标头将传入请求代理到不同的端点。
在 AWS API 网关中,我可以将不同的端点设置为单独的阶段变量,但在集成 >> 端点 URL 设置中,我想根据请求标头值的值选择阶段变量。
例如:
如果标头值为 brand-id: abc 那么请求应该被代理到 abc.test.com
如果标头值为brand-id: pqr,则请求应代理到pqr.test.com
我在“端点 URL”值中期待这样的内容: http://${stageVariables.${method.request.header.brand-id}}/
我们将不胜感激。
【问题讨论】:
-
你弄明白了吗?我正在寻找类似的东西,也想避免使用 Lambda。
-
API 网关没有开箱即用的支持。我必须使用 lambda 代理函数。
-
可能有点晚了,但也许请求参数映射会有所帮助。在控制台中转到集成 -> 管理集成。然后创建一个参数映射: - 要修改的参数:路径 - 修改类型:覆盖 - 值:类似于
http://${stageVariables.${method.request.header.brand-id}}/ -
@SatishGadhave 如果可以,请您提供您的解决方案或解决方法。谢谢你。这将有助于其他尝试这样做的人。
-
@RaviMCA 如上所述,我使用了 lambda 代理集成。我找到了基于 nodeJS 的代理代码。您可以在单独的文件(模块)中维护端点的映射。参考:stackoverflow.com/a/63602976/1197013
标签: amazon-web-services aws-api-gateway api-gateway amazon-api-gateway