View a markdown version of this page

Introspeksi wadah Amazon ECS - Amazon Elastic Container Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Introspeksi wadah Amazon ECS

Agen kontainer Amazon ECS menyediakan operasi API untuk mengumpulkan detail tentang instance kontainer tempat agen berjalan dan tugas terkait yang berjalan pada instans tersebut. Anda dapat menggunakan curl perintah dari dalam instance kontainer untuk menanyakan agen kontainer Amazon ECS (port 51678) dan mengembalikan metadata instans kontainer atau informasi tugas.

penting

Instans kontainer Anda harus memiliki peran IAM yang memungkinkan akses ke Amazon ECS untuk mengambil metadata. Untuk informasi selengkapnya, lihat Peran IAM instans kontainer Amazon ECS.

Untuk melihat metadata instans kontainer, masuk ke instans kontainer Anda melalui SSH dan jalankan perintah berikut. Metadata mencakup ID instans kontainer, cluster Amazon ECS tempat instance kontainer terdaftar, dan informasi versi agen kontainer Amazon ECS.

curl -s http://localhost:51678/v1/metadata | python3 -mjson.tool

Output:

{
    "Cluster": "cluster_name",
    "ContainerInstanceArn": "arn:aws:ecs:region:aws_account_id:container-instance/cluster_name/container_instance_id",
    "Version": "Amazon ECS Agent - v1.30.0 (02ff320c)"
}

Untuk melihat informasi tentang semua tugas yang berjalan pada instans kontainer, masuk ke instans kontainer Anda melalui SSH dan jalankan perintah berikut:

curl http://localhost:51678/v1/tasks

Output:

{
    "Tasks": [
        {
            "Arn": "arn:aws:ecs:us-west-2:012345678910:task/default/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",
          "CreatedAt": "2023-10-08T20:09:11.44527186Z",
          "StartedAt": "2023-10-08T20:09:11.44527186Z",
          "ImageID": "sha256:2ae34abc2ed0a22e280d17e13f9c01aaf725688b09b7a1525d1a2750e2c0d1de"
        },
        {
          "DockerId": "bf25c5c5b2d4dba68846c7236e75b6915e1e778d31611e3c6a06831e39814a15",
          "DockerName": "ecs-hello_world-8-wordpress-e8bfddf9b488dff36c00",
          "Name": "wordpress"
        }
    ]
}
    ]
}

Anda dapat melihat informasi untuk tugas tertentu yang berjalan pada instans kontainer. Untuk menentukan tugas atau kontainer tertentu, tambahkan salah satu dari berikut pada permintaan:

  • ARN tugas (?taskarn=task_arn)

  • ID Docker untuk kontainer (?dockerid=docker_id)

Untuk mendapatkan informasi tugas dengan Docker ID kontainer, masuk ke instans kontainer Anda melalui SSH dan jalankan perintah berikut.

catatan

Agen kontainer Amazon ECS sebelum versi 1.14.2 memerlukan ID wadah Docker lengkap untuk API introspeksi, bukan versi pendek yang ditampilkan dengan. docker ps Anda bisa mendapatkan ID Docker lengkap untuk kontainer dengan menjalankan perintah docker ps --no-trunc pada instans kontainer.

curl http://localhost:51678/v1/tasks?dockerid=79c796ed2a7f

Output:

{
    "Arn": "arn:aws:ecs:us-west-2:012345678910:task/default/e01d58a8-151b-40e8-bc01-22647b9ecfec",
    "Containers": [
        {
            "DockerId": "79c796ed2a7f864f485c76f83f3165488097279d296a7c05bd5201a1c69b2920",
            "DockerName": "ecs-nginx-efs-2-nginx-9ac0808dd0afa495f001",
            "Name": "nginx",
            "CreatedAt": "2023-10-08T20:09:11.44527186Z",
            "StartedAt": "2023-10-08T20:09:11.44527186Z",
            "ImageID": "sha256:2ae34abc2ed0a22e280d17e13f9c01aaf725688b09b7a1525d1a2750e2c0d1de"
        }
    ],
    "DesiredStatus": "RUNNING",
    "Family": "nginx-efs",
    "KnownStatus": "RUNNING",
    "Version": "2"
}