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

ecs-cli compose create

从复合文件创建 Amazon ECS 任务定义。

重要

建议不要对敏感信息(如凭证数据)使用纯文本环境变量。

重要

所介绍的某些功能仅可用于最新版本的 Amazon ECS CLI。有关获取最新版本的更多信息,请参阅 安装 Amazon ECS CLI

语法

ecs-cli compose create [--region region] [--cluster-config cluster_config_name] [--ecs-profile ecs_profile] [--aws-profile aws_profile] [--cluster cluster_name] [--launch-type launch_type] [--create-log-groups] [--tags key1=value1,key2=value2] [--help]

选项

名称 描述

--region, -r region

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

类型:字符串

必需:否

--cluster-config cluster_config_name

指定要使用的 Amazon ECS 集群配置的名称。默认为作为默认值设置的集群设置。

类型:字符串

必需:否

--ecs-profile ecs_profile

指定要使用的 Amazon ECS 配置文件的名称。默认为使用 configure profile 命令配置的配置文件。

类型:字符串

必需:否

--aws-profile aws_profile

指定要使用的 AWS 配置文件。使您能够使用 ~/.aws/credentials 中现有指定配置文件中的 AWS 凭证。

类型:字符串

必需:否

--cluster, -c cluster_name

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

类型:字符串

必需:否

--launch-type launch_type

指定要使用的启动类型。可用的选项有 FARGATEEC2。有关启动类型的更多信息,请参阅 Amazon ECS 启动类型

这将覆盖在集群配置中存储的默认启动类型。

类型:字符串

必需:否

--create-log-groups

创建您的 Compose 文件中指定的 CloudWatch 日志组。

必需:否

--tags key1=value1,key2=value2

指定要用于您的 AWS 资源的元数据。每一个标签都包含一个键和一个可选值。标签采用以下格式:key1=value1,key2=value2,key3=value3。有关更多信息,请参阅 标记资源

类型:键值对

必需:否

--help, -h

显示指定命令的帮助文本。

必需:否

标记资源

Amazon ECS CLI 支持以资源标签的形式将元数据添加到您的 AWS 资源。每一个标签都包含一个键和一个可选值。资源标签可用于成本分配、自动化和访问控制。有关更多信息,请参阅 AWS 标记策略

使用 ecs-cli compose create 命令时,使用 --tags 标记让您可以将元数据标签添加到任务定义。

示例

注册任务定义

此示例从 hello-world 复合文件创建项目名称为 hello-world.yml 的任务定义。

ecs-cli compose --project-name hello-world --file hello-world.yml create --launch-type EC2

输出:

INFO[0000] Using ECS task definition TaskDefinition=ecscompose-hello-world:5

在没有任务联网的情况下使用 EC2 启动类型注册任务定义

此示例从 hello-world 复合文件创建项目名称为 hello-world.yml 的任务定义。为容器大小参数指定的其他 ECS 参数。

名为 hello-world.yml 的示例 Docker 复合文件:

version: '3' services: nginx: image: nginx:latest ports: - "80:80" logging: driver: awslogs options: awslogs-group: /ecs/cli/tutorial awslogs-region: us-east-1 awslogs-stream-prefix: nginx

名为 ecs-params.yml 的示例 ECS 参数文件:

version: 1 task_definition: services: nginx: cpu_shares: 256 mem_limit: 0.5GB mem_reservation: 0.5GB
ecs-cli compose --project-name hello-world --file hello-world.yml --ecs-params ecs-params.yml --region us-east-1 create --launch-type EC2

输出:

INFO[0000] Using ECS task definition TaskDefinition=ecscompose-hello-world:5

通过使用 Fargate 启动类型来注册任务定义

此示例从 hello-world 复合文件创建项目名称为 hello-world.yml 的任务定义。将为 Fargate 启动类型的任务网络配置指定其他 ECS 参数。然后,将运行任务的一个实例。

名为 hello-world.yml 的示例 Docker 复合文件:

version: '3' services: nginx: image: nginx:latest ports: - "80:80" logging: driver: awslogs options: awslogs-group: tutorial awslogs-region: us-east-1 awslogs-stream-prefix: nginx

名为 ecs-params.yml 的示例 ECS 参数文件:

version: 1 task_definition: task_execution_role: ecsTaskExecutionRole ecs_network_mode: awsvpc task_size: mem_limit: 0.5GB cpu_limit: 256 run_params: network_configuration: awsvpc_configuration: subnets: - subnet-abcd1234 - subnet-dbca4321 security_groups: - sg-abcd1234 assign_public_ip: ENABLED

命令:

ecs-cli compose --project-name hello-world --file hello-world.yml --ecs-params ecs-params.yml --region us-east-1 create --launch-type FARGATE

输出:

INFO[0000] Using ECS task definition TaskDefinition=ecscompose-hello-world:5

本页内容: