

# AWS Toolkit 中的 Amazon Elastic Container Service（Amazon ECS）Exec
<a name="ecs-exec"></a>

您可以使用 Amazon ECS Exec 功能，直接从 AWS Toolkit 发出单个命令或在 Amazon Elastic Container Service（Amazon ECS）容器中运行 Shell。

**重要**  
启用和禁用 Amazon ECS Exec 会更改 AWS 账户中资源的状态。这包括停止和重新启动服务。在 Amazon ECS Exec 处于启用状态时更改资源状态可能会导致不可预测的结果。有关 Amazon ECS Exec 的更多信息，请参阅 [Using Amazon ECS Exec for Debugging](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html#ecs-exec-considerations) 开发人员指南。

## Amazon ECS Exec 先决条件
<a name="ecs-exec-prereq"></a>

需要满足某些先决条件才能使用 Amazon ECS Exec 功能。

**重要**  
要为特定服务启用 Amazon ECS Exec，必须对该服务禁用 Amazon ECS Cloud Debugging。

### Amazon ECS 要求
<a name="w7aac13c27b8c11b7"></a>

根据您的任务是托管在 Amazon EC2 上还是 AWS Fargate 上，Amazon ECS Exec 具有不同的版本要求。
+ 如果您使用的是 Amazon EC2，必须使用 2021 年 1 月 20 日之后发布的经 Amazon ECS 优化的 AMI，代理版本为 1.50.2 或更高。其他信息可在[经 Amazon ECS 优化的 AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) 开发人员指南中找到。
+ 如果您使用的是 AWS Fargate，则必须使用平台版 1.4.0 或更高版本。开发人员指南 [AWS Fargate 平台版本](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html)中提供了有关 Fargate 要求的更多信息。

### AWS 账户配置和 IAM 权限
<a name="w7aac13c27b8c11b9"></a>

要使用 Amazon ECS Exec 功能，您需要拥有与您的 AWS 账户 关联的现有 Amazon ECS 集群。Amazon ECS Exec 使用 Systems Manager 与集群中的容器建立连接，并且需要特定的任务 IAM 角色权限才能与 SSM 服务通信。

您可以在 [ECS Exec 所需的 IAM 权限](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html#ecs-exec-enabling-and-using)开发人员指南中找到特定于 Amazon ECS Exec 的 IAM 角色和策略信息。

## 使用 Amazon ECS Exec
<a name="w7aac13c27b8c15"></a>

您可以直接在 AWS Toolkit for JetBrains 中通过 AWS Explorer 来启用或禁用 Amazon ECS Exec。启用 Amazon ECS Exec 后，您可以从 Amazon ECS 菜单中选择容器，然后对它们运行命令。

### 启用 Amazon ECS Exec
<a name="w7aac13c27b8c15b5"></a>

1. 在 AWS Explorer 中，展开 Amazon ECS 菜单。

1. 展开**集群**部分，然后选择要修改的集群。

1. 打开要修改的服务的上下文菜单（右键单击），然后选择**启用命令执行**。
**注意**  
如果为此服务启用了 Amazon ECS Cloud Debugging，**启用命令执行**选项将不可用。禁用 Cloud Debugging 时将恢复该选项，但会停止并重新启动您的服务。

**重要**  
此操作将启动服务的新部署，可能需要几分钟。有关更多信息，请参阅本部分开头的注释。

### 禁用 Amazon ECS Exec
<a name="w7aac13c27b8c15b7"></a>

1. 在 AWS Explorer 中，展开 Amazon ECS 菜单。

1. 展开**集群**部分，然后选择要修改的集群。

1. 打开服务的上下文菜单（右键单击），然后选择**禁用命令执行**。

**重要**  
此操作将启动服务的新部署，可能需要几分钟。有关更多信息，请参阅本部分开头的注释。

### 对容器运行命令
<a name="w7aac13c27b8c15b9"></a>

要使用 AWS Explorer 对容器运行命令，必须启用 Amazon ECS Exec。如果未启用，请参阅本部分中的****“启用 Amazon ECS Exec”步骤。

1. 在 AWS Explorer 中，展开 Amazon ECS 菜单。

1. 展开**集群**部分，然后选择要修改的集群。

1. 展开服务以列出其容器。

1. 打开要修改的容器的上下文菜单（右键单击），然后选择**在容器中运行命令**。

1. 在**在容器中运行命令**对话框中，选择所需的**任务 ARN**。

1. 您可以输入要运行的命令，也可以从同一会话期间运行的命令列表中选择相应命令。

1. 选择 **Execute**（执行）。

### 在 Shell 中运行命令
<a name="w7aac13c27b8c15c11"></a>

要在 Shell 中使用 AWS Explorer 对容器运行命令，必须启用 Amazon ECS Exec。如果未启用，请参阅本部分中的****“启用 Amazon ECS Exec”步骤。

1. 在 AWS Explorer 中，展开 Amazon ECS 菜单。

1. 展开**集群**部分，然后选择要修改的集群。

1. 展开服务以列出其容器。

1. 打开要修改的容器的上下文菜单（右键单击），然后选择**打开交互式 Shell**。

1. 在**交互式 Shell** 对话框中，选择所需的**任务 ARN**。

1. 从相应的下拉列表中选择一个 Shell，或输入要与之交互的 Shell 的名称。

1. 如果您对设置感到满意，请选择**执行**。

1. 当 Shell 在终端中打开后，您可以输入命令以与容器进行交互。