Amazon Elastic Container Service
开发人员指南 (API 版本 2014-11-13)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

ecs-cli up

创建 Amazon ECS 集群(如果该集群不存在)和设置该集群所需的 AWS 资源。

此命令创建名为 amazon-ecs-cli-setup-cluster_name 的新 AWS CloudFormation 堆栈。您可以在 AWS 管理控制台中查看堆栈创建的进度。

重要

Some features described may only be available with the latest version of the Amazon ECS CLI. For more information about obtaining the latest version, see 安装 Amazon ECS CLI.

语法

ecs-cli up [--verbose] [--capability-iam | --instance-role instance-profile-name] [--keypair keypair_name] [--size n] [--azs availability_zone_1,availability_zone_2] [--security-group security_group_id[,security_group_id[,...]]] [--cidr ip_range] [--port port_number] [--subnets subnet_1,subnet_2] [--vpc vpc_id] [--extra-user-data string] [--instance-type instance_type] [--image-id ami_id] [--launch-type launch_type] [--no-associate-public-ip-address] [--force] [--cluster cluster_name] [--region region] [--empty] [--help]

选项

名称 说明

--verbose, --debug

提供更详细的输出以进行调试。

必需:否

--capability-iam

确认此命令可创建 IAM 资源。

注意

此参数仅对于使用 EC2 启动类型的任务受支持。

如果您未使用 --instance-role 指定实例配置文件名称,则此参数是必需的。您无法同时指定两个选项。

必需:否

--keypair keypair_name

指定用于支持对集群中的 EC2 实例进行 SSH 访问的现有 Amazon EC2 密钥对的名称。

注意

此参数仅对于使用 EC2 启动类型的任务受支持。

有关创建密钥对的更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 使用 Amazon EC2 进行设置

类型:字符串

必需:否

--size n

指定要启动并注册到集群的实例的数量。

注意

此参数仅对于使用 EC2 启动类型的任务受支持。

类型:整数

默认值:1

必需:否

--azs availability_zone_1,availability_zone_2

指定要在其中创建子网的两个 VPC 可用区的逗号分隔的列表 (这两个区域必须具有 available 状态)。如果您未使用 --vpc 选项指定 VPC ID,我们建议使用此选项。

警告

将此选项保留为空可能导致在随机选择的区域不可用时无法启动容器实例。

类型:字符串

必需:否

--security-group security_group_id[,security_group_id[,...]]

指定要与容器实例关联的现有安全组的逗号分隔列表。如果您在此处未指定安全组,请创建一个新的安全组。

有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 Security Groups 部分。

必需:否

--cidr ip_range

指定要用于集群中的容器实例的安全组的 CIDR/IP 范围。

注意

如果已使用 --security-group 选项指定现有安全组,则忽略此参数。

类型:CIDR/IP 范围

默认值:0.0.0.0/0

必需:否

--port port_number

指定要在安全组上打开以用于集群中的容器实例的端口。

注意

如果已使用 --security-group 选项指定现有安全组,则忽略此参数。

类型:整数

默认值:80

必需:否

--subnets subnet_1,subnet_2

指定要在其中启动容器实例的现有 VPC 子网 ID 的逗号分隔的列表。

类型:字符串

必需:如果已使用 --vpc 选项指定 VPC,则需要此选项。

--vpc vpc_id

指定要在其中启动容器实例的现有 VPC 的 ID。如果指定了一个 VPC ID,则必须使用 --subnets 选项指定该 VPC 中的现有子网的列表。如果未指定 VPC ID,请使用两个子网创建一个新的 VPC。

类型:字符串

必需:否

--extra-user-data string

指定容器实例的其他用户数据。文件可以是 shell 脚本或 cloud-init 指令。它们与 Amazon ECS CLI 提供的用于指示实例加入您的集群的用户数据一起打包到 MIME 分段存档中。有关更多信息,请参阅指定用户数据

类型:字符串

必需:否

--instance-type instance_type

指定容器实例的 EC2 实例类型。

注意

此参数仅对于使用 EC2 启动类型的任务受支持。

有关 EC2 实例类型的更多信息,请参阅 Amazon EC2 实例

类型:字符串

默认值:t2.micro

必需:否

--image-id ami_id

指定要用于容器实例的 Amazon EC2 AMI ID。

注意

此参数仅对于使用 EC2 启动类型的任务受支持。

注意

如果未指定 AMI ID,Amazon ECS CLI 将自动检索最新稳定的Amazon ECS-optimized AMI(方法为在创建集群资源过程中查询 SSM Parameter Store API)。这需要您正在使用的用户账户具有所需的 SSM 权限。有关更多信息,请参阅 检索Amazon ECS-Optimized AMI 元数据

