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

时间:2018-03-20 22:57:09

标签: amazon-web-services amazon-ecs

Haven在文档中找到了这个。我可以暂停ECS服务,以便停止创建新任务吗?或者我是否必须删除它才能停止这种行为?

我只想暂时暂停它在群集上创建新任务

3 个答案:

答案 0 :(得分:3)

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

.

这告诉服务:

  • 我想要的任务数量为[current-count]
  • 我希望您保持至少 [current-count]
  • 我不希望 [current-count

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

答案 1 :(得分:1)

接受的答案不正确。 如果将“最小健康百分比”和“最大健康百分比”都设置为100,AWS将给您类似以下错误:

enter image description here

要停止服务创建新任务,您必须通过更新任务定义并将所需的任务数设置为0来更新服务。此后,您可以使用AWS CLI(最快的选项)停止现有的正在运行的任务,例如:< / p>

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

答案 2 :(得分:1)

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

aws ecs update-service --desired-count 0 --cluster "ecs-my-ClusterName" --service "service-my-ServiceName-117U7OHVC5NJP"