使用经典控制台创建任务定义
新体验现在已成为 Amazon ECS 控制台中的默认体验。有关更多信息,请参阅使用控制台创建任务定义。 |
Amazon ECS 为创建任务定义提供了新的控制台体验。有关更多信息,请参阅使用控制台创建任务定义。
您必须使用新控制台为带有 WINDOWS_SERVER_2022_FULL
或 WINDOWS_SERVER_2022_CORE
操作系统的 Fargate 上的 Windows 容器创建任务定义。
您必须先创建任务定义,然后才能在 Amazon ECS 上运行 Docker 容器。当您创建任务定义时,您可以用它定义多个容器和数据卷。有关可用任务定义参数的更多信息,请参阅任务定义参数。
要创建新的任务定义(新的 Amazon ECS 控制台)
打开 https://console.aws.amazon.com/ecs/
上的 Amazon ECS 控制台。 -
在导航窗格中,依次选择 Task Definitions (任务定义) 和 Create new Task Definition (创建新任务定义).
-
在 Select compatibilities(选择兼容性)页面上,选择您的任务要使用的启动类型,然后选择 Next step(下一步)。
-
根据您选择的启动类型,按照下列一个选项卡下的步骤操作。
- Fargate launch type
-
使用 Fargate 启动类型兼容性模板
如果您选择 Fargate,请完成以下步骤:
-
(可选) 如果您有任务定义的 JSON 表示形式,请完成以下步骤:
-
在 Configure task and container definitions 页面上,滚动到页面底部并选择 Configure via JSON。
-
将您的任务定义 JSON 粘贴到文本区域并选择 Save。
-
验证您的信息并选择 Create。
滚动到页面底部,选择 Configure via JSON (通过 JSON 配置)。
-
-
在 Task Definition Name (任务定义名称) 中,为任务定义键入名称。最多能包含 255 个字母 (大写和小写字母)、数字、连字符和下划线。
-
(可选)对于 Task Role (任务角色),选择 IAM 角色,该角色可提供权限,允许任务中的容器代表您调用 AWS API。有关更多信息,请参阅任务 IAM 角色。
注意 此处仅显示具有 Amazon EC2 Container Service Task Role 信任关系的角色。有关如何为您的任务创建 IAM;角色的更多信息,请参阅 为任务创建 IAM 角色和策略。
-
对于Operating system family(操作系统系列),选择容器操作系统。
-
对于 Task execution IAM role(任务执行 IAM 角色),选择您的任务执行角色,或者选择 Create new role(创建新角色),以便控制台可以为您创建一个。有关更多信息,请参阅Amazon ECS 任务执行 IAM 角色。
-
对于 Task size,选择 Task memory (GB) 和 Task CPU (vCPU) 的值。下表显示了有效组合。
CPU 值
内存值
AWS Fargate 支持的操作系统
256 (.25 vCPU)
512MiB、1GB、2GB
Linux
512 (.5 vCPU)
1GB、2GB、3GB、4GB
Linux
1024 (1 vCPU)
2GB、3GB、4GB、5GB、6GB、7GB、8GB
Linux、Windows
2048 (2 vCPU)
4GB 到 16GB 之间 (以 1GB 为增量)
Linux、Windows
4096 (4 vCPU)
8GB 到 30GB 之间 (以 1GB 为增量)
Linux、Windows
8192 (8 vCPU)
注意 此选项需要 Linux 平台
1.4.0
或更高版本。16 GB 到 60 GB 之间(以 4 GB 为增量)
Linux
16384 (16vCPU)
注意 此选项需要 Linux 平台
1.4.0
或更高版本。32 GB 到 120 GB 之间(以 8 GB 为增量)
Linux
-
对于您的任务定义中的每个容器,请完成以下步骤:
-
选择 Add container。
-
填写每个必填字段和要在您的容器定义中使用的任何可选字段。更多容器定义参数将可用于 Advanced container configuration (高级容器配置) 菜单中。有关更多信息,请参阅任务定义参数。
-
选择 Add,将容器添加到任务定义。
-
-
(可选)对于 Service Integration (服务集成),要配置 App Mesh 集成的参数,请选择 Enable App Mesh integration (启用 App Mesh 集成),然后执行以下操作:
-
对于Mesh name (网格名称),选择要使用的现有 App Mesh 服务网格。如果您没有看到列出任何网格,则需要先创建一个网格。有关更多信息,请参阅 AWS App Mesh 用户指南 中的服务网格。
注意 此选项未面向 Fargate 上的 Windows 容器提供。
-
对于 App Mesh endpoint (App Mesh 端点),请选择下列选项之一。
虚拟节点 — 输入或选择以下信息。
对于 Application container name (应用程序容器名称),选择要用于 App Mesh 应用程序的容器名称。必须已在任务定义中定义此容器。
对于 Virtual node name (虚拟节点名称),选择要使用的现有 App Mesh 虚拟节点。如果您没有看到列出任何虚拟节点,则需要先创建一个。有关更多信息,请参阅 AWS App Mesh用户指南中的虚拟节点。
对于 Virtual node port (虚拟节点端口),将 App Mesh 中虚拟节点上设置的侦听器端口进行预先填充。
虚拟网关 — 输入或选择以下信息。
适用于虚拟网关名称中,选择要使用的现有 App Mesh 虚拟网关。如果您没有看到列出任何虚拟网关,则需要先创建一个。有关更多信息,请参阅AWS App Mesh 用户指南中的虚拟网关。
适用于虚拟网关端口— 使用 App Mesh 中虚拟网关上设置的侦听器端口进行预先填充。
-
对于 Envoy 映像,输入
840364872350
.dkr.ecr.us-west-2
.amazonaws.com/aws-appmesh-envoy:v1.15.1.0-prod 适用于所有地区,除me-south-1
和ap-east-1
。您可以用任何区域替换us-west-2
,但me-south-1
和ap-east-1
除外。如果您的应用程序位于这些区域之一,则还需要将840364872350
替换为您的区域设置相应的值。有关更多信息,请参阅 AWS App Mesh 用户指南中的Envoy 图像。 -
选择 Apply (应用),然后选择 Confirm (确认)。这将为任务定义添加 Envoy 代理容器以及支持它的设置。如果您选择虚拟节点,它还会自动填充 App Mesh代理配置设置中的任务进行下一步。如果您选择虚拟网关,然后代理配置处于禁用状态,因为它不用于虚拟网关。
-
-
(可选)如果在服务集成中选择虚拟节点,然后为代理配置验证所有预填充值。有关这些字段的更多信息,请参阅更新服务中的 JSON选项卡。
-
(可选)用于登入路由器集成,您可以添加自定义日志路由配置。选择启用 FireLens 集成,然后执行以下操作:
-
对于类型,选择要使用的日志路由器类型。
-
对于映像,键入日志路由器容器的映像 URI。如果选择了
fluentbit
日志路由器类型,Image(映像)字段将预填充AWS用于 Fluent Bit 图像。有关更多信息,请参阅将 AWS 用于 Fluent Bit 映像。 -
选择 Apply(应用)。这将创建一个新的日志路由器容器到名为
log_router
的任务定义,并应用相关设置以支持它。如果对日志路由器集成字段进行更改,请选择 Apply(应用)以更新 FireLens 容器。
-
-
(可选)要为您的任务定义数据卷,请选择 Add volume。有关更多信息,请参阅在任务中使用数据卷。
-
对于 Name (名称),键入卷名称。最多能包含 255 个字母 (大写和小写字母)、数字、连字符和下划线。
-
-
在标签部分,为要与任务定义关联的每个标签指定键和值。有关更多信息,请参阅标记 Amazon ECS 资源。
-
选择 Create(创建)。
-
- EC2 launch type
-
使用 EC2 启动类型兼容性模板
如果您选择 EC2,请完成以下步骤:
-
(可选) 如果您有任务定义的 JSON 表示形式,请完成以下步骤:
-
在 Configure task and container definitions 页面上,滚动到页面底部并选择 Configure via JSON。
-
将您的任务定义 JSON 粘贴到文本区域并选择 Save。
-
验证您的信息并选择 Create。
滚动到页面底部,选择 Configure via JSON (通过 JSON 配置)。
-
-
在 task definition Name (任务定义名称) 中,为任务定义键入名称。最多能包含 255 个字母 (大写和小写字母)、数字、连字符和下划线。
-
(可选)对于 Task Role (任务角色),选择 IAM 角色,该角色可提供权限,允许任务中的容器代表您调用 AWS API。有关更多信息,请参阅任务 IAM 角色。
对于使用 EC2 启动类型的任务,这些权限通常由 Amazon ECS 容器实例 IAM 角色授予。有关更多信息,请参阅Amazon ECS 容器实例 IAM 角色。
注意 此处仅显示具有 Amazon EC2 Container Service Task Role 信任关系的角色。有关如何为任务创建 IAM 角色的说明,请参阅 为任务创建 IAM 角色和策略。
-
(可选) 对于 Network Mode,选择 Docker 网络模式,供任务中的容器使用。可用网络模式对应于 Docker 运行参考中的网络设置
中描述的网络模式。如果您在以下步骤中选择 Enable App Mesh integration (启用 App Mesh 集成),则必须选择 awsvpc
。默认 Docker 网络模式为
bridge
。如果网络模式设置为none
,则无法在容器定义中指定端口映射。此外,任务的容器没有外部连接。如果网络模式为awsvpc
,则任务会配备一个弹性网络接口。host
和awsvpc
网络模式可为容器提供最佳的网络性能。这是因为它们使用 Amazon EC2 网络堆栈,而不是bridge
模式提供的虚拟化网络堆栈。但是,公开的容器端口会直接映射到相应的主机端口。因此,如果使用端口映射,则不能利用动态主机端口映射,也不能在单个容器实例上运行同一任务的多个实例化。 -
(可选)对于 Task execution role (任务执行角色),选择 IAM 角色,该角色可提供权限,允许任务中的容器代表您调用 AWS API。
对于使用 EC2 启动类型的任务,这些权限通常由 Amazon ECS 容器实例 IAM 角色授予。此角色之前指定为 Task Role(任务角色)。无需指定任务执行角色。有关更多信息,请参阅 Amazon ECS 任务执行 IAM 角色。
-
(可选) 对于 Task size,选择 Task memory (GB) 和 Task CPU (vCPU) 的值。受支持的
Task CPU (vCPU)
值介于 128 个 CPU 单元(0.125 个 vCPU)和 10240 个 CPU 单元(10 个 vCPU)之间。注意 Windows 容器将忽略任务级 CPU 和内存参数。我们建议为 Windows 容器指定容器级资源。
-
对于您的任务定义中的每个容器,请完成以下步骤。
-
选择 Add container。
-
输入要在容器定义中使用的每个必填字段和任何可选字段。更多容器定义参数将可用于 Advanced container configuration (高级容器配置) 菜单中。有关更多信息,请参阅任务定义参数。
-
选择 Add,将容器添加到任务定义。
-
-
(可选) 对于 Constraint(限制),请定义从这个任务定义创建的任务放置到您的集群中的方式。对于使用 EC2 启动类型的任务,则可以使用约束来根据可用区、实例类型或自定义属性来放置任务。有关更多信息,请参阅Amazon ECS 任务放置约束。
-
(可选)对于 Service Integration (服务集成),要配置 App Mesh 集成的参数,请选择 Enable App Mesh integration (启用 App Mesh 集成),然后执行以下操作:
-
对于Mesh name (网格名称),选择要使用的现有 App Mesh 服务网格。如果您没有看到列出任何网格,则需要先创建一个网格。有关更多信息,请参阅 AWS App Mesh 用户指南 中的服务网格。
注意 此选项未面向 Fargate 上的 Windows 容器提供。
-
对于 App Mesh endpoint (App Mesh 端点),请选择下列选项之一。
虚拟节点 — 输入或选择以下信息。
对于 Application container name (应用程序容器名称),选择要用于 App Mesh 应用程序的容器名称。必须已在任务定义中定义此容器。
对于 Virtual node name (虚拟节点名称),选择要使用的现有 App Mesh 虚拟节点。如果您没有看到列出任何虚拟节点,则需要先创建一个。有关更多信息,请参阅 AWS App Mesh用户指南中的虚拟节点。
对于 Virtual node port (虚拟节点端口),将 App Mesh 中虚拟节点上设置的侦听器端口进行预先填充。
虚拟网关 — 输入或选择以下信息。
适用于虚拟网关名称中,选择要使用的现有 App Mesh 虚拟网关。如果您没有看到列出任何虚拟网关,则需要先创建一个。有关更多信息,请参阅AWS App Mesh 用户指南中的虚拟网关。
适用于虚拟网关端口— 使用 App Mesh 中虚拟网关上设置的侦听器端口进行预先填充。
-
对于 Envoy 映像,输入
840364872350
.dkr.ecr.us-west-2
.amazonaws.com/aws-appmesh-envoy:v1.15.1.0-prod 适用于所有地区,除me-south-1
和ap-east-1
。您可以用任何区域替换us-west-2
,但me-south-1
和ap-east-1
除外。如果您的应用程序位于这些区域之一,则还需要将840364872350
替换为您的区域设置相应的值。有关更多信息,请参阅 AWS App Mesh 用户指南中的Envoy 图像。 -
选择 Apply (应用),然后选择 Confirm (确认)。这将为任务定义添加 Envoy 代理容器以及支持它的设置。如果您选择虚拟节点,它还会自动填充 App Mesh代理配置设置中的任务进行下一步。如果您选择虚拟网关,然后代理配置处于禁用状态,因为它不用于虚拟网关。
-
-
(可选)如果在服务集成中选择虚拟节点,然后为代理配置验证所有预填充值。有关这些字段的更多信息,请参阅更新服务中的 JSON选项卡。
-
(可选)用于登入路由器集成,您可以添加自定义日志路由配置。选择启用 FireLens 集成,然后执行以下操作:
-
对于类型,选择要使用的日志路由器类型。
-
对于映像,键入日志路由器容器的映像 URI。如果选择了
fluentbit
日志路由器类型,Image(映像)字段将预填充AWS用于 Fluent Bit 图像。有关更多信息,请参阅将 AWS 用于 Fluent Bit 映像。 -
选择 Apply(应用)。这将创建一个新的日志路由器容器到名为
log_router
的任务定义,并应用相关设置以支持它。如果对日志路由器集成字段进行更改,请选择 Apply(应用)以更新 FireLens 容器。
-
-
(可选)要为您的任务定义数据卷,请选择 Add volume。您可以创建一个绑定挂载或 Docker 卷。有关更多信息,请参阅在任务中使用数据卷。
-
对于 Name (名称),键入卷名称。最多能包含 255 个字母 (大写和小写字母)、数字、连字符和下划线。
-
(可选)要创建绑定挂载卷,对于 Source path(源路径),输入要提供给容器的主机容器实例上的路径。如果您将此字段保留为空,Docker 进程守护程序将为您分配一个主机路径。如果您指定源路径,数据卷将在主机容器实例上的指定位置保留,除非您手动将其删除。如果主机容器实例上不存在源路径位置,则 Docker 进程守护程序会创建它。如果该位置不存在,则源路径文件夹的内容将导出至容器。
-
要创建 Docker 卷,选择 Specify a volume driver (指定卷驱动程序)。
-
对于 Driver (驱动程序),选择要使用的 Docker 卷驱动程序。驱动程序值必须与 Docker 提供的驱动程序名称相符。对您的容器实例使用
docker plugin ls
来检索驱动程序名称。 -
对于 Scope (范围),选择确定 Docker 卷的生命周期的选项。当任务开始时,将自动预配置范围限定为
task
的 Docker 卷;而当任务停止时销毁此卷。任务停止后,范围限定为shared
的 Docker 卷将持续存在。 -
选择 Enable auto-provisioning(启用自动预置)以创建此 Docker 卷(如果它尚不存在)。此选项仅适用于指定
shared
范围的卷。 -
对于 Driver options (驱动程序选项),指定要使用的驱动程序特定的密钥值。
-
对于 Volume labels (卷标签),指定要添加到 Docker 卷的自定义元数据。
-
-
-
在标签部分,为要与任务定义关联的每个标签指定键和值。有关更多信息,请参阅标记 Amazon ECS 资源。
-
选择 Create(创建)。
-
- External instance launch type
-
使用外部实例启动类型
如果选择 外部,请完成以下步骤:
-
(可选) 如果您有任务定义的 JSON 表示形式,请完成以下步骤:
-
在 Configure task and container definitions 页面上,滚动到页面底部并选择 Configure via JSON。
-
将您的任务定义 JSON 文件粘贴到文本区域并选择 Save(保存)。
-
验证您的信息并选择 Create。
滚动到页面底部,选择 Configure via JSON (通过 JSON 配置)。
-
-
在 task definition Name(任务定义名称)中,为任务定义输入名称。最多能包含 255 个字母 (大写和小写字母)、数字、连字符和下划线。
-
(可选)对于 Task Role (任务角色),选择 IAM 角色,该角色可提供权限,允许任务中的容器代表您调用 AWS API。有关更多信息,请参阅 任务 IAM 角色 和 Amazon ECS Anywhere IAM 权限。
-
(可选) 对于 Network Mode,选择 Docker 网络模式,供任务中的容器使用。可用网络模式对应于 Docker 运行参考中的网络设置
中描述的网络模式。 默认 Docker 网络模式为
bridge
。如果将网络模式设置为none
,则无法在容器定义中指定端口映射,并且任务的容器没有外部连接性。如果网络模式为awsvpc
,则任务会分配一个弹性网络接口。host
和awsvpc
网络模式可为容器提供最佳的网络性能。这是因为它们使用 Amazon EC2 网络堆栈,而不是bridge
模式提供的虚拟化网络堆栈。但是,公开的容器端口会直接映射到相应的主机端口。因此,如果使用端口映射,则不能使用动态主机端口映射,也不能在单个容器实例上运行同一任务的多个实例化。 -
(可选)对于 Task execution role (任务执行角色),选择 IAM 角色,该角色可提供权限,允许任务中的容器代表您调用 AWS API。
-
(可选) 对于 Task size,选择 Task memory (GB) 和 Task CPU (vCPU) 的值。受支持的
Task CPU (vCPU)
值介于 128 个 CPU 单元 (0.125 个 vCPU) 和 10240 个 CPU 单元 (10 个 vCPU) 之间。注意 Windows 容器将忽略任务级 CPU 和内存参数。我们建议为 Windows 容器指定容器级资源。
-
对于您的任务定义中的每个容器,请完成以下步骤。
-
选择 Add container。
-
输入要在容器定义中使用的每个必填字段和任何可选字段。更多容器定义参数将可用于 Advanced container configuration (高级容器配置) 菜单中。有关更多信息,请参阅任务定义参数。
-
选择 Add,将容器添加到任务定义。
-
-
(可选) 对于 Constraint(限制),请定义从这个任务定义创建的任务放置到您的集群中的方式。有关更多信息,请参阅Amazon ECS 任务放置约束。
-
(可选)用于登入路由器集成,您可以添加自定义日志路由配置。选择启用 FireLens 集成,然后执行以下操作:
-
对于类型,选择要使用的日志路由器类型。
-
对于映像,键入日志路由器容器的映像 URI。如果选择了
fluentbit
日志路由器类型,Image(映像)字段将预填充AWS用于 Fluent Bit 图像。有关更多信息,请参阅将 AWS 用于 Fluent Bit 映像。 -
选择 Apply(应用)。这将创建一个新的日志路由器容器到名为
log_router
的任务定义,并应用相关设置以支持它。如果对日志路由器集成字段进行更改,请选择 Apply(应用)以更新 FireLens 容器。
-
-
(可选)要为您的任务定义数据卷,请选择 Add volume。您可以创建一个绑定挂载或 Docker 卷。有关更多信息,请参阅在任务中使用数据卷。
-
对于 Name (名称),键入卷名称。最多能包含 255 个字母 (大写和小写字母)、数字、连字符和下划线。
-
(可选)要创建绑定挂载卷,对于 Source path(源路径),输入要提供给容器的主机容器实例上的路径。如果您将此字段保留为空,Docker 进程守护程序将为您分配一个主机路径。如果您指定源路径,数据卷将在主机容器实例上的指定位置保留,除非您手动将其删除。如果主机容器实例上不存在源路径位置,则 Docker 进程守护程序会创建它。如果该位置不存在,则源路径文件夹的内容将导出至容器。
-
要创建 Docker 卷,选择 Specify a volume driver (指定卷驱动程序)。
-
对于 Driver (驱动程序),选择要使用的 Docker 卷驱动程序。驱动程序值必须与 Docker 提供的驱动程序名称相符。对您的容器实例使用
docker plugin ls
来检索驱动程序名称。 -
对于 Scope (范围),选择确定 Docker 卷的生命周期的选项。当任务开始时,将自动预配置范围限定为
task
的 Docker 卷;而当任务停止时销毁此卷。任务停止后,范围限定为shared
的 Docker 卷将持续存在。 -
选择 Enable auto-provisioning (启用自动预置) 以创建此 Docker 卷(如果它尚不存在)。此选项仅适用于指定
shared
范围的卷。 -
对于 Driver options (驱动程序选项),指定要使用的驱动程序特定的密钥值。
-
对于 Volume labels (卷标签),指定要添加到 Docker 卷的自定义元数据。
-
-
-
在标签部分,为要与任务定义关联的每个标签指定键和值。有关更多信息,请参阅标记 Amazon ECS 资源。
-
选择 Create(创建)。
-
创建新的任务定义(AWS CLI)
-
使用
register-task-definition
命令。有关更多信息,请参阅《AWS Command Line Interface 参考》中的 register-task-definition。