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

AWS Step Function调用ECS RunTask同步任务时容器拉取失败排查

问题排查与解决

你遇到的CannotPullContainerError本质是Fargate任务拉取ECR镜像时,无法访问AWS托管的S3镜像层存储桶。虽然你配置了ECR的两个VPC端点,但漏掉了关键的S3 VPC端点,以下是具体要补的配置:

1. 新增S3网关型VPC端点

在你的VPC里创建S3的网关端点,服务名称为com.amazonaws.us-west-1.s3,并关联到任务使用的子网。同时要在子网的路由表中添加路由:

  • 目标前缀:prod-us-west-1-starport-layer-bucket.s3.us-west-1.amazonaws.com(或直接0.0.0.0/0,精确前缀更安全)
  • 目标:刚创建的S3网关端点ID

2. 给S3端点配置权限策略

编辑S3端点的权限策略,允许访问ECR镜像层桶,示例策略如下:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::prod-us-west-1-starport-layer-bucket/*"
    }
  ]
}

3. 检查ECS任务执行角色权限

确保任务执行角色拥有以下权限:

  • ECR相关:ecr:GetDownloadUrlForLayer、ecr:BatchGetImage、ecr:BatchCheckLayerAvailability
  • S3相关:s3:GetObject(针对上述镜像层存储桶)

4. 确认VPC DNS设置

检查你的VPC是否开启了DNS解析和DNS主机名选项,这两个必须开启,否则VPC端点的域名无法正常解析。

额外验证

网关型VPC端点不需要安全组规则,所以重点确认路由表和端点配置是否生效即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 01:32:42