Здесь необходимо решить несколько вопросов:
Cloud Shell — это виртуальная оболочка.
Google Cloud Shell — это интерактивная оболочка для Google Cloud Platform.
Среда, в которой вы работаете, представляет собой контейнер, работающий на виртуальной машине в принадлежащем Google проекте внутри GCP.
Вы можете убедиться в этом, проверив сервер метаданных (доступно только для виртуальных машин GCP):
curl -H 'Metadata-Flavor:Google' "http://metadata.google.internal/computeMetadata/v1/?recursive=true&alt=text"
В предоставленных метаданных вы увидите, как создается и настраивается этот контейнер.
Cloud Shell привязана к пользователю, поэтому вы всегда будете получать доступ к одной и той же среде, если будете обращаться к ней с одними и теми же учетными данными, независимо от проекта. Однако, если вы войдете под другим пользователем, вы получите другую среду.
Вы не можете получить доступ к стандартным экземплярам GAE
GAE — это полностью управляемая среда, и вы не сможете получить к ней доступ. Таким образом, вы не сможете найти корень работающего проекта ядра приложения.
Однако, судя по тому, как GAE развертывает ваш код, он использует промежуточную корзину для сбора кода перед компиляцией. Вы можете найти свою промежуточную корзину с помощью API администратора App Engine. а>. Обычно это staging.<PROJECT_ID>.appspot.com
, хотя вы можете изменить эту конфигурацию. Вы можете получить свои файлы оттуда.
Вы можете получить доступ к гибким приложениям GAE
Однако развертывание во flex получает ваши файлы, создает с ними контейнер Docker, а затем развертывает этот контейнер внутри виртуальной машины.
Согласно документации, вы можете подключитесь напрямую к вашему контейнеру, запустив:
gcloud app instances ssh [INSTANCE-NAME] --service [SERVICE] --version [VERSION]
docker exec -it gaeapp /bin/bash
Что касается вашей проблемы
Согласно тому, что вы говорите в комментариях к вопросу, ваша проблема может исходить из множества мест. От изменения оболочки, к которой вы подключаетесь, до сброса среды оболочки (удаления всех файлов) до тысячи различных возможных проблем.
Лучший способ думать об этом — рассматривать Cloud Shell как временную среду для запуска команд, а не как виртуальную машину.
Зная это, вы можете смонтировать постоянную файловую систему (GCS через GCSFuse, Cloud Filestore, ...), чтобы сохранить вашу работу, или просто используйте Git, чтобы ваша работа всегда синхронизировалась на репозиторий.
GAE Flex имеет несколько хороших интеграций с CI, так что это плюс для выбора маршрута Git.
person
Jofre
schedule
15.08.2018