Amazon EC2 Container Service
开发人员指南 (API Version 2014-11-13)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

服务定义参数

服务定义将定义要用于您的服务的任务定义、该任务要运行的实例化的数量以及要与您的任务关联的负载均衡器(如果有)。

Copy
{ "cluster": "", "serviceName": "", "taskDefinition": "", "loadBalancers": [ { "targetGroupArn": "", "loadBalancerName": "", "containerName": "", "containerPort": 0 } ], "desiredCount": 0, "clientToken": "", "role": "", "deploymentConfiguration": { "maximumPercent": 0, "minimumHealthyPercent": 0 } }

注意

您可使用以下 AWS CLI 命令创建上述服务定义模板。

Copy
aws ecs create-service --generate-cli-skeleton

您可在服务定义中指定以下参数。

cluster

要在其上运行您的服务的集群的短名称或完整 Amazon 资源名称 (ARN)。如果您未指定集群,则采用默认集群。

serviceName

您的服务的名称。最多能包含 255 个字母 (大写和小写字母)、数字、连字符和下划线。 一个集群中的服务不得重名,但您可在一个区域或多个区域的多个集群中拥有名称相似的服务。

taskDefinition

要在您的服务中运行的任务定义的 familyrevision (family:revision) 或完整 ARN。如果未指定 revision,将使用最新的 ACTIVE 修订。

loadBalancers

表示要用于您的服务的负载均衡器的负载均衡器对象。当前,对每个服务只能使用一个负载均衡器或目标组。在创建服务后,在服务定义中指定的负载均衡器名称或目标组 ARN、容器名称和容器端口是不可变的。

对于 Elastic Load Balancing 传统负载均衡器,此对象必须包含负载均衡器名称、容器名称(与在容器定义中显示的相同)和容器端口才能从负载均衡器进行访问。将此服务中的任务放在容器实例上后,容器实例将注册到在此处指定的负载均衡器。

对于 Elastic Load Balancing 应用程序负载均衡器,此对象必须包含负载均衡器目标组 ARN、容器名称(与在容器定义中显示的相同)和容器端口才能从负载均衡器进行访问。将此服务中的任务放在容器实例上后,容器实例和端口组合将注册为在此处指定的目标组中的目标。

targetGroupArn

与服务关联的 Elastic Load Balancing 目标组的完整 Amazon 资源名称 (ARN)。

loadBalancerName

负载均衡器的名称。

containerName

要与负载均衡器关联的容器的名称(与在容器定义中显示的相同)。

containerPort

要与负载均衡器关联的容器上的端口。此端口必须对应于服务的任务定义中的 containerPort。您的容器实例必须允许端口映射的 hostPort 上的入口流量。

desiredCount

要在您的集群中放置并保持运行的指定任务定义的实例化数量。

clientToken

您为确保请求的幂等性而提供的唯一、区分大小写的标识符。最多允许 32 个 ASCII 字符。

role

允许 Amazon ECS 代表您调用负载均衡器的 IAM 角色的名称或完整 Amazon 资源名称 (ARN)。当您要将负载均衡器用于服务时才需要此参数。如果您指定 role 参数,还必须指定具有 loadBalancers 参数的负载均衡器对象。

如果您的指定角色的路径并非 /,则必须指定完整角色 ARN(推荐)或将此路径作为角色名称的前缀。例如,如果名称为 bar 的角色的路径为 /foo/,您应指定 /foo/bar 作为角色名称。有关更多信息,请参阅 IAM 用户指南 中的易记名称和路径

deploymentConfiguration

可选部署参数,用于控制部署期间运行的任务数以及停止和开始任务的顺序。

maximumPercent

maximumPercent 参数以 desiredCount 百分比的形式表示部署期间允许处于 RUNNINGPENDING 状态的服务任务数的上限(向下取整到最近的整数)。此参数使您能够定义部署批次大小。例如,如果您的服务的任务 desiredCount 为 4,maximumPercent 值为 200%,则计划程序将在停止 4 个旧任务之前开始 4 个新任务(前提是具有执行此操作所需的集群资源)。maximumPercent 的默认值为 200%。

部署期间的最大任务数为 desiredCount 乘以 maximumPercent/100(向下取整到最近的整数值)。

minimumHealthyPercent

minimumHealthyPercentdesiredCount 的百分比形式表示部署期间必须保持在 RUNNING 状态的服务任务数的下限(向上取整到最近的整数)。此参数使您不必使用额外的集群容量就能部署。例如,如果您的服务的任务 desiredCount 为 4,minimumHealthyPercent 为 50%,则计划程序可能在开始两个新任务之前停止两个现有任务以释放集群容量。 使用负载均衡器的服务的任务在处于 RUNNING 状态时被视为正常;使用负载均衡器的服务的任务在处于 RUNNING 状态时被视为正常,并且承载该任务的容器实例将被负载均衡器报告为正常。minimumHealthyPercent 的默认值在控制台中为 50%,在 AWS CLI、AWS 软件开发工具包和 API 中为 100%。

部署期间的最小正常任务数为 desiredCount 乘以 minimumHealthyPercent/100(向上取整到最近的整数值)。

placementConstraints

您的服务中的任务使用的一组放置约束对象。对于每个任务,您可以指定多达 10 种约束 (此限制包括任务定义中的约束和这些在运行时指定的约束)。

placementStrategy

您的服务中的任务所用的放置策略对象。对于每项服务,您最多可以指定 5 种策略。