当 Fargate 容量用完时我该怎么办?

What should I do when Fargate runs out of capacity?

我正在使用如下命令启动单个 ECS Fargate 任务:

aws ecs run-task --cluster Fargate \
 --task-definition $ECR_REPO-run-setup 
 --overrides file:///tmp/ecs-overrides-db-migrate.txt \
 --count 1 --launch-type FARGATE \
 --network-configuration "awsvpcConfiguration={subnets=[$PUBLIC_SUBNET_1, $PUBLIC_SUBNET_2],securityGroups=[$FARGATE_SG],assignPubli cIp=ENABLED}"

目前我的帐户中 运行 根本没有 ECS 服务、任务或实例。这是我得到的回复:

{
    "failures": [
        {
            "reason": "Capacity is unavailable at this time. Please try again later or in a different availability zone"
        }
    ],
    "tasks": []
}

我什至没有找到为 Fargate 任务指定不同可用区的方法?

如果我应该重试,我应该等待多长时间才能重试?

使用 VPC,您可以创建一个或多个对应可用区的子网。

启动 Fargate 任务时,您会注意到 network-configuration 参数和关联的 awsvpcConfiguration。要指定多个区域,您可以传入多个子网。例如:

aws ecs run-task --cluster Fargate \
 --task-definition $ECR_REPO-run-setup 
 --overrides file:///tmp/ecs-overrides-db-migrate.txt \
 --count 1 --launch-type FARGATE \
 --network-configuration "awsvpcConfiguration={subnets=[$MY_SUBNET_IN_AZ1, 
$MY_SUBNET_IN_AZ2]

aws 中的 VPC 文档包含更多有用的信息: https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html#vpc-subnet-basics