AWS Batch搭配Fargate作业一直停留在RUNNABLE状态求助
AWS Batch + Fargate 作业一直处于RUNNABLE状态及日志无流生成的排查方案
RUNNABLE状态优先排查项
- 计算环境与作业队列关联验证:确认作业队列已正确绑定目标Fargate计算环境,避免创建队列时选错关联对象导致作业无法分配资源。
- VPC网络配置检查:
- 核查作业定义指定的子网是否有可用IP剩余,Fargate任务需占用子网IP,IP耗尽会直接导致任务无法启动。
- 若作业需访问公网(如拉取公网镜像),确认子网路由表已配置NAT网关;若使用私有镜像仓库,检查VPC端点是否配置正确。
- 验证安全组出站规则:需允许HTTPS(443端口)访问ECR拉取镜像,以及访问CloudWatch日志服务的流量,同时确保作业自身业务所需的网络权限已开放。
- 作业定义配置校验:
- 检查镜像URI是否完整正确,比如ECR镜像需使用
123456789012.dkr.ecr.region.amazonaws.com/your-image:tag格式,避免拼写错误或镜像不存在。 - 确认作业执行角色权限:需具备拉取ECR镜像(可附加
AmazonEC2ContainerRegistryReadOnly权限)和写入CloudWatch日志的权限,权限不足会导致任务无法调度。 - 核对内存配置与Fargate规格匹配:Fargate的vCPU和内存为绑定关系,例如0.25vCPU对应0.5-2GB内存,0.5vCPU对应1-4GB内存,内存超出对应范围会触发调度失败。
- 检查镜像URI是否完整正确,比如ECR镜像需使用
- Fargate资源配额检查:查看当前区域的Fargate资源配额(如总vCPU数),若达到上限需通过Service Quotas申请提升。
日志无流生成的排查思路
- 优先解决作业启动问题:日志流仅在Fargate任务启动后才会创建,多数日志无流情况是作业未脱离RUNNABLE状态导致的。
- 作业定义日志配置核查:确认作业定义的日志驱动已设置为
awslogs,且awslogs-group(即aws/batch/job)、awslogs-region、awslogs-stream-prefix参数配置正确,参数错误会导致日志无法写入。 - 执行角色日志权限验证:确保作业执行角色拥有
logs:CreateLogStream和logs:PutLogEvents权限,即使日志组存在,缺少这些权限也无法创建日志流和写入日志。 - CloudWatch日志组权限检查:查看
aws/batch/job日志组的权限策略,确认是否允许作业执行角色写入日志,手动修改日志组权限可能导致权限不足。
内容的提问来源于stack exchange,提问作者orr
相关产品推荐
相关产品推荐

