App Engine: перенаправление на последнюю версию

Я хотел бы перенаправить моих тестовых пользователей на последнюю версию приложения для ядра приложения. Я слышал, что вы можете получить доступ к новейшей версии с помощью URL latest-dot-project-id.appspot.com, но это только служит версии по умолчанию.

Любые идеи, как перенаправить на новейшую версию, которая может иметь URL version-dot-project-id.appspot.com?

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

1

Решение

Вы должен быть в состоянии использовать общий самый последний ключевое слово (вместо того, чтобы выяснить, какая конкретная версия этого модуля является последней), чтобы найти любой модуль, который вам нужен:

latest-dot-<modulename>-dot-<appname>.appspot.com,

По крайней мере, в Python это работает …

в latest-dot-project-id.appspot.com построить вы не указали имя модуля, который, вероятно, поэтому вы только нажали дефолт модуль.

Более подробная информация в Маршрутизация через URL документа

2

Другие решения

AFAIK, приложения не имеют программного доступа к доступным версиям, поэтому выясните, что для «последней» версии требуется, чтобы вы дали зарезервированное имя. Как насчет test? Загрузите версию для тестирования, используя version: testи пусть ваши тестеры поразят это. Затем, когда вы захотите запустить протестированную версию, загрузите ее снова с «настоящей» версией, а затем установите ее по умолчанию. Эта вторая загрузка должна пройти довольно быстро, если вы ничего не изменили.

FWIW, многие люди используют полностью отдельное имя приложения для своей тестовой версии, чтобы тестировщики не модифицировали производственные данные.

1

Если тестовые пользователи не являются предопределенной группой, которой активно приходится возвращать отзывы, и то, что необходимо / желательно, — это способ медленного развертывания функции в течение определенного периода во время мониторинга журналов и т. Д., Вы можете воспользоваться Разделение трафика в App Engine функциональность. Это можно найти на странице версий страницы проекта вашего движка приложений в консоль разработчика облака

Трафик может быть разделен на основе куки или IP-адресов. Любой из них имеет небольшие причуды, которые можно легко обойти.

Вы должны выбрать, следует ли разделять трафик по IP-адресу или HTTP-cookie. Разделение IP-адресов проще настроить, но разделение файлов cookie является более точным.

Подробнее о разделении трафика Вот.

1

Закончилось использованием API администратора Google App Engine для получения самой новой версии.

            $ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://appengine.googleapis.com/v1beta4/apps/-----/modules/default/versions");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = array();
$headers[] = 'Authorization: Bearer '.json_decode($client->getAccessToken())->access_token;

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$versions = json_decode(curl_exec ($ch))->versions;
curl_close ($ch);

$newest_version = "0";
foreach($versions as $version){
if(str_replace("-", "", $version->id) > str_replace("-", "", $newest_version)){
$newest_version = $version->id;
}
}
0