google-app-engine - 将 AppEngine 中的传入请求路由到不同版本

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

我正在寻找类似于谷歌云中的 API 网关的东西,它可以根据客户端版本(例如通过 header 传递?)将应用程序路由到特定的后端版本,而无需在应用程序中明确指定目标后端版本(这总是需要应用程序发布)。

例如在客户端实现:
https://my-app.appspot.com ( header :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
对于大于 11 的 X-MyApp-AppVersion -> https://v3-dot-my-app.appspot.com


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

最佳答案

据我了解,目前没有可用的方法根据请求 header 将请求重定向到特定的 App Engine 版本。

解决此问题的方法是创建一个应用引擎服务,其中包含一些逻辑,可以根据请求 header 将请求转发到当前服务的所需版本。

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

https://stackoverflow.com/questions/61386181/

相关文章:

php - 超时作业挂起 15 或 30 分钟,然后运行

python - 为什么输入永无止境

vba - 在 64 位 VBA 中使用 TaskDialogIndirect

python - 使用(常量)参数保存/加载 Keras 模型

swiftui - 如何在 SwiftUI 中使 UIViewRepresentable 可聚焦在

angular - JSDom karma Angular 设置

r - 如何使用 knitr::kable() 将两个不同大小的表并排顶部对齐

css - Stylus error : "expected "indent", got "outd

python - 为什么在 Python 中从不同路径调用类时 __class__ 不同?

javascript - 排序 mongoose-aggregate-paginate-v2 更改顺