我可以暂停ECS服务而不是删除它吗?

red*_*888 5 amazon-web-services amazon-ecs

尚未在文档中找到此内容。我可以暂停ECS服务以使其停止创建新任务吗?还是我必须删除它才能停止该行为?

我只想暂时将其暂停,以免在集群上创建新任务

was*_*olz 19

只需将服务所需的任务数设置为 0 就足够了。ECS 将自动删除所有正在运行的任务。

aws ecs update-service --desired-count 0 --cluster "ecs-my-ClusterName" --service "service-my-ServiceName-117U7OHVC5NJP"
Run Code Online (Sandbox Code Playgroud)


MrD*_*Duk 11

您可以通过调整您的服务配置以匹配您当前正在运行的任务数来完成“暂停”。例如,如果您的服务中当前有 3 个正在运行的任务,您可以按如下方式配置该服务:

.

这告诉服务:

  • 我想要的任务数是 [current-count]
  • 我要你至少保持 [current-count]
  • 我不想超过 [current-count

这些组合有效地阻止了您的服务进行任何更改。

  • 别难过,AWS 的大部分 UI 都是出了名的模棱两可 (6认同)

aze*_*pdx 9

接受的答案是不正确的。如果您将“最小健康百分比”和“最大健康百分比”都设置为 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"
Run Code Online (Sandbox Code Playgroud)

之后,您将获得服务的运行任务列表,例如:

 {
    "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"
    ]
}
Run Code Online (Sandbox Code Playgroud)

最后使用下面来停止每个任务:

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
Run Code Online (Sandbox Code Playgroud)

更新: 通过将所需的运行任务数设置为 0,ECS 将停止并耗尽该服务中的所有正在运行的任务。之后无需使用最初发布的 CLI 命令单独停止它们。

  • 更新:将所需的运行任务数设置为 0,将停止该服务中的所有正在运行的任务。之后无需单独阻止它们。 (2认同)