Почему Go программа зависает при развертывании приложения gcloud? - PullRequest
1 голос
/ 27 марта 2020

Я пытаюсь настроить локальную версию следующего репозитория на github, https://github.com/microsoft/mouselog, я ничего не изменил, но добавил app.yaml со следующим содержимым.

runtime: go112
env: standard

service: mouselogserver

Когда я запускаю развертывание приложения gcloud с помощью инструментов CLI, оно зависает от следующей команды не менее 15 минут.

DEBUG: Executing command: [u'mydir\\google_appengine\\go-app-stager.exe', u'mydir\\server\\app.yaml', u'mydir\\server', 'mydir\\local\\temp\\tmpdtk2gh\\tmpqcbdbm']

Я предполагаю, что это не ожидаемое поведение ? Запуск приложения gcloud с nodejs занимает максимум 30 секунд.

1 Ответ

0 голосов
/ 13 апреля 2020

Как правило, развертывание не займет 25 минут. Ниже я объясню одну из возможных причин.

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

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

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

gcloud app deploy --bucket <YOUR-BUCKET>

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

...