Назад | Перейти на главную страницу

Как запустить manage.py в Google App Engine?

Я последовал этому руководству:

https://codeburst.io/beginners-guide-to-deploying-a-django-postgresql-project-on-google-cloud-s-f flexible-app-engine-e3357b601b91

чтобы развернуть приложение Django в Google App Engine. Он есть, он работает, но мне нужно запустить миграции и создать пользователя. Как мне бежать manage.py на тех серверах? Я нашел, как подключиться к ним по SSH из консоли Google Cloud Platform, но когда я нахожусь на сервере, я не могу найти, как загрузить правильную среду Python и / или запустить manage.py.

Я также читаю Запуск Django в гибкой среде App Engine который не объясняет, как это сделать, и их файл конфигурации, похоже, предполагает, что учетные данные базы данных попадут в репозиторий git для приложения, что является большим ноно. Я этого не делаю, поэтому подключение к производственной базе данных с моей рабочей станции затруднительно.

Если бы это был Heroku, например, я бы сделал это на своей рабочей станции разработчика:

heroku run python manage.py migrate

или

heroku run python manage.py createsuperuser

и он будет выполнять эти команды на сервере. Я пытаюсь сделать то же самое с Google App Engine Flexible (а также со стандартным).

Возможно, это полезно для кого-то еще, кто сталкивается с этим. Конечно, желательно использовать ответ @ George для нормальной работы, но в крайнем случае вы можете запустить команду python из App Engine. Мне недавно пришлось для отладки. Я использовал SSH-доступ в приложении Двигатель -> Экземпляры в Панели управления GCP. В моем случае я использовал гибкую среду, которая запускает докер внутри экземпляра виртуальной машины, поэтому есть несколько шагов.

  1. Перейдите в GCP -> Engine -> Instances и подключитесь к экземпляру по SSH.
  2. После запуска сеанса SSH убедитесь, что ваши контейнеры работают: docker ps. В моем случае мое приложение Django работало в контейнере с именем gaeapp.
  3. Docker exec в контейнер: docker exec -it gaeapp /bin/bash
  4. Если эта команда работает, вы теперь находитесь в работающем контейнере для своего приложения. Запустите вашу команду. Например: python manage.py help

НОТА: Эти среды следует считать эфемерными, и вам не следует делать это частью какого-либо последовательного рабочего процесса. Когда экземпляр App Engine переводится из режима отладки обратно в нормальный режим работы, очень вероятно, что он будет уничтожен, и его заменит новый экземпляр. Это означает, что все созданные файлы будут потеряны. Это также означает, что любые сгенерированные файлы будут существовать только на одном из потенциально многих экземпляров виртуальных машин.

Предполагается, что вы должны запускать manage.py локально, в своей среде разработки, чтобы упорядочить файлы с учетом развертывания, а не после их развертывания на серверах. Вы можете получить более подробную информацию из статьи «Запуск Django в гибкой среде App Engine» в Интернете. документ.