使用新的 Amazon ECS 控制台运行独立任务 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用新的 Amazon ECS 控制台运行独立任务

在某些情况下,我们建议您将应用程序作为独立任务部署。例如,假设您正在开发一个应用程序,但还没有准备好用服务调度器来部署。如果您的应用程序是一次性或定期批处理作业,并不需要持续运行,完成后也不需要重启。

要将应用程序部署为持续运行或将其置于负载均衡器后面,请创建 Amazon ECS 服务。有关更多信息,请参阅Amazon ECS 服务

要运行独立任务,请使用以下程序之一。

使用新的控制台时请考虑以下事项;

  • 任务定义使用 awsvpc 网络模式或配置为使用负载均衡器的服务必须具有网络配置。预设情况下,控制台会选择原定设置 Amazon VPC 以及原定设置 Amazon VPC 中的所有子网和原定设置安全组。

  • 对于 EC2 启动类型,默认任务放置策略是在可用区之间以及可用区中的容器实例之间分发任务。

  • 对于 capacity provider strategy(容量提供程序策略),控制台会默认选择一个计算选项。下面介绍了控制台用于选择原定设置值的顺序:

    • 如果您的集群已定义原定设置容量提供程序策略,则将选择该策略。

    • 如果您的群集没有定义的原定设置容量提供程序策略,但您确实已将 Fargate 容量提供程序添加到集群中,则选择使用 FARGATE 容量提供程序。

    • 如果您的群集没有定义原定设置容量提供程序策略,但您确实已将一个或多个自动扩缩组容量提供程序添加到集群中,则选中 Use custom (Advanced) [使用自定义(高级)] 选项,且您需要手动定义策略。

    • 如果您的集群没有定义原定设置容量提供程序策略,并且没有向集群添加容量提供程序,则会选择 Fargate 启动类型。