类型:字符串

默认值:指定区域经 Amazon ECS 优化的最新稳定 AMI。

必需:否

--no-associate-public-ip-address

不向该 VPC 中的新实例分配公有 IP 地址。除非指定此选项,否则该 VPC 中的新实例会收到自动分配的公有 IP 地址。

注意

此参数仅对于使用 EC2 启动类型的任务受支持。

必需:否

--force, -f

强制重新创建与您的当前配置匹配的所有现有资源。此选项对于从先前失败的尝试中清除过期资源非常有用。

必需:否

--instance-role, -f instance-profile-name

为您的集群中的实例指定自定义 IAM 实例配置文件名称。

注意

此参数仅对于使用 EC2 启动类型的任务受支持。

如果您未指定 --capability-iam 选项,则此参数是必需的。您无法同时指定两个选项。

必需:否

--launch-type launch_type

Specifies the launch type to use. Available options are FARGATE or EC2. For more information about launch types, see Amazon ECS 启动类型.

This overrides the default launch type stored in your cluster configuration.

Type: String

Required: No

--cluster, -c cluster_name

指定要使用的 ECS 集群名称。默认为使用 configure 命令配置的群集。

类型:字符串

必需:否

--region, -r region

指定要使用的 AWS 区域。默认为使用 configure 命令配置的群集。

类型:字符串

必需:否

--empty, -e

指定将创建一个没有任何资源的 ECS 集群。如果还指定了其他将创建资源的标志,将忽略它们并显示警告。

必需:否

--help, -h

Shows the help text for the specified command.

Required: No

指定用户数据

在启动使用 EC2 启动类型的任务时,ECS CLI 始终创建包含以下用户数据的容器实例:

#!/bin/bash echo ECS_CLUSTER={ clusterName } >> /etc/ecs/ecs.config

此用户数据指示容器实例加入您的 ECS 集群。您可以选择使用 --extra-user-data 标志包括其他用户数据。可以多次指定该标志。例如,额外的用户数据可以是 Shell 脚本或 cloud-init 指令。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的启动时在 Linux 实例上运行命令

Amazon ECS CLI 获取用户数据并将其打包到 MIME 分段存档中,这可供容器实例上的 cloud-init 使用。Amazon ECS CLI 允许使用 --extra-user-data 传入现有 MIME 分段存档。Amazon ECS CLI 会解包现有存档,然后将其重新打包为最终存档(保留所有标头和内容类型信息)。以下是示例:

ecs-cli up \ --capability-iam \ --extra-user-data my-shellscript \ --extra-user-data my-cloud-boot-hook \ --extra-user-data my-mime-multipart-archive \ --launch-type EC2

示例

为使用 EC2 启动类型的任务创建集群

此示例将启动一个包含 4 个 c4.large 实例的集群并将它们配置为使用名为 id_rsa 的 EC2 密钥对。

ecs-cli up --keypair keypair_name --capability-iam --size 4 --instance-type c4.large --launch-type EC2

输出:

INFO[0001] Using recommended Amazon Linux AMI with ECS Agent 1.17.3 and Docker version 17.12.1-ce INFO[0000] Created cluster cluster=ecs-cli-ec2-demo INFO[0000] Waiting for your cluster resources to be created INFO[0001] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS INFO[0061] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS INFO[0121] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS INFO[0181] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS Cluster creation succeeded. VPC created: vpc-abcd1234 Security Group created: sg-abcd1234 Subnets created: subnet-abcd1234 Subnets created: subnet-dcba4321

为使用 Fargate 启动类型的任务创建集群

此示例将为您的 Fargate 任务创建一个集群并创建带两个子网的新 VPC。

ecs-cli up --launch-type FARGATE

输出:

INFO[0001] Created cluster cluster=ecs-cli-fargate-demo region=us-west-2 INFO[0003] Waiting for your cluster resources to be created... INFO[0003] Cloudformation stack status stackStatus="CREATE_IN_PROGRESS" INFO[0066] Waiting for your cluster resources to be created... INFO[0066] Cloudformation stack status stackStatus="CREATE_IN_PROGRESS" VPC created: vpc-abcd1234 Subnets created: subnet-abcd1234 Subnets created: subnet-dcba4321 Cluster creation succeeded.

创建一个空集群

此示例将创建一个名为 ecs-cli-empty-demo 的没有任何资源的空集群。

ecs-cli up --empty --cluster ecs-cli-empty-demo

输出:

INFO[0000] Created cluster cluster=ecs-cli-empty-demo region=us-east-1 Cluster creation succeeded.