3

I have an Android App, and a backend for that app deployed in Google AppEngine.

I am looking for something like an API gateway inside the google cloud which can route the app to a specific backend version, depending on the client version (e.g. passed via header?), without specifying the targeted backend version explicitly in the app (which would always require an app release).

For instance implemented in the client:
https://my-app.appspot.com (Header: X-MyApp-Appversion: 14)

Api Gateway:
for X-MyApp-AppVersion between 1 and 5 -> https://v1-dot-my-app.appspot.com
for X-MyApp-AppVersion between 6 and 11 -> https://v2-dot-my-app.appspot.com
for X-MyApp-AppVersion greater than 11 -> https://v3-dot-my-app.appspot.com


Already tried solutions:
Targeting the version directly in the app would require an app update every time we deploy a new version in the backend.
Overwriting existing backend versions would mean a downtime for the backend, I tried that once and lost >100 requests.
Using dispatch.yaml, you can only target specific services, not versions of a service.
The load balancer and traffic director seem to be more complicated and not really fitting for this purpose.

stschmitt
  • 175
  • 1
  • 9

1 Answers1

0

To my understanding there is no available way currently to redirect requests to a specific App Engine version depending on a request header.

A workaround for this could be creating an App engine service with some logic that would forward requests to the desired version of your current service depending on the request header.

Another workaround could be deploying a new service for newer versions of the app.

Jose V
  • 1,356
  • 1
  • 4
  • 12