Загрузка исходного кода App Engine

Из нескольких SO вопросов, которые я видел, видно, что это проблема других пользователей. Недавно один из наших главных разработчиков ушел, и я унаследовал множество его проектов. Одним из них является веб-сайт, который, похоже, работает на движке приложений с облачных платформ Google. Из документации App Engine, чтобы загрузить исходный код, вы используете appcfg.py download_app команда. Что я и сделал, однако единственные результаты, которые я получил от этого звонка:

Fetching file list...
Fetching files...

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

Почесывая мою голову и просматривая различные SO-сообщения, кто-то упомянул кое-что о том, чтобы войти в google cloud vm напрямую и выполнить ту же команду, и, к моему удивлению, обнаружил то же самое поведение, которое я делал в своем локальном терминале.

Это заставило меня понять, что это должно быть что-то еще в игре. Я посмотрел на мой versions на панели инструментов App Engine на GCP. Я вижу, как работает мой экземпляр, он правильно говорит Serving и если я нажму на ссылку, это приведет меня на сайт, который загружается нормально. Однако под Size это говорит 0 B что заставило меня задуматься, возможно, именно поэтому download_app ничего не загружается, потому что версия 0 B?

Я пытаюсь понять, почему для версии написано 0 B, когда сайт работает нормально и как я могу получить исходный код для этого. Вот скриншот для справки

что дает

И скриншот моего терминала (локальный). Очевидно, что я опустил флаги -A и -V, но они установлены правильно, и если я намеренно сделаю их неправильными, я действительно получу сообщение об ошибке.

РЕДАКТИРОВАТЬ

Чтобы все знали, я также убедился, что у моего пользователя были правильные разрешения. Owner, App Engine Owner... и некоторые другие. Я не думаю, что это проблема.

3 ответа

Публикуем это, поскольку ни один из перечисленных в Интернете методов не привел меня к коду (до июня 2021 г.)

Примечание: appcfg.py больше не поддерживается Google.

Вы можете попробовать получить доступ к своему исходному коду через;

Google Cloud Platform> Отладчик> выбор версии приложения из комбинированного списка вверху.

Это отобразит файлы этой версии на левой панели. Невозможно загрузить код автоматически, но вы можете скопировать и вставить код.

Совет: отправьте свой код в репозиторий Git, чтобы избежать этой неприятности в следующий раз.

Надеюсь, вы найдете это полезным.

При развертывании приложения App Engine Flexible исходный код загружается в облачное хранилище вашего проекта в виде корзины с именем staging.<project-id>.appspot.com, Вы можете перемещаться в этом сегменте и загружать исходный код для конкретной версии в виде файла.tar.

В качестве альтернативы, вы можете найти точный URL-адрес облачного хранилища для вашего исходного кода, перейдя в Dev Console > Container Registry > Build History и выберите сборку для вашей версии. Вы найдете ссылку на ваш исходный код в разделе Информация о сборке.

Однако следует отметить, что промежуточная корзина... создается по умолчанию с правилом жизненного цикла, которое автоматически удаляет файлы старше 15 дней. Вы можете удалить это правило, если хотите, чтобы исходный код всех версий хранился неопределенно долго.

В вашем случае я считаю, что это, возможно, не помогло, поскольку файлы, возможно, уже были удалены, но стоит знать, что вы можете получить исходный код оттуда (по умолчанию исходный код не помещается в репозиторий исходного кода, ваш разработчик должен был настроить его вручную),

В консоли разработчика вы можете выбрать соответствующий проект и проверить:

  • на странице Сервисов - какие сервисы, модули AKA - как раньше (и до сих пор) вызывали в разных местах, развернуло ваше приложение
  • на странице Версии - какие версии для каждой из служб развернуты

Эта информация является то, что appcfg.py download_app надеется. Смотрите также:

Вы также можете получить доступ к развернутому исходному коду в режиме реального времени (если все остальное терпит неудачу, это может быть последним средством получения кода, но утомительным), см. Мой ответ на автоматическую индексацию Google Cloud DataStore

Обновить:

Я только сейчас заметил на вашем скриншоте, что это гибкая среда приложения. appcfg.py Документы находятся в разделе стандартной среды, я подозреваю, что это не применимо к гибкой среде, для которой развернутый образ представляет собой образ докера, созданный во время операции развертывания. От развертывания вашего приложения:

Разверните ваше приложение в App Engine, используя gcloud app deploy команда. Эта команда автоматически создает образ контейнера с помощью службы Container Builder, а затем развертывает этот образ в гибкой среде App Engine. Контейнер будет содержать все локальные изменения, которые вы внесли в образ среды выполнения.

Возможно, можно получить доступ к коду на фактическом экземпляре GCE, на котором выполняется приложение, подключившись к запущенному экземпляру и запустив оболочку в контейнере приложения, см. Подключение к экземпляру

Другие вопросы по тегам