Назад | Перейти на главную страницу

Проблемы сборки Google App Engine Cloud

Позвольте мне объяснить мою текущую ситуацию, я пытаюсь разместить Wordpress в среде гибкого App Engine, проблема в том, что я активировал триггеры CloudBuild для CI / CD, но во время развертывания CloudBuild возвращает мне следующую ошибку :

Статус ошибки: UNKNOWN: Ответ об ошибке: [4] DEADLINE_EXCEEDED

Я искал эту ошибку, и все, что я обнаружил, это то, что CloudBuild превысил время сборки, но он настроен на 1800 секунд в файле cloudbuild.yaml и запускает gcloud config set app / cloud_build_timeout , но ошибка не исчезла, я думаю, проблема в том, что CloudBuild пытается отправить образ в реестр контейнеров, потому что если я попытаюсь запустить новую версию App Engine локально с gcloud app deploy команда работала правильно, раньше все развертывания работали правильно, единственное изменение, которое я сделал, было в базовом образе, я использовал alpine в качестве базового образа, я пытался использовать официальные образы ubuntu или php-fpm, но ни один не работал, Я подумал, что, может быть, это проблема с размером образа, но самое странное то, что у развертываний нет 100% отказов, если снова запустить развертывание, которое не удалось, это может сработать, я хотел бы знать, если кто-то иначе возникла эта ошибка, чтобы узнать, как ее исправить

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

поскольку Гибкая среда не устанавливает крайний срок запроса 60 секунд (как в стандартной среде), важно убедиться, что для всех вызовов внешних служб указан тайм-аут, чтобы запросы не зависали на неопределенное время.

Как GCP документация упоминает:

Разработчики приложений могут реализовать свои собственные сервлет фильтр для уничтожения запросов, которые занимают более 60 секунд в гибкой среде. При прерывании потока запроса важно правильно обрабатывать очистку, чтобы приложение не оставалось в несогласованном состоянии.

Другой обходной путь было бы попытаться разбить запрос, который вы делаете, на несколько небольших запросов.

Кроме того, вы можете ознакомиться с кеширование приложений. Кеширование промежуточного кода PHP значительно сократит время отклика вашего приложения.