gcloud: как загрузить приложение через cli


Я depolyed приложение gcloud просматривать приложения развернуть.

Есть ли способ загрузить его на другую локальную машину? Как я могу получить файлы? Я попробовал его через ssh без успеха (не могу получить доступ к docker dir)

Обновление: Я нашел это:

gcloud preview app modules download default --version 1 --output-dir=my_dir

Но это не загрузка файлов

Log

Downloading module [default] to [my_dir/default]
Fetching file list from server...
|- Downloading [0] files...                                 -|
3 3

3 ответа:

В настоящее время лучший способ сделать это-вытащить файлы из Docker.

Перевести экземпляр в автономный режим, чтобы вы могли использовать ssh:

$ gcloud preview app modules set-managed-by default --version 1 --self

Найдите имя экземпляра:

$ gcloud compute instances list | grep gae-default-1

Скопируйте его из контейнера Docker, измените разрешения и скопируйте обратно на локальную машину:

$ gcloud compute ssh --zone=us-central1-f gae-default-1-1234 'sudo docker cp gaeapp:/app /tmp'
$ gcloud compute ssh --zone=us-central1-f gae-default-1-1234 "chown -R $USER /tmp/app"
$ gcloud compute copy-files --zone=us-central1-f gae-default-1-1234:/tmp/app /tmp/
$ ls /tmp/app
Dockerfile
[...]

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

Я обычно загружал свой код загруженной версии с помощью appcfg.py

Используя следующую команду.

appcfg.py download_app -A <app_id> -V <version> <output-dir>

Но, конечно, теперь, когда они достигли кульминации всего в оболочке gcloud, где appcfg.py недоступно.

Однако, следующий метод помог мне загрузить развернутый код.

  1. перейдите на консоль и откройте движок приложений Google.
  2. Выберите проект, с которым вы хотите работать.

  3. Как только откроется панель мониторинга проекта, Нажмите в правом верхнем углу, чтобы откройте встроенное окно консоли.

    Введите описание изображения здесь

  4. Который должен загрузить облачную оболочку в нижней части, теперь, если вы проверите appcfg.py доступно для использования в этой виртуальной машине.

    введите imagedescription ее[2]

  5. Поэтому используйте appcfg.py download_app -A <app_id> -V <version> <output-dir> для загрузки кода.

  6. Теперь, когда у вас есть код в нужной папке, чтобы загрузить его на локальную машину-вы можете открыть редактор кода docker

    Введите описание изображения здесь

  7. Теперь здесь я предположил, что если я правильно щелкнул и экспортировал желаемое папка это будет работать,

    Введите описание изображения здесь

    Но вместо этого он дал мне следующую ошибку сообщение.

    {"Error":"'concurrency' must be a number but it is [object Undefined]","Message":"'concurrency' must be a number but it is [object Undefined]"}
    
  8. Итак, я подумал, что, возможно, это будет хорошо подыгрывать, если папка это был архив. Вернитесь в облачную оболочку и используйте все что угодно утилита, которую вы хотите сделать архивом папки

    zip -r mycode.zip mycode
    
  9. Перейдите в редактор кода docker, экспортируйте и загрузите.

    Введите описание изображения здесь

Теперь. конечно, есть еще много способов сделать это (надеюсь), но это то, что имело смысл для меня после возвращения в Google App Engine после 2 годы.

ИМХО, лучший вариант сегодня (август 2018):

В главном меню в разделе Продукты перейдите к пункту Tools -> Cloud Build -> Build history.

Там щелкните по идентификатору нужной сборки.

Затем в открывшемся окне (сведения о сборке) щелкните ссылку source, начнется загрузка вашего сжатого кода.

Вот так просто.

HTH.