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