AWS AppRunner с Python 3.11.x не проходит проверку работоспособности, когда та же конфигурация с Python 3.8.16 проходит

Я пытался развернуть веб-приложение django на AWS AppRunner. Я следовал руководству AWS здесь, которое работает для развертывания приложения, работающего на python 3.8.16. Я попытался выполнить ту же процедуру, но использовать python 3.11.9, который поддерживается AppRunner, но столкнулся с ошибкой подключения, при которой развертывание не проходит проверку работоспособности:

В журнале событий AppRunner будет выведено:

  • Не удалось проверить здоровье протокола TCP [Порт: '8000']. Проверьте настроенный номер порта. Для получения дополнительной информации см. журналы приложений.
  • Развертывание с идентификатором : xxxxxxxxxx не удалось. Причина сбоя: Не удалось выполнить проверку работоспособности.

В журналах приложений будет выведено:

  • Повторная попытка (Retry(total=4, connect=None, read=None, redirect=None, status=None)) после разрыва соединения по ошибке 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at xxxxxxxxx>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/asgiref/
  • .

Я убедился, что в файле startup.sh ссылки на pip и python заменены на pip3 и python3 соответственно, а в apprunner.yaml изменил 'python3' на 'python311' и версию времени выполнения на '3.11.9'. Я пробовал менять TCP-порт (пробовал 8000 и 8080), пробовал менять протокол проверки здоровья на HTTP и порт на 80 - безрезультатно. Я также попробовал изменить расположение групп безопасности (включая разрешение подключения с любого ip-адреса на соответствующих портах) и использовать django-health-check 3.18.2. Когда я повторил попытку с теми же настройками, но изменил среду сборки и запуска на python 3.8, все заработало без проблем.

Я потратил пару дней на эту проблему, поэтому частично размещаю сообщение, чтобы другие могли найти его, но также спрашиваю: есть ли что-то принципиально иное в проверке здоровья 3.11.x, что делает ее отличной от 3.8? Или это ошибка AppRunner?

Похоже, что проблема может быть связана с зависимостями или совместимостью с Python 3.11. Убедитесь, что все зависимости совместимы с Python 3.11. Также проверьте, нет ли каких-либо специфических настроек или обновлений, необходимых для Django или других библиотек при использовании Python 3.11. Вы также можете попробовать запустить приложение локально с Python 3.11, чтобы проверить, сохраняется ли проблема.

Вернуться на верх