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

ECS Fargate任务启动时为何暂停长达6小时?

ECS Fargate任务启动时Django命令精确暂停6小时导致健康检查失败循环

我有一个通过gunicorn运行Django应用的Fargate ECS任务,几周前启动后运行正常,后因AWS例行维护/更新被替换。替换后的任务启动成功,但在执行入口脚本时暂停时间超过负载均衡器健康检查宽限期,导致健康检查失败,ECS不断停止并替换任务,陷入循环。

任务使用的Docker镜像未做任何代码变更,原本预期任务能和之前一样正常运行。

启用ECS任务部署断路器停止循环后,我让处于暂停但运行状态的任务保持了一段时间,从Cloudwatch日志中发现任务每次在执行入口脚本过程中都会精确暂停6小时。以下是入口脚本:

set -euo pipefail
cd /home/viewer/projects/server || exit
export DJANGO_SETTINGS_MODULE=viewer_server.settings
export PYTHONPATH="/home/viewer/projects/server/"
echo "DJANGO_SETTINGS_MODULE and PYTHONPATH set."
python manage.py makemigrations
python manage.py migrate
python viewer_server/create_django_superuser.py
gunicorn --timeout 120 --graceful-timeout 120 --workers 3 --bind :80 viewer_server.wsgi:application

以下是Cloudwatch日志片段:

2024-06-10T08:44:37.294Z    DJANGO_SETTINGS_MODULE and PYTHONPATH set.
2024-06-10T14:44:40.849Z    No changes detected 
2024-06-10T20:44:43.978Z    Running migrations:
2024-06-10T20:44:43.978Z    No migrations to apply.
2024-06-10T20:44:44.654Z    Django superuser already exists.
2024-06-10T20:44:44.871Z    Starting gunicorn 20.1.0
2024-06-10T20:44:44.871Z    Listening at: http://0.0.0.0:80 (769)
2024-06-10T20:44:44.871Z    Using worker: sync
2024-06-10T20:44:44.874Z    Booting worker with pid: 771
2024-06-10T20:46:46.181Z    WORKER TIMEOUT (pid:771)
2024-06-10T20:46:46.182Z    Worker exiting (pid: 771)
2024-06-10T20:46:46.542Z    Booting worker with pid: 782
2024-06-10T20:48:47.609Z    WORKER TIMEOUT (pid:782)
2024-06-10T20:48:47.610Z    Worker exiting (pid: 782)

还有更多gunicorn工作进程的日志,为了可读性做了精简,它们的表现一致。我通过启用gunicorn DEBUG级日志确认工作进程超时来自负载均衡器的健康检查GET请求。尽管未执行任何迁移,但Django命令执行时的暂停似乎导致Web服务器无法正常工作。

我在AWS文档中找到的唯一与ECS相关的6小时参考是关于IAM角色的内容,IAM角色与之前一致,不确定这是否相关。为了让ECS任务至少能正常运行,我尝试刷新任务从IAM角色获取的临时凭证,但未能找到可行方法。

[编辑]
我还将两个Django命令的冗长级别设置为3(调试),但在每次暂停前后均未收到任何日志输出。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 13:02:36