AWS HTTP 网关:没有路径变量的私有集成路由

AWS HTTP 网关:没有路径变量的私有集成路由

我第一次设置 HTTP 网关时遇到了私有集成问题。我希望所有集成都是私有的,但路由功能不太好用。

我有一个带路由的私有集成$default,它运行良好。现在我想安装另一个私有集成,/microservice/并代理其所有端点。

然而,这似乎是不可能的,因为私有集成要求您提供后端 ARN 而不是 URI,因此无法使用路径变量{proxy+}。这导致只有我的微服务的根目录可以通过网关访问 - 所有其他路径都只转到路由$default

如何设置这样的私有集成?理想情况下,我希望这样做:

- /microservice1/{proxy+}
- /microservice2/{proxy+}
- $default

据我了解,目前我只有两个选择:

  • 向全世界公开我的服务并使用贪婪路径变量的公共集成{proxy+}- 并不理想
  • 保持私有集成,但将每个微服务端点定义为网关上的自己的路由 - 维护起来非常烦人

有没有我所没有的好方法可以做到这一点?

答案1

回答我自己的问题 - 这是可能的请求参数映射在请求到达后端之前对其进行转换:

  1. 创建具有贪婪路径变量的路线:/microservice/${proxy}
  2. 在您的私人集成中创建路径映射:overwrite:path = /$request.path.proxy

相关内容