Маршрутизация входящих запросов в AppEngine на разные версии - PullRequest
1 голос
/ 23 апреля 2020

У меня есть приложение Android и серверная часть этого приложения, развернутая в Google AppEngine.

Я ищу что-то вроде шлюза API внутри облака Google, которое может перенаправить приложение на указанную c внутреннюю версию, в зависимости от версии клиента (например, передаваемой через заголовок?), Без указания целевого внутренняя версия явно в приложении (которая всегда требует выпуска приложения).

Например, реализовано в клиенте:
https://my-app.appspot.com (заголовок: X-MyApp-Appversion: 14)

Шлюз API:
для X -MyApp-AppVersion между 1 и 5 -> https://v1-dot-my-app.appspot.com
для X-MyApp-AppVersion между 6 и 11 -> https://v2-dot-my-app.appspot.com
для X-MyApp -AppVersion больше 11 -> https://v3-dot-my-app.appspot.com


Уже опробованные решения:
Ориентация на версию непосредственно в приложении потребует обновления приложения при каждом развертывании нового версия в бэкэнде.
Перезапись существующих бэкэнд-версий будет означать простои бэкэнда, я пробовал один раз и потерял> 100 запросов.
Используя dispatch.yaml, вы можете ориентироваться только на определенные c сервисы, а не на версии услуги.
Распределитель нагрузки и директор по трафику c кажутся более сложными и не совсем подходят для этой цели.

1 Ответ

0 голосов
/ 27 апреля 2020

Насколько я понимаю, в настоящее время нет доступного способа перенаправления запросов на указанную c версию App Engine в зависимости от заголовка запроса.

Обходным путем для этого может быть создание службы ядра приложения с некоторыми логиками. c, который будет перенаправлять запросы на нужную версию вашей текущей службы в зависимости от заголовка запроса.

Другим обходным решением может быть развертывание новой службы для более новых версий приложения.

...