"gcloud app deploy", развертывается неверная версия - PullRequest
0 голосов
/ 24 января 2019

РЕДАКТИРОВАТЬ : Я обнаружил проблему в .pyc файлах. По какой-то причине какой-то компилятор создал .pyc файлы, которые содержали старый код. Когда я загружаю файлы на сервер, сервер не будет компилировать файлы .py. Вместо этого он будет запускать .pyc файлы, загруженные с моего компьютера. Я удалил все файлы .pyc, развернул их, и теперь сервер запускает новый код / EDIT

Когда я запускаю gcloud app deploy, я довольно часто развертываю неправильную версию своего приложения. Мое приложение работает в стандартной среде GAE и написано на Python 2.7.

Я легко могу воспроизвести проблему, если один из моих URL-адресов возвращает жестко закодированную строку, например "test1". Теперь, когда я меняю это между развертываниями, я довольно часто получаю ранее написанную строку от конечной точки.

При запуске приложения на локальном сервере измененная возвращаемая строка верна, но после развертывания строка может относиться к более ранней версии.

Мне нужно развернуть приложение как в тестовой, так и в производственной среде, и я беспокоюсь о развертывании неправильного кода. При развертывании консоли gcloud правильно показывает, что загружаются только 2 файла (если я только редактировал статическую возвращаемую строку).

Я пытался убить все остальные версии из консоли App Engine.

Также пробовал использовать флаг --stop-previous-version.

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

Как я могу убедиться, что мой текущий код правильно развернут?

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Ваше замечание относительно файлов pyc предполагает, что вы, возможно, настроили свой раздел app.yaml skip_files и случайно удалили его значения по умолчанию в процессе, что обычно мешало бы развертыванию pyc (и другие потенциально мешающие файлы) для GAE.Из этого документа (выделено мое):

skip_files имеет следующее значение по умолчанию:

skip_files:
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$

Шаблон по умолчанию исключает файлы резервных копий Emacs с именамифайлы #...# и ... ~, .pyc и .pyo, файлы в каталоге управления версиями RCS и скрытые файлы Unix с именами, начинающимися с точки (.).

КомуРасширите приведенный выше список регулярных выражений, скопируйте и вставьте приведенный выше список в свои app.yaml и добавьте свои собственные регулярные выражения.

Так, чтобы больше не былопозаботьтесь о ручной очистке файлов .pyc, убедитесь, что в вашем разделе skip_files все еще есть указанные выше шаблоны, в частности - ^(.*/)?.*\.py[co]$, который отвечает за файлы .pyc.

0 голосов
/ 24 января 2019

1) Убедитесь, что вы изменили номер версии в app.yaml

2) Перейдите на

https://console.cloud.google.com/appengine/versions?project={your идентификатор проекта}

, чтобы сообщить GCPкакую версию обслуживать, а какую останавливать.

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