Развертывание приложения предварительного просмотра gcloud загружает все файлы исходного кода каждый раз в проекте python, что занимает много времени

После того, как я недавно обновил компоненты gcloud с gcloud components update до версии 108.0.0, я заметил, что команда gcloud preview app deploy app.yaml каждый раз занимает слишком много времени (около 15 минут) для моего проекта. Раньше это занимало всего около минуты.

Я понял, что использование gcloud preview app deploy --verbosity info app.yaml отображает ход процесса развертывания, и я заметил, что каждый файл в исходном коде загружается каждый раз, когда я развертываю, включая файлы в каталоге lib, в котором установлено несколько пакетов, около 2000 файлов, поэтому здесь задержка исходит от. Поскольку я новичок в appengine, я не знаю, нормально ли это.

Проект существует в папке репозитория git, и я заметил, что после каждого развертывания создаются 2 файла в каталоге default, source-context.json и source-contexts.json, и внутри них содержится информация о репозитории git. Я чувствую, что это может быть как-то актуально.

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

Я только начал использовать google appengine месяц назад, поэтому, пожалуйста, не возражайте, если вопрос неверен. Пожалуйста, дайте мне знать, если для решения этой проблемы потребуется дополнительная информация. Спасибо

ОБНОВЛЕНИЕ: я использую gcloud sdk на Ubuntu 14.04 LTS.


person Shark    schedule 05.05.2016    source источник
comment
У вас есть новая версия при каждом развертывании? Или вы повторно используете ту же версию? Если вы повторно используете версию, я считаю, что загружаются только измененные файлы, но если вы меняете версию, загружаются все файлы.   -  person gaefan    schedule 06.05.2016
comment
Хотя мне нравится идея, что, если что-то в новом развертывании выйдет из строя, и мне нужно будет вернуться к предыдущему развертыванию? У меня не будет версии для отката на право? Если это не так и ваше предложение работает, то это правильный ответ. Я дам обновление после того, как подтвержу это. До сих пор я не упоминал --version в команде развертывания, и в этом случае gcloud автоматически создает версию.   -  person Shark    schedule 07.05.2016
comment
@JeffO'Neill я передаю фиксированный --version, а gcloud app deploy иногда загружает только измененные файлы, но иногда загружает их все. пока не знаю почему. (gcloud sdk 182.0.0, app-engine-python 1.9.63, на mac os x.)   -  person ryan    schedule 12.12.2017


Ответы (1)


Да, это ожидаемое поведение, каждое развертывание является автономным, не делается никаких предположений о том, что что-либо «уже развернуто», все артефакты приложения загружаются при каждом развертывании.

Обновление: комментарий Кекито предполагает, что разные инструменты могут вести себя по-разному. Мой ответ относится к версии Python SDK для Linux, независимо от развертывания новой версии или повторного развертывания той же версии.

person Dan Cornilescu    schedule 05.05.2016
comment
ой. но такого не было до того, как я обновил версию gcloud? - person Shark; 06.05.2016
comment
Я всегда был таким AFAIK. Что-то еще могло измениться, это могло быть какое-то временное состояние. Повторите попытку несколько раз, чтобы убедиться, что это не переходный процесс. Если это не так, вернитесь к предыдущей версии, чтобы убедиться, что это действительно связано с обновлением. - person Dan Cornilescu; 06.05.2016
comment
Когда я раньше развертывал новые версии в проекте, это занимало всего минуту, теперь это 15-20 минут. Я попытался откатить предыдущую версию, но безуспешно. Также несколько раз повторял попытку развертывания. Спасибо, буду искать причину. Приму ответ, как только решу, почему раньше это было так быстро. - person Shark; 06.05.2016
comment
Вы также можете взглянуть на эти вопросы и ответы: stackoverflow.com/questions/33769879/, он предлагает альтернативу, которую вы могли бы найти приемлемым. - person Dan Cornilescu; 06.05.2016
comment
Я использую графический интерфейс AppEngineLauncher для развертывания, и он загружает только те файлы, которые изменились. Вы видите такие операторы журнала: 10:41 AM Uploaded 2 files and blobs. - person gaefan; 06.05.2016
comment
Я обычно развертываю изменения и вижу только 2 загруженных файла. Однако иногда сотни, хотя изменились только один или два. Кажется, это функция либо git commit изменения времени доступа к файлу, либо времени, прошедшего с момента последнего развертывания. - person Tom Russell; 03.07.2017