Introspeksi ECS wadah Amazon - 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 ECS wadah Amazon

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

penting

Instance container Anda harus memiliki IAM peran yang memungkinkan akses ke Amazon ECS untuk mengambil metadata. Untuk informasi selengkapnya, lihat IAMPeran contoh ECS wadah Amazon.

Untuk melihat metadata instance container, masuk ke instance container Anda melalui SSH dan jalankan perintah berikut. Metadata menyertakan ID instance container, ECS klaster Amazon tempat instance container terdaftar, dan informasi versi agen ECS penampung Amazon.

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 instance container, masuk ke instance container 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:

  • Tugas ARN (?taskarn=task_arn)

  • ID Docker untuk kontainer (?dockerid=docker_id)

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

catatan

Agen ECS penampung Amazon sebelum versi 1.14.2 memerlukan wadah Docker lengkap IDs untuk introspeksiAPI, bukan versi pendek yang ditampilkan. 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"
}