

# 更新 Amazon ECS 容器代理
<a name="ecs-agent-update"></a>

有时，您可能需要更新 Amazon ECS 容器代理以获取错误修正和新功能。更新 Amazon ECS 容器代理不会中断容器实例上正在运行的任务或服务。更新代理的过程各不相同，具体取决于您的容器实例是否通过经 Amazon ECS 优化过的 AMI 或其他操作系统启动。

**注意**  
代理更新不适用于 Windows 容器实例。我们建议您启动新的容器实例来更新您的 Windows 集群中的代理版本。

## 检查 Amazon ECS 容器代理版本
<a name="checking_agent_version"></a>

您可以查看在容器实例上运行的容器代理的版本以确定是否需要更新它。Amazon ECS 控制台中的容器实例视图提供了代理版本。使用以下过程可以检查代理版本。

------
#### [ Amazon ECS console ]

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

1. 从导航栏中，选择您的外部实例将注册的区域。

1. 在导航窗格中，选择 **集群** 并选择托管外部实例的集群。

1. 在 **Cluster : *name***（集群：名称）页面上，选择 **Infrastructure**（基础设施）选项卡。

1. 在**容器实例**下，注意容器实例的**代理版本**列。如果容器实例未包含最新版本的容器代理，则控制台将通过消息来提醒您并标记已过期的代理版本。

   如果您的代理版本已过期，则可以使用以下过程更新容器代理：
   + 如果您的容器实例正在运行经 Amazon ECS 优化的 AMI，请参阅 [更新经 Amazon ECS 优化的 AMI 上的 Amazon ECS 容器代理](agent-update-ecs-ami.md)。
   + 如果您的容器实例未运行经 Amazon ECS 优化的 AMI，请参阅 [手动更新 Amazon ECS 容器代理（适用于非经 Amazon ECS 优化的 AMI）](manually_update_agent.md)。
**重要**  
要在经 Amazon ECS 优化的 AMI 上从 v1.0.0 之前的版本更新 Amazon ECS代理版本，建议您终止当前容器实例并启动具有最新 AMI 的新实例。使用预览版的任何容器实例都应停用并更换为最新的 AMI。有关更多信息，请参阅 [启动 Amazon ECS Linux 容器实例](launch_container_instance.md)。

------
#### [ Amazon ECS container agent introspection API  ]

您还可以使用 Amazon ECS 容器代理自检 API 从容器实例本身检查代理版本。有关更多信息，请参阅 [Amazon ECS 容器自检](ecs-agent-introspection.md)。

**利用自检 API 检查 Amazon ECS 容器代理运行的是否为最新版本**

1. 通过 SSH 登录到容器实例。

1. 查询自检 API。

   ```
   [ec2-user ~]$ curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool
   ```
**注意**  
自检 API 在 v1.0.0 版本的 Amazon ECS 容器代理中添加了 `Version` 信息。如果在查询自检 API 时 `Version` 不存在，或者自检 API 在您的代理中根本不存在，则表明运行的版本是 v0.0.3 或更早的版本。您应该更新版本。

------