Ошибка при развертывании python в Google App Engine - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь развернуть приложение Python и получаю следующее сообщение об ошибке:

ОШИБКА: (gcloud.app.deploy) Ответ об ошибке: [4] В вашем развертывании есть не удалось стать здоровым в отведенное время и поэтому был свернут назад. Если вы считаете, что это ошибка, попробуйте настроить Параметр app_start_timeout_sec в разделе «readiness_check».

Мой app.yaml:

runtime: python
runtime_config:
  python_version: 3
env: flex
service: newservice
handlers:
- url: /
  script: hello.py

manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

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

Edit: после ответа GAEFan мой привет включил обработчик для readiness_check как:

def post():
    self.response.headers['Content-Type'] = 'application/json'   
    obj = {
      'status': 200, 
    } 
    self.response.out.write(json.dumps(obj))

webapp2.WSGIApplication([
    ('/readiness_check', post())
], debug=True)

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Вы работаете в приложении с гибкой средой, конфигурация handlers является стандартной. Вам необходимо использовать конфигурацию entrypoint для гибкой среды. С Запуск приложения :

Среда выполнения запускает ваше приложение, используя entrypoint, определенный в app.yaml. Точка входа должна запустить процесс, который отвечает к HTTP-запросам на порт, определенный переменной среды PORT.

Без этого ваше приложение на самом деле не работает и не может обслуживать запросы проверки работоспособности.

Может быть полезно: Как определить, относится ли страница документации Google App Engine к стандартной или гибкой среде

0 голосов
/ 03 июля 2018

Readiness checks включены по умолчанию. Таким образом, вы должны настроить обработчики URL для них. В этом случае GAE отправляет запрос на /readiness_check, но у вашего app.yaml нет обработчика для этого URL. Попробуйте это:

handlers:
- url: /.*
  script: hello.py

И убедитесь, что URL-адрес возвращает 200 или аналогичный ответ. Чтобы настроить проверку готовности:

readiness_check:
  path: "/readiness_check"
  check_interval_sec: 5
  timeout_sec: 4
  failure_threshold: 2
  success_threshold: 2
  app_start_timeout_sec: 300

Или:

liveness_check:
  path: "/liveness_check"
  check_interval_sec: 30
  timeout_sec: 4
  failure_threshold: 2
  success_threshold: 2

Подробности по адресу: https://cloud.google.com/appengine/docs/flexible/custom-runtimes/configuring-your-app-with-app-yaml#legacy_health_checks

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...