

# 将应用程序作为 Amazon ECS 任务运行
<a name="standalone-task-create"></a>

您可以使用 AWS 管理控制台 为一次性过程创建任务。

**要创建独立任务（AWS 管理控制台）**

1. 在 [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2) 打开控制台。

1. Amazon ECS 控制台允许您通过集群详细信息页面或任务定义修订列表创建独立任务。根据您选择的资源页面，使用以下步骤来创建您的独立任务。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonECS/latest/developerguide/standalone-task-create.html)

1. 对于**现有集群**，选择该集群。

   选择**创建集群**，以在新集群上运行该任务

1. 选择任务在集群基础设施中的分发方式。在**计算配置**下，选择您的选项。要使用容量提供程序策略，您必须在集群级别配置容量提供程序。

   如果您尚未将集群配置为使用容量提供程序，则请改用启动类型。

   如果要在 Amazon ECS 托管实例上运行工作负载，则必须使用容量提供程序策略选项。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonECS/latest/developerguide/standalone-task-create.html)

1. 在**部署配置**下，执行以下操作：

   1. 对于**任务定义**，输入该任务定义。
**重要**  
控制台验证选择内容，确保所选任务定义系列和修订版与定义的计算配置兼容。

   1. 对于 **Desired tasks**（预期任务），请输入要启动的任务数量。

   1. 对于**任务组**，键入任务组名称。

1. 如果您的任务定义使用 `awsvpc` 网络模式，请展开 **Networking**（联网）。使用以下步骤指定自定义配置。

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

   1. 对于 **Subnets**（子网），选择 VPC 中的一个或多个子网，任务计划程序在放置任务时会考虑这些子网。

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

   1. 对于**公有 IP**，选择是否向任务的弹性网络接口（ENI）自动分配公有 IP 地址。

      在公有子网中运行时，可以为 AWS Fargate 任务分配一个公有 IP 地址，以便它们具有通往互联网的路由。无法使用此字段为 EC2 任务分配公有 IP。有关更多信息，请参阅 [Fargate 的 Amazon ECS 任务联网选项](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-task-networking.html)和[为 Amazon ECS 任务分配网络接口](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking-awsvpc.html)。

1. 如果您的任务使用的数据卷与部署时的配置兼容，则可以通过扩展**卷**来配置该卷。

   卷名称和卷类型在创建任务定义修订时配置，在运行独立任务时无法更改。要更新卷名称和类型，您必须创建新的任务定义修订并使用新修订运行任务。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonECS/latest/developerguide/standalone-task-create.html)

1. （可选）要使用默认策略之外的其他任务放置策略，请展开 **Task Placement**（任务放置），然后从以下选项中进行选择。

    有关更多信息，请参阅 [Amazon ECS 如何将任务放置在容器实例上](task-placement.md)。
   + **AZ 均衡分散** – 在各个可用区以及每个可用区中的各个容器实例中分配任务。
   + **AZ 均衡装填** – 在各个可用区以及具有最低可用内存的容器实例中分配任务。
   + **装填** – 根据 CPU 或内存的最低可用量来分配任务。
   + **每个主机一项任务** – 在每个容器实例中最多可放置服务的一个任务。
   + **自定义** – 定义您自己的任务放置策略。

   如果您选择了 **Custom**（自定义），请定义放置任务的算法和任务放置过程中要考虑的规则。
   + 在 **Strategy**（策略）下，对于 **Type**（类型）和 **Field**（字段），选择算法和用于该算法的实体。

     您最多可输入 5 个策略。
   + 在**约束**下，对于**类型**和**表达式**，选择要用于该约束的规则和属性。

     例如，要设置在 T2 实例上放置任务的约束，对于 **Expression**（表达式），输入 **attribute:ecs.instance-type =\$1 t2.\$1**。

     您最多可输入 10 个约束。

1. （可选）要覆盖任务定义中定义的任务 IAM 角色或任务执行角色，请展开 **Task overrides**（任务覆盖），然后完成以下步骤：

   1. 对于**任务角色**，请选择此任务的 IAM 角色。有关更多信息，请参阅 [Amazon ECS 任务 IAM 角色](task-iam-roles.md)。

      此处只显示具有 `ecs-tasks.amazonaws.com` 信任关系的角色。有关如何为任务创建 IAM 角色的说明，请参阅 [创建任务 IAM 角色](task-iam-roles.md#create_task_iam_policy_and_role)。

   1. 对于**任务执行角色**，请选择任务执行角色。有关更多信息，请参阅 [Amazon ECS 任务执行 IAM 角色](task_execution_IAM_role.md)。

1. （可选）要覆盖容器命令和环境变量，请展开 **Container Overrides**（容器覆盖），然后展开容器。
   +  要向容器发送任务定义命令以外的命令，请在**命令覆盖**中输入 Docker 命令。
   + 要添加环境变量，请选择 **Add Environment Variable**（添加环境变量）。对于 **Key**，键入您的环境变量名称。对于**值**，输入环境值的字符串值，不使用双引号（`" "`）。

     AWS 用双引号（" "）括起字符串，并按以下格式将字符串传递给容器：

     ```
     MY_ENV_VAR="This variable contains a string."
     ```

1. （可选）为了帮助识别您的任务，请展开**标签**部分，然后配置您的标签。

   要让 Amazon ECS 使用集群名称和任务定义标签自动标记全部新启动的任务，选择 **Turn on Amazon ECS managed tags**（启用 Amazon ECS 托管标签），然后选择 **Task definitions**（任务定义）。

   添加或删除标签。
   + [添加标签] 选择 **Add tag**（添加标签），然后执行以下操作：
     + 对于 **Key（键）**，输入键名称。
     + 对于**值**，输入键值。
   + [删除标签] 在标签旁，选择**删除标签**。

1. 选择**创建**。