本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon ECS 控制台运行独立任务
在某些情况下,我们建议您将应用程序作为独立任务部署。例如,假设您正在开发一个应用程序,但还没有准备好用服务调度器来部署。如果您的应用程序是一次性或定期批处理作业,并不需要持续运行,完成后也不需要重启。
要将应用程序部署为持续运行或将其置于负载均衡器后面,请创建 Amazon ECS 服务。有关更多信息,请参阅Amazon ECS 服务:
使用控制台时,请考虑以下几点;
-
任务定义使用
awsvpc
网络模式或配置为使用负载均衡器的服务必须具有网络配置。预设情况下,控制台会选择原定设置 Amazon VPC 以及原定设置 Amazon VPC 中的所有子网和原定设置安全组。 -
对于 EC2 启动类型,默认任务放置策略是在可用区之间以及可用区中的容器实例之间分发任务。
-
对于 capacity provider strategy(容量提供程序策略),控制台会默认选择一个计算选项。下面介绍了控制台用于选择原定设置值的顺序:
-
如果您的集群已定义原定设置容量提供程序策略,则将选择该策略。
-
如果您的群集没有定义的原定设置容量提供程序策略,但您确实已将 Fargate 容量提供程序添加到集群中,则选择使用
FARGATE
容量提供程序。 -
如果您的群集没有定义原定设置容量提供程序策略,但您确实已将一个或多个自动扩缩组容量提供程序添加到集群中,则选中 Use custom (Advanced) [使用自定义(高级)] 选项,且您需要手动定义策略。
-
如果您的集群没有定义原定设置容量提供程序策略,并且没有向集群添加容量提供程序,则会选择 Fargate 启动类型。
-
从控制台运行任务
-
确定要从其中启动服务的资源。
从中启动服务 步骤 集群
-
在集群页面上,选择要在其中创建服务的集群。
-
从任务选项卡上,选择运行新任务。
启动类型 -
在 Task(任务)页面上,选择任务定义。
-
如果有多个修订版,请选择相应的修订版。
-
选择 Deploy(部署)、Run task(运行任务)。
-
-
(可选)选择计划任务在集群基础设施中的分发方式。展开 Compute configuration(计算配置),然后执行以下操作:
分配方式 步骤 容量提供程序策略
-
在 Compute options(计算选项)部分中,选择 Capacity provider strategy(容量提供程序策略)。
-
选择策略:
-
要使用集群的原定设置容量提供程序策略,请选择 Use cluster default(使用集群原定设置)。
-
如果集群没有原定设置的容量提供程序策略,或者要使用自定义策略,请选择 Use custom(使用自定义),Add capacity provider strategy(添加容量提供程序策略),并通过指定 Base(基准)、Capacity provider(容量提供程序)和 Weight(权重)来定义自定义容量提供程序策略。
-
注意
要在策略中使用容量提供程序,容量提供程序必须与集群相关联。有关容量提供程序的更多信息,请参阅 Amazon ECS 容量提供程序。
启动类型 -
在 Compute options(计算选项)部分中,选择 Launch type(启动类型)。
-
对于 Launch type(启动类型),请选择一种启动类型。
-
(可选)当指定 Fargate 启动类型时,对于平台版本中,指定要使用的平台版本。如果未指定平台版本,则使用
LATEST
平台版本。
-
-
对于应用程序类型,选择任务。
-
在 “任务定义” 中,选择任务定义系列和修订版本。
重要
控制台会验证选择,以确保所选任务定义系列和修订版与定义的计算配置兼容。
-
对于 Desired tasks(预期任务),请输入要启动的任务数量。
-
如果您的任务定义使用
awsvpc
网络模式,请展开 Networking(联网)。使用以下步骤指定自定义配置。-
对于 VPC,选择要使用的 VPC。
-
对于 Subnets(子网),选择 VPC 中的一个或多个子网,任务计划程序在放置任务时会考虑这些子网。
重要
awsvpc
网络模式仅支持私有子网。任务不接收公有 IP 地址。因此,出站互联网访问需要 NAT 网关,且入站互联网流量通过负载均衡器进行路由。 -
对于安全组,您可以选择现有安全组或创建新安全组。要使用现有的安全组,请选择该安全组并进入下一步。要创建新安全组,请选择 Create a new security group (创建新安全组)。您必须指定安全组名称、说明,然后为该安全组添加一个或多个入站规则。
-
对于公有 IP,选择是否向任务的 elastic network interface (ENI) 自动分配公有 IP 地址。
Amazon Fargate在公有子网中运行时,可以为任务分配一个公有 IP 地址,这样它们就有通往互联网的路由。有关更多信息,请参阅 Amazon Fargate Amazon Elastic Container Service 开发人员指南 中的 Fargate任务联网。
-
-
(可选)要使用默认策略之外的其他任务放置策略,请展开 Task Placement(任务放置),然后从以下选项中进行选择。
有关更多信息,请参阅Amazon ECS 任务放置:
-
AZ Balanced Spread (AZ 均衡分散) – 在各个可用区以及每个可用区中的各个容器实例中分配任务。
-
可用区平衡 BinPack-在可用内存最少的可用区域和容器实例之间分配任务。
-
BinPack-根据最少可用的 CPU 或内存量来分配任务。
-
One Task Per Host (每个主机一项任务) – 在每个容器实例中最多可放置服务的一个任务。
-
Custom (自定义) – 定义您自己的任务放置策略。
如果您选择了 Custom(自定义),请定义放置任务的算法和任务放置过程中要考虑的规则。
-
在 Strategy(策略)下,对于 Type(类型)和 Field(字段),选择算法和用于该算法的实体。
您最多可输入 5 个策略。
-
在 “约束” 下,在 “类型” 和 “表达式” 中,选择约束条件的规则和属性。
当您输入 Expression(表达式)时,请勿输入双引号(
" "
)。例如,要设置在 T2 实例上放置任务的约束,对于 Expression(表达式),输入 attribute:ecs.instance-type =~ t2.*。您最多可输入 10 个约束。
-
-
(可选)要覆盖任务定义中定义的任务 IAM 角色或任务执行角色,请展开 Task overrides(任务覆盖),然后完成以下步骤:
-
对于任务角色,请为此任务选择一个 IAM 角色。有关更多信息,请参阅任务 IAM 角色:
此处只显示具有
ecs-tasks.amazonaws.com
信任关系的角色。有关如何为任务创建 IAM 角色的说明,请参阅 为任务创建 IAM 角色和策略。 -
对于任务执行角色,选择任务执行角色。有关更多信息,请参阅Amazon ECS 任务执行 IAM 角色:
-
-
(可选)要覆盖容器命令和环境变量,请展开 Container Overrides(容器覆盖),然后展开容器。
-
要向容器发送任务定义命令以外的命令,请在 “命令覆盖” 中输入 Docker 命令。
有关 Docker 运行命令的更多信息,请参阅“Docker Reference Manual”(《Docker 参考手册》)中的 Docker Run reference
(Docker 运行参考)。 -
要添加环境变量,请选择 Add Environment Variable(添加环境变量)。对于 Key,键入您的环境变量名称。对于值,输入环境值的字符串值(不使用双引号 (
" "
))。Amazon 用双引号(" ")括起字符串,并按以下格式将字符串传递给容器:
MY_ENV_VAR="This variable contains a string."
-
-
(可选)为了帮助识别您的任务,请展开 Tags(标签)部分,然后配置您的标签。
要让 Amazon ECS 使用集群名称和任务定义标签自动标记全部新启动的任务,选择 Turn on Amazon ECS managed tags(启用 Amazon ECS 托管标签),然后选择 Task definitions(任务定义)。
添加或删除标签。
-
[添加标签] 选择 Add tag(添加标签),然后执行以下操作:
-
对于 Key(键),输入键名称。
-
对于 Value(值),输入键值。
-
-
[删除标签] 在标签旁,选择 Remove tag (删除标签)。
-
-
选择创建。