2016-12-21 3 views
1

(Справочная информация: Я новичок в Google App Engine, знакомый с услугами других провайдеров облачных)Доступ к Google App Engine Python App код в производстве

Ищу доступа/вид, аналогичный оболочки доступ к производству узла.

С помощью приложения Google App Engine на основе Python/Django я хотел бы просмотреть код в процессе производства.

Один вид, который я мог найти, представляет собой представление «Отладка» StackDriver. Однако, по-видимому, код, показанный в представлении «Отладка», не отражает обновленный производственный код (в зависимости от того, что отображается на рабочем месте, например, текст на главной странице отличается).

Включает ли Google App Engine возможность ssh в VM, где работает приложение/код? Если нет, то как проверить код, который работает в процессе производства?

Спасибо.

+0

Ответ очень сильно зависит от того, используете ли вы стандартную среду или гибкую среду. Можете ли вы добавить эту деталь в свой вопрос? – BrettJ

ответ

2

Согласно строке SSH debugging в таблице Comparing environments доступ к SSH поддерживается для приложений с гибкой средой, но не для стандартных приложений среды.

От Connecting to the instance:

Если экземпляр VM находится в режиме отладки, вы можете подключить к своему хозяину с помощью с помощью SSH в консоли или с gcloud.

Для подключения к экземпляру в консоли:

  1. Посетите страницу Cloud Platform Console примеры для вашего проекта: Go to the instances page

  2. Нажмите SSH в правой части строки, содержащей экземпляр, к которому вы хотите получить доступ:

    Это помещает экземпляр в режим отладки и открывает сеанс SSH для экземпляра в терминальное окно.

    Вы также можете выбрать различные варианты запуска сеанса SSH из раскрывающегося списка.

  3. На этом этапе вы находитесь в экземпляре host, в котором работает несколько containers. См. Understanding common containers для получения дополнительной информации.

  4. В окне терминала, список контейнеров, работающих в экземпляре:

    sudo docker ps 
    
  5. Выход из sudo docker ps командных списков каждого контейнера по строкам; найдите строку, содержащую ваш идентификатор проекта: это контейнер с вашим кодом. Обратите внимание на ИМЯ этого контейнера.

  6. По желанию, список записи информации для приложения путем вызова:

    sudo docker logs [CONTAINER-NAME] 
    
  7. Запустите оболочку в контейнере, на котором работает ваш код:

    container_exec [CONTAINER-NAME] /bin/bash 
    
  8. После завершения отладки, введите выход для выхода из контейнера, затем снова выйдите для выхода из сеанса SSH.

  9. Отключить отладку для вашего экземпляра, чтобы она возобновила нормальную работу.

+0

Спасибо, Дэн. Переходя по https://cloud.google.com/appengine/docs/flexible/python/quickstart, кажется, что Flexible Environment идентифицируется командой env: flex в app.yaml? Я не вижу никаких «env:», установленных в app.yaml в моем случае. Я думаю, это исключает опцию ssh. Я пытаюсь определить, что такое код именно в производстве? Похоже, что код, отображаемый в разделе «Отладка» StackDriver, не является правильной версией. В моем случае (по-видимому, стандартная среда), как я могу видеть код в процессе производства, включая код cronjobs? – user362953

+0

Есть опция 'download_app'? https://cloud.google.com/appengine/docs/python/tools/appcfg-arguments#download_app. К сожалению, это не вариант в моем случае, по крайней мере на данный момент. Это работает только для тех, кто загрузил код или владельцев, я тоже. На странице «IAM» моя роль - «Редактор». – user362953

+1

Отсутствие 'env:' в 'app.yaml' указывает на стандартную среду, поэтому нет доступа SSH. –

0

Если вы используете стандартную среду, ответ нет, вы не можете реально проверить или увидеть код непосредственно. Вы упомянули об этом через Stackdriver Debugger, что является одним из способов увидеть его представление.

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

+0

Спасибо. Проблема заключалась в том, что изменения кода были перенесены в prod перед обновлением репо. В идеале нужно иметь установку, в которой код может быть нажат только через систему scm. – user362953