You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS App Runner部署Python应用多次失败:健康检查报错且无法获取应用日志

AWS App Runner部署Python应用多次失败:健康检查报错且无法获取应用日志

最近有没有人成功在AWS App Runner上部署过Python应用?我试了各种方法,但每次都卡在同一个错误上:

01-01-2025 04:44:22 PM [AppRunner] Health check failed on protocol `HTTP`[Path: '/'], [Port: '8080']. Check your configured port number. For more information, see the application logs.
01-01-2025 04:44:35 PM [AppRunner] Deployment with ID : 9719e0a9f3814a5d88c90569994bb10c failed. Failure reason : Health check failed.

我从自己的Python应用开始尝试,后来换成了简单的Python Hello World示例项目,包括一些公开的demo代码——甚至是作者在YouTube视频里演示过、号称可以正常运行的项目,我fork之后部署,还是遇到完全一样的问题。

我已经试过以下所有方法,但都没有解决问题:

  • 同时用源代码和ECR构建好的镜像作为部署源
  • 在AWS控制台配置构建设置,也试过用apprunner.yaml配置文件
  • 修改健康检查配置:调整超时时间,切换TCP/HTTP协议,检查根路径、/health等不同路由
  • 最初用FastAPI监听8000端口,后来试过不同的服务器、不同端口,比如8080、80、8000等
  • 尝试过Python3运行时,包括Python 3.11版本

更头疼的是日志问题:我在本地运行时能看到应用的启动日志,但在App Runner上完全看不到任何应用日志——只有上面那几条有限的部署错误信息,根本不知道部署过程中到底出了什么问题。比如我在示例代码里特意加了日志输出,本地能正常打印,但App Runner上完全看不到这些内容。

以下是我用的示例代码:

server.py

from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response
import os, logging, sys

logging.basicConfig(level=logging.INFO, stream=sys.stdout)
logger = logging.getLogger(__name__)

def hello_world(request):
    name = os.environ.get('NAME')
    if name == None or len(name) == 0:
        name = "world"
    message = "Hello, " + name + "!\n"
    logger.info("api called")
    return Response(message)

if __name__ == '__main__':
    port = int(os.environ.get("PORT"))
    logger.info(f"running main application and listening on port {os.environ.get("PORT")}")
    logger.info(f"value of my port {os.environ.get("MY_PORT")}")
    with Configurator() as config:
        logger.info("configuring apis")
        config.add_route('hello', '/')
        config.add_view(hello_world, route_name='hello')
        app = config.make_wsgi_app()
    server = make_server('0.0.0.0', 8080, app)
    logger.info("starting server")
    server.serve_forever()

Dockerfile

FROM public.ecr.aws/amazonlinux/amazonlinux:latest
RUN yum install python3.7 -y && curl -O https://bootstrap.pypa.io/get-pip.py && python3 get-pip.py && yum update -y
COPY . /app
WORKDIR /app
RUN pip3 install -r requirements.txt
CMD python3 server.py
EXPOSE 8080

有没有人遇到过类似的App Runner部署Python应用的困境?有没有确实能正常运行的Python示例项目?或者App Runner现在对Python应用的支持是不是存在什么问题?

我真的很需要任何能帮我排查问题的线索,哪怕是怎么才能看到App Runner上的应用日志也好,谢谢大家!

备注:内容来源于stack exchange,提问作者Sathiesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 12:28:03