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

含PyTorch的AWS App Runner服务健康检查失败排查求助

故障分析与解决:AWS App Runner添加Torch后健康检查失败

核心原因

  1. 启动超时触发健康检查失败:Torch是大型机器学习库,在App Runner的轻量实例上完成加载初始化的时间远长于基础Flask应用,超过了默认健康检查的等待窗口(默认启动延迟0秒、检查间隔5秒、超时2秒),导致健康检查在应用完全启动前就判定失败。
  2. Slim镜像缺失系统依赖:python:3.7-slim为精简镜像,缺少Torch运行必需的系统库(如libgomp1、libopenblas-base),导致容器内应用启动失败,但本地环境已预装这些依赖,因此本地运行正常。

解决步骤

1. 调整健康检查配置

登录AWS控制台进入App Runner服务配置页面,修改健康检查参数:

  • 将启动延迟时间设置为60-120秒(根据实际启动时长调整),给应用足够时间完成Torch初始化和Flask启动
  • 可选:将超时时间调至5-10秒,失败阈值提高至5次,降低偶发启动延迟导致的误判

2. 补充Dockerfile系统依赖

修改Dockerfile,在安装Python依赖前添加系统库安装步骤:

FROM python:3.7-slim

# 安装Torch运行必需的系统库
RUN apt-get update && apt-get install -y --no-install-recommends \
    libgomp1 \
    libopenblas-base \
    && rm -rf /var/lib/apt/lists/*

COPY ./requirements.txt /app/requirements.txt

WORKDIR /app

RUN pip install -r requirements.txt

COPY . /app

EXPOSE 80

ENTRYPOINT [ "python" ]

CMD [ "app.py" ]

3. 优化Torch安装

在requirements.txt中使用CPU精简版Torch,减少体积和启动时间:

torch==2.0.1+cpu --index-url https://download.pytorch.org/whl/cpu

4. 本地验证启动时长

模拟App Runner资源限制启动容器,确认服务就绪时间:

docker run --memory=1GB --cpus=1 <你的镜像标签>

观察容器启动后,使用curl访问服务端点,记录从启动到响应的时间,以此为准调整健康检查的启动延迟。

内容的提问来源于stack exchange,提问作者Enes Kuz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:43:12