Amazon EC2 Container Service
开发人员指南 (API Version 2014-11-13)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Amazon ECS 容器代理自检

Amazon ECS 容器代理提供了一个 API,用于收集有关正在运行该代理的容器实例以及在该实例上正在运行的相关任务的详细信息。您可以在容器实例内使用 curl 命令查询 Amazon ECS 容器代理(端口 51678)并返回容器实例元数据或任务信息。

要查看容器实例元数据,请通过 SSH 登录到容器实例并运行以下命令。元数据包含容器实例 ID、容器实例注册到的 Amazon ECS 群集和 Amazon ECS 容器代理版本信息。

Copy
[ec2-user ~]$ curl http://localhost:51678/v1/metadata

输出:

{
  "Cluster": "default",
  "ContainerInstanceArn": "<container_instance_ARN>",
  "Version": "Amazon ECS Agent - v1.14.3 (15de319)"
}

要查看有关在容器实例上运行的所有任务的信息,请通过 SSH 登录到容器实例并运行以下命令:

Copy
[ec2-user ~]$ curl http://localhost:51678/v1/tasks

输出:


{
  "Tasks": [
    {
      "Arn": "arn:aws:ecs:us-east-1:<aws_account_id>:task/example5-58ff-46c9-ae05-543f8example",
      "DesiredStatus": "RUNNING",
      "KnownStatus": "RUNNING",
      "Family": "hello_world",
      "Version": "8",
      "Containers": [
        {
          "DockerId": "9581a69a761a557fbfce1d0f6745e4af5b9dbfb86b6b2c5c4df156f1a5932ff1",
          "DockerName": "ecs-hello_world-8-mysql-fcae8ac8f9f1d89d8301",
          "Name": "mysql"
        },
        {
          "DockerId": "bf25c5c5b2d4dba68846c7236e75b6915e1e778d31611e3c6a06831e39814a15",
          "DockerName": "ecs-hello_world-8-wordpress-e8bfddf9b488dff36c00",
          "Name": "wordpress"
        }
      ]
    }
  ]
}

您可以查看在容器实例上运行的特定任务的信息。要指定特定的任务或容器,请向请求中追加以下内容之一:

  • 任务 ARN (?taskarn=task_arn)

  • 容器的 Docker ID (?dockerid=docker_id)

要获取有关容器 Docker ID 的任务信息,请通过 SSH 登录到容器实例并运行以下命令。

注意

1.14.2 之前的 Amazon ECS 容器代理版本要求为自检 API 提供完整的 Docker 容器 ID,而不是利用 docker ps 显示的简略版。您可以通过在容器实例上运行 docker ps --no-trunc 命令来获取容器的完整 Docker ID。

Copy
[ec2-user ~]$ curl http://localhost:51678/v1/tasks?dockerid=79c796ed2a7f

输出:


{
    "Arn": "arn:aws:ecs:us-east-1:<aws_account_id>:task/e01d58a8-151b-40e8-bc01-22647b9ecfec",
    "Containers": [
        {
            "DockerId": "79c796ed2a7f864f485c76f83f3165488097279d296a7c05bd5201a1c69b2920",
            "DockerName": "ecs-nginx-efs-2-nginx-9ac0808dd0afa495f001",
            "Name": "nginx"
        }
    ],
    "DesiredStatus": "RUNNING",
    "Family": "nginx-efs",
    "KnownStatus": "RUNNING",
    "Version": "2"
}