本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ecs-cli compose service create
从复合文件创建 Amazon ECS 服务。将使用预期计数 0
创建服务,因此该命令不会启动任何容器。
Syntax
ecs-cli compose service create [--deployment-max-percent
n
] [--deployment-min-healthy-percent
n
] [--load-balancer-name
value
] [--target-group-arn
value
] [--target-groups
“targetGroupArn=arn:elasticloadbalancing:region
:aws_account_id
:targetgroup/target_group_name_1
,containerName=container_name
,containerPort=container_port
"]
[--container-name value
] [--container-port
value
] [--role value
]
[--launch-type launch_type
]
[--health-check-grace-period integer
]
[--create-log-groups] [--enable-service-discovery] [--vpc
value
] [--private-dns-namespace
value
] [--private-dns-namespace-id
value
] [--public-dns-namespace
value
] [--public-dns-namespace-id
value
] [--sd-container-name
value
] [--sd-container-port
value
] [--dns-ttl
value
] [--dns-type
value
]
[--healthcheck-custom-config-failure-threshold value
]
[--scheduling-strategy value
] [--tags
key1=value1,key2=value2
]
[--disable-ecs-managed-tags] [--help]
Options
名称 |
描述 |
---|---|
|
指定部署期间可在服务中保持运行状态的运行任务数的上限(服务的 默认值: 必需:否 |
|
指定部署期间必须在服务中保持运行状态以及正常运行的运行任务数的下限(服务的 desiredCount 的百分比)。有关更多信息,请参阅 minimumHealthyPercent。 默认值: 必需:否 |
|
指定要与服务关联的之前配置的 Elastic Load Balancing 目标组的完整 Amazon 资源名称 (ARN)。 已弃用,请使用 必需:否 |
|
指定要向服务注册的一个或多个目标组。为要注册的每个组指定目标组、容器名称和容器端口的 Amazon Resource Name (ARN)。单个 类型:字符串 有关更多信息,请参阅 向服务注册多个目标组。 必需:否 |
|
指定容器名称(与在容器定义中显示的相同)。如果指定了负载均衡器或目标组,则此参数是必需的。 已弃用,请使用 必需:否,除非指定了负载均衡器或目标组。 |
|
指定要与负载均衡器关联的容器上的端口。此端口必须对应于服务的任务定义中的 已弃用,请使用 必需:否,除非指定了负载均衡器或目标组。 |
|
指定要与服务关联的之前配置的 Elastic Load Balancing 负载均衡器的名称。 已弃用,请使用 必需:否 |
|
指定允许 Amazon ECS 代表您调用负载均衡器或目标组的 IAM 角色的名称或完整 Amazon 资源名称 (ARN)。当您要将负载均衡器或目标组用于服务时才需要此参数。如果指定了角色参数,您还必须指定负载均衡器名称或目标组 ARN,以及容器名称和容器端口。 必需:否,除非指定了负载均衡器或目标组。 |
|
指定在任务首次启动后,Amazon ECS 服务计划程序应忽略不正常的 Elastic Load Balancing 目标运行状况检查的时长(以秒为单位)。 必需:否 |
|
创建您的 Compose 文件中指定的 CloudWatch 日志组。 必需:否 |
|
指定是否要为此服务启用服务发现。 必需:否 |
|
指定将附加到 服务发现 的私有 DNS 命名空间的 VPC。如果指定了 必需:否 |
|
指定要用于 服务发现 的私有 DNS 命名空间的名称。如果此命名空间不存在,Amazon ECS CLI 将自动进行创建。例如,如果命名空间是 必需:否 |
|
指定要用于 服务发现 的现有的私有 DNS 命名空间的 ID。如果使用此参数,您将无法指定 必需:否 |
|
指定要用于 服务发现 的公有 DNS 命名空间的名称。例如,如果命名空间是 必需:否 |
|
指定要用于 服务发现 的现有的公有 DNS 命名空间的 ID。如果使用此参数,您将无法指定 必需:否 |
|
指定容器的名称,在 Docker Compose 文件中称为服务。有关更多信息,请参阅服务配置参考 必需:否,除非使用 SRV DNS 记录。 |
|
指定将用于 服务发现 的容器上的端口。如果您使用 SRV 记录,则需要此参数。 必需:否,除非使用 SRV DNS 记录。 |
|
指定您希望 DNS 解析程序缓存用于 服务发现 的 DNS 记录设置的时长(以秒为单位)。 默认值: 必需:否 |
|
指定用于 服务发现 的 DNS 记录的类型。接受的值为 必需:否 |
|
指定在收到 默认值: 必需:否 |
|
指定要用于服务的计划策略。 有两种服务计划程序策略可用: 有关更多信息,请参阅 服务计划程序概念。 类型:字符串 有效值: 默认值: 必需:否 |
|
指定要用于您的 AWS 资源的元数据。每一个标签都包含一个密钥和一个可选值。标签使用以下格式: 类型:键值对 必需:否 |
|
禁用 Amazon ECS 托管标签。有关更多信息,请参阅 标记资源以便于计费。 必需:否 |
|
指定要使用的 AWS 区域。默认为使用 configure 命令配置的集群。 类型:字符串 必需:否 |
|
指定要使用的 Amazon ECS 集群配置的名称。默认为作为默认值设置的集群设置。 类型:字符串 必需:否 |
|
指定要使用的 Amazon ECS 配置文件的名称。默认为使用 configure profile 命令配置的配置文件。 类型:字符串 必需:否 |
|
指定要使用的 AWS 配置文件。使您能够使用 类型:字符串 必需:否 |
|
指定要使用的 Amazon ECS 集群名称。默认为使用 configure 命令配置的集群。 类型:字符串 必需:否 |
|
显示指定命令的帮助文本。 必需:否 |
使用负载均衡器
您可选择借助负载均衡器运行您的服务。负载均衡器将在与服务关联的各个任务间分配流量。有关更多信息,请参阅 服务负载均衡。在创建服务后,在服务定义中指定的负载均衡器名称或目标组 ARN、容器名称和容器端口是不可变的。
您必须先创建负载均衡器资源,然后才能将服务配置为使用它们。您的负载均衡器资源应与您的容器实例位于同一 VPC 中,并且应将它们配置为使用相同的子网。您还必须向容器实例安全组添加一个安全组规则,该规则允许来自负载均衡器的入站流量。有关更多信息,请参阅 创建负载均衡器。
-
要将服务配置为使用现有 Elastic Load Balancing 传统负载均衡器,您必须指定负载均衡器名称、容器名称 (显示在容器定义中) 和要从负载均衡器访问的容器端口。将此服务中的任务放在容器实例上后,容器实例将注册到在此处指定的负载均衡器。
-
要将服务配置为使用现有 Elastic Load Balancing 应用程序负载均衡器,您必须指定负载均衡器目标组 ARN、容器名称 (显示在容器定义中) 和要从负载均衡器访问的容器端口。将此服务中的任务放在容器实例上后,容器实例和端口组合将注册为在此处指定的目标组中的目标。
--health-check-grace-period
选项指定一个时间段,在任务首次启动后,Amazon ECS 服务计划程序在此时间段内 (以秒为单位) 将忽略不正常的 Elastic Load Balancing
目标运行状况检查。您的服务只有配置为使用负载均衡器时此设置才适用。如果您的任务需要一段时间才能启动并响应 ELB 运行状况检查,您最长可以指定 1800 秒的运行状况检查宽限期,在此期间
ECS 服务计划程序将忽略 Elastic Load Balancing 运行状况检查状态。此宽限期可防止 Amazon ECS 服务计划程序将由于时间不足而未启动的任务标记为不正常并停止它们。
使用 服务发现
Amazon ECS 服务可以选择配置为使用 Amazon ECS 服务发现。服务发现 使用 Amazon Route 53 自动命名 API 操作来管理服务任务的 DNS 条目,使其可在 VPC 中供搜索。有关更多信息,请参阅 教程:使用 Amazon ECS CLI 创建使用服务发现的 Amazon ECS 服务.
为 资源添加标签
Amazon ECS CLI 支持以资源标签的形式将元数据添加到您的 AWS 资源。每一个标签都包含一个密钥和一个可选值。资源标签可用于成本分配、自动化和访问控制。有关更多信息,请参阅 给您的 Amazon ECS 资源加标签.
使用 ecs-cli compose service create
命令时,使用 --tags
标记让您可以将元数据标签添加到任务定义和服务。在创建资源时,这些标签将会添加到服务和任务定义中。这些标签将会从您的任务定义传播到服务创建的任务。如果您已选择使用新的
Amazon 资源名称 (ARN) 和资源标识符 (ID) 格式,则默认情况下启用 Amazon ECS 托管标签,除非您使用 --disable-ecs-managed-tags
标记明确禁用它们。有关更多信息,请参阅 标记资源以便于计费.