App Engine 404 во время развертывания с appcfg.py
Всякий раз, когда я развертываю свой проект с app_cfg.py, есть 3-4-секундный период времени, когда наш проект возвращает ошибку 404 not found. Я думал, что этого можно избежать, запустив и запустив несколько машин. В облачной консоли он показывает только один запущенный экземпляр, хотя я установил min_idle_instances на три.
Как я могу избежать 404'ing сервера во время развертывания?
Ниже часть файла app.yaml
instance_class: F4
automatic_scaling:
min_idle_instances: 3
max_idle_instances: 6
min_pending_latency: 30ms # default value
max_pending_latency: automatic
max_concurrent_requests: 40
1 ответ
Я вижу 2 возможных объяснения:
если вы развертываете ту же версию службы / приложения, что и та, которая уже несет трафик: вы фактически переписываете код приложения, поэтому GAE остановит все экземпляры и запустит новые. Пока это происходит, приложение не будет работать. Существует также риск продолжительного простоя , слишком рискованно смотри " Непрерывная интеграция / развертывание / доставка в Google App Engine"?
даже если вы развертываете другую версию, но вы сразу переключаете на нее 100% трафика, а трафик высокий - для автоматического масштабирования требуется некоторое время, чтобы проанализировать схему трафика и раскрутить достаточно динамических экземпляров для ее обработки. Подробности см. В разделе Использование миграции или разделения трафика при переходе на новую версию по умолчанию.
Я не думаю, что развертывание с использованием app_cfg.py
или же gcloud app deploy
имеет значение в любом случае.
Всегда развертывание новой версии и постепенное переключение трафика на нее, как только будет подтверждено, что она работает нормально, должно учитывать все эти случаи.
Бесполезные экземпляры не могут помочь, так как они должны быть добавлены с новым кодом. В любом случае, они помогают только во время переходных процессов с высокими пиками, см. Что делает установка Automatic_scaling max_idle_instances на ноль (0)?