Невозможно обновить виртуальную машину с помощью приложения nodejs в Google App Engine
Когда я пытаюсь выполнить развертывание из интерфейса командной строки gcloud, я получаю следующую ошибку.
Copying files to Google Cloud Storage...
Synchronizing files to [gs://staging.logically-abstract-www-site.appspot.com/].
Updating module [default]...\Deleted [https://www.googleapis.com/compute/v1/projects/logically-abstract-www-site/zones/us-central1-f/instances/gae-builder-vm-20151030t150724].
Updating module [default]...failed.
ERROR: (gcloud.preview.app.deploy) Error Response: [4] Timed out creating VMs.
Мой app.yaml:
runtime: nodejs
vm: true
api_version: 1
automatic_scaling:
min_num_instances: 2
max_num_instances: 20
cool_down_period_sec: 60
cpu_utilization:
target_utilization: 0.5
и я успешно вошел в систему и имею правильный идентификатор проекта. Я вижу новую версию, созданную в облачной консоли для App Engine, но после этого появляется ошибка.
В журнале stdout я вижу, что оба экземпляра работают с последним оператором console.log, который я поместил в приложение после того, как оно начинает прослушивать порт, но в shutdown.log я вижу "приложение было нездоровым", а в системном журнале я вижу "ВНИМАНИЕ".: никогда не получал здоровый ответ от приложения, но все равно отправлял /_ah/start запрос."
1 ответ
Из моего опыта работы с nodejs с использованием Google Cloud App Engine я вижу, что "Превышение времени ожидания при создании виртуальных машин" не является традиционным временем ожидания и не связано с созданием виртуальных машин. Я обнаружил, что другие ошибки были зарегистрированы во время запуска сервера - что происходит сразу после создания виртуальных машин. Поэтому я рекомендую проверить вывод консоли, чтобы узнать, говорит ли он вам что-нибудь.
Чтобы увидеть вывод консоли:
- Для экземпляра vm перейдите в /your/ vm instance и выберите нужный экземпляр vm, затем прокрутите вниз и нажмите " Вывод последовательной консоли ".
- Для ведения журнала консоли stdout перейдите на страницу "Мониторинг / ваш / logs", а затем измените раскрывающийся список типов журналов с " Запрос на получение stdout".
Я нашел различия в process.env
при запуске локально против в облаке. Я надеюсь, что вы найдете свое решение тоже - удачи!