我可以暂停而不是删除 ECS 服务吗?
Can I pause an ECS service instead of deleting it?
无法在文档中找到它。我是否可以暂停 ECS 服务以使其停止创建新任务?还是我必须删除它才能停止这种行为?
我只是想暂时停止它在集群上创建新任务
您可以通过调整服务配置以匹配当前的 运行 任务数来完成 "pause"。例如,如果您的服务中当前有 3 个 运行 任务,您将按如下方式配置服务:
这告诉服务:
- 我要的任务数是
[current-count]
- 我要你至少保持
[current-count]
- 我不想超过
[current-count
这些组合有效地阻止了您的服务进行任何更改。
接受的答案不正确。
如果您将“最小健康百分比”和“最大健康百分比”都设置为 100,AWS 将给您一个类似于以下的错误:
要停止服务创建新任务,您必须通过更新任务定义并将所需任务数设置为 0 来更新服务。之后您可以使用 AWS CLI(最快选项)停止现有 运行任务,例如:
aws ecs list-services --cluster "ecs-my-ClusterName"
aws ecs list-tasks --cluster "ecs-my-ClusterName" --service "service-my-ServiceName-117U7OHVC5NJP"
之后您将获得该服务的 运行 个任务列表,例如:
{
"taskArns": [
"arn:aws:ecs:us-east-1:XXXXXXXXXXX:task/12e13d93-1e75-4088-a7ab-08546d69dc2c",
"arn:aws:ecs:us-east-1:XXXXXXXXXXX:task/35ed484a-cc8f-4b5f-8400-71e40a185806"
]
}
最后使用下面的方法停止每个任务:
aws ecs stop-task --cluster "ecs-my-ClusterName" --task 12e13d93-1e75-4088-a7ab-08546d69dc2c
aws ecs stop-task --cluster "ecs-my-ClusterName" --task 35ed484a-cc8f-4b5f-8400-71e40a185806
更新: 通过将所需的 运行 任务数设置为 0,ECS 将停止并耗尽所有 运行 任务该服务。之后无需使用上面最初发布的 CLI 命令单独停止它们。
将服务所需的任务数设置为0就足够了。
ECS 将自动删除所有 运行 任务。
aws ecs update-service --desired-count 0 --cluster "ecs-my-ClusterName" --service "service-my-ServiceName-117U7OHVC5NJP"
无法在文档中找到它。我是否可以暂停 ECS 服务以使其停止创建新任务?还是我必须删除它才能停止这种行为?
我只是想暂时停止它在集群上创建新任务
您可以通过调整服务配置以匹配当前的 运行 任务数来完成 "pause"。例如,如果您的服务中当前有 3 个 运行 任务,您将按如下方式配置服务:
这告诉服务:
- 我要的任务数是
[current-count]
- 我要你至少保持
[current-count]
- 我不想超过
[current-count
这些组合有效地阻止了您的服务进行任何更改。
接受的答案不正确。 如果您将“最小健康百分比”和“最大健康百分比”都设置为 100,AWS 将给您一个类似于以下的错误:
要停止服务创建新任务,您必须通过更新任务定义并将所需任务数设置为 0 来更新服务。之后您可以使用 AWS CLI(最快选项)停止现有 运行任务,例如:
aws ecs list-services --cluster "ecs-my-ClusterName"
aws ecs list-tasks --cluster "ecs-my-ClusterName" --service "service-my-ServiceName-117U7OHVC5NJP"
之后您将获得该服务的 运行 个任务列表,例如:
{
"taskArns": [
"arn:aws:ecs:us-east-1:XXXXXXXXXXX:task/12e13d93-1e75-4088-a7ab-08546d69dc2c",
"arn:aws:ecs:us-east-1:XXXXXXXXXXX:task/35ed484a-cc8f-4b5f-8400-71e40a185806"
]
}
最后使用下面的方法停止每个任务:
aws ecs stop-task --cluster "ecs-my-ClusterName" --task 12e13d93-1e75-4088-a7ab-08546d69dc2c
aws ecs stop-task --cluster "ecs-my-ClusterName" --task 35ed484a-cc8f-4b5f-8400-71e40a185806
更新: 通过将所需的 运行 任务数设置为 0,ECS 将停止并耗尽所有 运行 任务该服务。之后无需使用上面最初发布的 CLI 命令单独停止它们。
将服务所需的任务数设置为0就足够了。 ECS 将自动删除所有 运行 任务。
aws ecs update-service --desired-count 0 --cluster "ecs-my-ClusterName" --service "service-my-ServiceName-117U7OHVC5NJP"