Мы используем версию FastAPI 0.111.0
для нашего приложения. Запускаем сервер uvicron
, как показано ниже, это работает на компьютере с Windows в нашей среде разработки/тестирования. Когда мы развертываем этот код в кластере Azure Kubernets, во время запуска дочерний процесс умирает.
uvicorn.run(
"main:app",
host='0.0.0.0',
port=8080,
log_level = "DEBUG",
workers=3
)
Сообщение об ошибке:
INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
INFO: Started parent process [1]
INFO: Waiting for child process [12]
INFO: Child process [12] died
INFO: Waiting for child process [13]
INFO: Child process [13] died
INFO: Waiting for child process [14]
INFO: Child process [14] died
INFO: Waiting for child process [13]
INFO: Child process [13] died
INFO: Waiting for child process [15]
Если мы удалим аргумент workers
для вызова uvicron.run
, приложение запустится в AKS. Я хотел бы понять, почему дочерний процесс умирает с аргументом workers
.
Спасибо
Предоставьте свой Dockerfile.
То же самое. Откат на старую версию фастапи.
pip install fastapi[all]==0.110.3
редактировать: Не сработало.
редактировать 2: изменить рабочих с 4 на 2, сработало
редактировать 3: Произошло снова. Поменял рабочих с 2 на 1, сработало
Это похоже на обходной путь, хотелось бы увидеть исправление в новой версии.
Кажется, это ошибка: https://github.com/encode/uvicorn/discussions/2372
Это будет исправлено в версии 0.30.2: https://github.com/encode/uvicorn/pull/2380
Я обновил uvicorn до 0.30.3, но проблемы остались.
Это обсуждение может помочь.