我第一次设置 HTTP 网关时遇到了私有集成的问题。我希望我的所有集成都是私有的,但它不适用于路由。
我与$default
路线进行了私人集成,效果很好。现在,我希望将另一个私有集成安装在下面,例如,/microservice/
并代理其所有端点。
然而,这似乎是不可能的,因为私有集成要求您提供后端 ARN 而不是 URI,因此无法使用{proxy+}
. 这导致只有我的微服务的根可以通过网关访问——所有其他路径都只是去$default
路由。
如何建立这样的私有集成?理想情况下,我想要这样的东西:
- /microservice1/{proxy+}
- /microservice2/{proxy+}
- $default
目前据我了解,我只有两个选择:
- 向世界公开我的服务并使用贪婪路径变量的公共集成
{proxy+}
- 不理想 - 保留私有集成,但将每个微服务端点定义为网关上自己的路由 - 维护起来非常烦人
有没有我想念的好方法?
要回答我自己的问题 - 这可以通过在请求到达后端之前转换请求的请求参数映射来实现:
/microservice/${proxy}
overwrite:path = /$request.path.proxy