我正在尝试使用API网关进行一些不同的基本路由。 我需要实现以下场景:
用户提出请求xxxx-execute-api.eu-west-1.amazonaws.com/prod/api1/a/b/../n?param1=val1&parma2 = val2 ...& paramn = valn请求应该转到 api1 .back.end / a / b /../ n?param1 = val1& parma2 = val2 ...& paramn = VALN
用户提出请求xxxx-execute-api.eu-west-1.amazonaws.com/prod/api2/a/b/../n?param1=val1&parma2 = val2 ...& paramn = valn请求应该转到 api2 .back.end / a / b /../ n?param1 = val1& parma2 = val2 ...& paramn = VALN
用户提出请求xxxx-execute-api.eu-west-1.amazonaws.com/prod/*****/a/b/../n?param1=val1&parma2=val2。 ..& paramn = valn请求应该转到 api3 .back.end / a / b /../ n?param1 = val1& parma2 = val2 ...& paramn = valn
路由应该基于阶段之后的第一个路径索引完成,之后的所有其他内容都应该传递给http后端(如透明代理)。
换句话说,如果路径索引1为 api1 ,则在路径索引1之后将请求转发到带有完整URI的 api1 .back.end;如果路径索引1为 api2 ,则在路径索引1之后将请求转发到带有完整URI的 api2 .back.end;如果路径索引1 其他任何而不是显式值api1或api2,请在路径索引1之后将完整URI转发到 api3 .back.end的请求;
如果不添加任何额外的图层(lambda,cloudfront,ec2等),我将如何实现这一目标?
谢谢!
答案 0 :(得分:2)
API Gateway今天不支持此用例;必须在API定义中明确定义每个方法和路径。
支持此类直通代理是我们从其他客户那里听到的请求,我们可能会考虑在将来更新服务时支持它。
更新2016年10月20日:我很高兴地宣布,我们已经推出了一系列功能,以便按上述方式代理请求。有关详细信息,请参阅我们的announcement。