New console from the Cluster page
  1. https://console.aws.amazon.com/ecs/v2 中打开新控制台。

  2. Clusters 页面上,选择包含要运行独立任务的集群。

  3. 任务选项卡上,选择运行新任务

  4. (可选)选择计划任务在集群基础设施中的分发方式。展开 Compute configuration(计算配置),然后执行以下操作:

    分配方式 步骤

    容量提供程序策略

    1. Compute options(计算选项)部分中,选择 Capacity provider strategy(容量提供程序策略)。

    2. 选择策略:

      • 要使用集群的原定设置容量提供程序策略,请选择 Use cluster default(使用集群原定设置)。

      • 如果集群没有原定设置的容量提供程序策略,或者要使用自定义策略,请选择 Use custom(使用自定义),Add capacity provider strategy(添加容量提供程序策略),并通过指定 Base(基准)、Capacity provider(容量提供程序)和 Weight(权重)来定义自定义容量提供程序策略。

    注意

    要在策略中使用容量提供程序,容量提供程序必须与集群相关联。有关容量提供程序的更多信息,请参阅 Amazon ECS 容量提供程序

    启动类型
    1. Compute options(计算选项)部分中,选择 Launch type(启动类型)。

    2. 对于 Launch type(启动类型),请选择一种启动类型。

    3. (可选)当指定 Fargate 启动类型时,对于平台版本中,指定要使用的平台版本。如果未指定任何版本,将原定设置使用 LATEST 平台版本。

  5. 对于应用程序类型,选择任务

  6. 对于任务定义,选择要使用的任务定义族和修订。

    重要

    控制台验证选择内容,确保所选任务定义系列和修订版与定义的计算配置兼容。

  7. 对于 Desired tasks(预期任务),请输入要启动的任务数量。

  8. 如果您的任务定义使用 awsvpc 网络模式,请展开 Networking(联网)。使用以下步骤指定自定义配置。

    1. 对于 VPC,选择要使用的 VPC。

    2. 对于 Subnets(子网),选择 VPC 中的一个或多个子网,任务计划程序在放置任务时会考虑这些子网。

      重要

      awsvpc 网络模式仅支持私有子网。任务不接收公有 IP 地址。因此,出站互联网访问需要 NAT 网关,且入站互联网流量通过负载均衡器进行路由。

    3. 对于安全组,您可以选择现有安全组或创建新安全组。要使用现有安全组,请选择该安全组并移至下一步。要创建新安全组,请选择 Create a new security group (创建新安全组)。您必须指定安全组名称、说明,然后为该安全组添加一个或多个入站规则。

    4. 对于 Public IP(公有 IP),选择是否向任务的弹性网络接口(ENI)自动分配公有 IP 地址。在公有子网内运行 Amazon Fargate 任务时,可以为其分配一个公有 IP 地址,以便它们能够路由至互联网。有关更多信息,请参阅 Amazon Fargate Amazon Elastic Container Service 开发人员指南 中的 Fargate任务联网

  9. (可选)要使用默认策略之外的其他任务放置策略,请展开 Task Placement(任务放置),然后从以下选项中进行选择。

    有关更多信息,请参阅Amazon ECS 任务放置

    • AZ Balanced Spread (AZ 均衡分散) – 在各个可用区以及每个可用区中的各个容器实例中分配任务。

    • AZ Balanced BinPack (AZ 均衡装填) – 在各个可用区以及具有最低可用内存的容器实例中分配任务。

    • BinPack (装填) – 根据 CPU 或内存的最低可用量来分配任务。

    • One Task Per Host (每个主机一项任务) – 在每个容器实例中最多可放置服务的一个任务。

    • Custom (自定义) – 定义您自己的任务放置策略。

    如果您选择了 Custom(自定义),请定义放置任务的算法和任务放置过程中要考虑的规则。

    • Strategy(策略)下,对于 Type(类型)和 Field(字段),选择算法和用于该算法的实体。

      您最多可输入 5 个策略。

    • Constraint(约束)下,对于 Type(类型)和 Expression(表达式),选择要用于该约束的规则和属性。

      当您输入 Expression(表达式)时,请勿输入双引号(" ")。例如,要设置在 T2 实例上放置任务的约束,对于 Expression(表达式),输入 attribute:ecs.instance-type =~ t2.*

      您最多可输入 10 个约束。

  10. (可选)要覆盖任务定义中定义的任务 IAM 角色或任务执行角色,请展开 Task overrides(任务覆盖),然后完成以下步骤:

    1. 对于 Task role(任务角色),请选择此任务的 IAM 角色以覆盖任务定义中任务 IAM 角色。有关更多信息,请参阅任务的 IAM 角色

      此处只显示具有 ecs-tasks.amazonaws.com 信任关系的角色。有关如何为任务创建 IAM 角色的说明,请参阅 为任务创建 IAM 角色和策略

    2. 对于 Task execution role(任务执行角色),请选择任务执行角色以覆盖任务定义中指定的任务执行角色。有关更多信息,请参阅Amazon ECS 任务执行 IAM 角色

  11. (可选)要覆盖容器命令和环境变量,请展开 Container Overrides(容器覆盖),然后展开容器。

    • 对于 Command override(命令覆盖),请输入发送到容器的 Docker 命令,而不是任务定义中指定的命令。

      有关 Docker 运行命令的更多信息,请参阅“Docker Reference Manual”(《Docker 参考手册》)中的 Docker Run reference(Docker 运行参考)。

    • 要添加环境变量,请选择 Add Environment Variable(添加环境变量)。对于 Key,键入您的环境变量名称。对于,输入环境值的字符串值(不使用双引号 (" "))。

      Amazon 用双引号(" ")括起字符串,并按以下格式将字符串传递给容器:

      MY_ENV_VAR="This variable contains a string."
  12. 选择 Deploy(部署)。

