我想根据请求中收到的请求标头将传入的请求代理到不同的端点。
在AWS API网关中,我可以将不同的端点设置为单独的阶段变量,但是在集成>>端点URL设置中,我想根据请求标头值的值来选择阶段变量。
例如:
如果标头值是brand-id:abc,则请求应代理到abc.test.com
如果标头值是brand-id:pqr,则请求应代理到pqr.test.com
我希望在“端点URL”值中有类似这样的内容: http:// $ {stageVariables。$ {method.request.header.brand-id}} /
任何帮助实现这一目标的方法将不胜感激。
答案 0 :(得分:0)
AFAIK在API网关级别上是不可能的。选项是在lambda集成级别上进行映射。
答案 1 :(得分:0)
您可以使用Lambda代理集成来实现类似的行为:
您可以使用python的适配器模式或字符串参数格式来避免if和else条件的混乱。您还可以考虑通过RequestResponse
调用直接从代理Lambda调用Lambda,这可以节省一些时间,这是由API网关的额外层引起的。