Amazon ECS 任务放置约束示例
下面是一些任务放置约束示例。
此示例使用 memberOf
约束在 t2 实例上放置任务。可以使用以下操作指定此约束:CreateService、UpdateService、RegisterTaskDefinition 和 RunTask。
"placementConstraints": [ { "expression": "attribute:ecs.instance-type =~ t2.*", "type": "memberOf" } ]
该示例使用 memberOf
约束将任务放置在进程守护程序服务 daemon-service
任务组中具有任务的实例上,同时考虑到同时指定的任何任务放置策略。此约束可确保进程守护程序服务任务在副本服务任务之前放置在 EC2 实例上。
将 daemon-service
替换为进程守护程序服务的名称。
"placementConstraints": [ { "expression": "task:group == service:
daemon-service
", "type": "memberOf" } ]
该示例使用 memberOf
约束将任务放置在 databases
任务组中具有其他任务的实例上,同时考虑到也指定的任何任务放置策略。有关任务组的更多信息,请参阅 与组相关的 Amazon ECS 任务 。可以使用以下操作指定此约束:CreateService、UpdateService、RegisterTaskDefinition 和 RunTask。
"placementConstraints": [ { "expression": "task:group == databases", "type": "memberOf" } ]
distinctInstance
约束将组中的每项任务放置于不同实例上。可以使用以下操作指定此约束:CreateService、UpdateService 和 RunTask。
Amazon ECS 会检查所需的任务状态以放置任务。例如,假设现有任务所需的状态为 STOPPED
(但最近的状态不是该状态),则可以将新传入的任务放入同一个实例,尽管存在 distinctInstance
放置约束。因此,您可能会看到同一个实例上有 2 个任务最近的状态都为 RUNNING
。
"placementConstraints": [ { "type": "distinctInstance" } ]