将AppEngine中的传入请求路由到不同版本

时间:2020-04-23 11:30:04

标签: google-app-engine api-gateway api-versioning

我有一个Android应用,并在Google AppEngine中部署了该应用的后端。

我正在寻找类似于Google云端之类的API网关的东西,该API可以将应用程序路由到特定的后端版本,具体取决于客户端版本(例如,通过标头传递吗?),而无需在应用程序中明确指定目标后端版本(这始终需要发布应用)。

对于在客户端中实现的实例:
https://my-app.appspot.com(标题:X-MyApp-Appversion:14)

Api网关:
在1到5之间的X-MyApp-AppVersion-> https://v1-dot-my-app.appspot.com
适用于6到11之间的X-MyApp-AppVersion-> https://v2-dot-my-app.appspot.com
X-MyApp-AppVersion大于11-> https://v3-dot-my-app.appspot.com


已经尝试过的解决方案:
每次我们在后端部署新版本时,直接在应用中定位版本都需要对应用进行更新。
覆盖现有后端版本将意味着后端停机,我尝试了一次,并丢失了100多个请求。
使用dispatch.yaml,您只能定位特定的服务,而不能定位服务的版本。
负载均衡器和流量导向器似乎更复杂,并且不完全适合此目的。

1 个答案:

答案 0 :(得分:0)

据我所知,当前没有可用的方法可以根据请求标头将请求重定向到特定的App Engine版本。

一种解决方法是使用某些逻辑创建一个App Engine服务,该逻辑将根据请求标头将请求转发到当前服务的所需版本。

另一种解决方法是为新版本的应用程序部署新服务。