New Console from the task definition page
  1. https://console.aws.amazon.com/ecs/v2 中打开新控制台。

  2. Task definitions(任务定义)页面上,选择任务定义。

  3. 选择 Deploy(部署)、Run task(运行任务)。

  4. (可选)选择任务在集群基础设施中的分发方式。展开 Compute configuration(计算配置),然后选择您的选项。

    分配方式 步骤

    容量提供程序策略

    1. Compute options(计算选项)部分中,选择 Capacity provider strategy(容量提供程序策略)。

    2. 选择策略:

      • 要使用集群的原定设置容量提供程序策略,请选择 Use cluster default(使用集群原定设置)。

      • 如果集群没有原定设置的容量提供程序策略,或者要使用自定义策略,请选择 Use custom(使用自定义),Add capacity provider strategy(添加容量提供程序策略),并通过指定 Base(基准)、Capacity provider(容量提供程序)和 Weight(权重)来定义自定义容量提供程序策略。

    注意

    要在策略中使用容量提供程序,容量提供程序必须与集群相关联。有关容量提供程序的更多信息,请参阅 Amazon ECS 容量提供程序

    启动类型
    1. Compute options(计算选项)部分中,选择 Launch type(启动类型)。

    2. 对于 Launch type(启动类型),请选择一种启动类型。

    3. (可选)当指定 Fargate 启动类型时,对于平台版本中,指定要使用的平台版本。如果未指定任何版本,将原定设置使用 LATEST 平台版本。

  5. Existing cluster(现有集群)中,选择运行任务的集群。

  6. 对于任务定义,选择要使用的任务定义族和修订。

    重要

    控制台验证选择内容,确保所选任务定义系列和修订版与定义的计算配置兼容。

  7. 对于 Desired tasks(预期任务),请输入要启动的任务数量。

  8. 如果您的任务定义使用 awsvpc 网络模式,请展开 Networking(联网)。使用以下步骤指定自定义配置。

    1. 对于 VPC,选择要使用的 VPC。

    2. 对于 Subnets(子网),选择 VPC 中的一个或多个子网,任务计划程序在放置任务时会考虑这些子网。

      重要

      awsvpc 网络模式仅支持私有子网。任务不接收公有 IP 地址。因此,出站互联网访问需要 NAT 网关,且入站互联网流量通过负载均衡器进行路由。

    3. 对于安全组,您可以选择现有安全组或创建新安全组。要使用现有安全组,请选择该安全组并移至下一步。要创建新安全组,请选择 Create a new security group (创建新安全组)。您必须指定安全组名称、说明,然后为该安全组添加一个或多个入站规则。

    4. 对于 Public IP(公有 IP),选择是否向任务的弹性网络接口(ENI)自动分配公有 IP 地址。在公有子网内运行 Amazon Fargate 任务时,可以为其分配一个公有 IP 地址,以便它们能够路由至互联网。有关更多信息,请参阅 Amazon Fargate Amazon Elastic Container Service 开发人员指南 中的 Fargate任务联网

  9. (可选)要使用默认策略之外的其他任务放置策略,请展开 Task Placement(任务放置),然后从以下选项中进行选择。

    有关更多信息,请参阅Amazon ECS 任务放置

    • AZ Balanced Spread (AZ 均衡分散) – 在各个可用区以及每个可用区中的各个容器实例中分配任务。

    • AZ Balanced BinPack (AZ 均衡装填) – 在各个可用区以及具有最低可用内存的容器实例中分配任务。

    • BinPack (装填) – 根据 CPU 或内存的最低可用量来分配任务。

    • One Task Per Host (每个主机一项任务) – 在每个容器实例中最多可放置服务的一个任务。

    • Custom (自定义) – 定义您自己的任务放置策略。

    如果您选择了 Custom(自定义),请定义放置任务的算法和任务放置过程中要考虑的规则。

    • Strategy(策略)下,对于 Type(类型)和 Field(字段),选择算法和用于该算法的实体。

      您最多可输入 5 个策略。

    • Constraint(约束)下,对于 Type(类型)和 Expression(表达式),选择要用于该约束的规则和属性。

      当您输入 Expression(表达式)时,请勿输入双引号(" ")。例如,要设置在 T2 实例上放置任务的约束,对于 Expression(表达式),输入 attribute:ecs.instance-type =~ t2.*

      您最多可输入 10 个约束。

  10. (可选)要覆盖任务定义中定义的任务 IAM 角色或任务执行角色,请展开 Task overrides(任务覆盖),然后完成以下步骤:

    1. 对于 Task role(任务角色),请选择此任务的 IAM 角色以覆盖任务定义中任务 IAM 角色。有关更多信息,请参阅任务的 IAM 角色

      此处只显示具有 ecs-tasks.amazonaws.com 信任关系的角色。有关如何为任务创建 IAM 角色的说明,请参阅 为任务创建 IAM 角色和策略

    2. 对于 Task execution role(任务执行角色),请选择任务执行角色以覆盖任务定义中指定的任务执行角色。有关更多信息,请参阅Amazon ECS 任务执行 IAM 角色

  11. (可选)要覆盖容器命令和环境变量,请展开 Container Overrides(容器覆盖),然后展开容器。

    • 对于 Command override(命令覆盖),请输入发送到容器的 Docker 命令,而不是任务定义中指定的命令。

      有关 Docker 运行命令的更多信息,请参阅“Docker Reference Manual”(《Docker 参考手册》)中的 Docker Run reference(Docker 运行参考)。

    • 要添加环境变量,请选择 Add Environment Variable(添加环境变量)。对于 Key,键入您的环境变量名称。对于,输入环境值的字符串值(不使用双引号 (" "))。

      Amazon 用双引号(" ")括起字符串,并按以下格式将字符串传递给容器:

      MY_ENV_VAR="This variable contains a string."
  12. (可选)为了帮助识别您的任务,请展开 Tags(标签)部分,然后配置您的标签。

    添加或删除标签。

    • [添加标签] 选择 Add tag(添加标签),然后执行以下操作:

      • 对于 Key(键),输入键名称。

      • 对于 Value(值),输入键值。

    • [删除标签] 在标签旁,选择 Remove tag (删除标签)

  13. 选择 Deploy(部署)。