Aufgabenmetadaten-Endpunkt Version 4 - Amazon ECS

Aufgabenmetadaten-Endpunkt Version 4

Wichtig

Wenn Sie Amazon ECS-Aufgaben verwenden, die auf Amazon-EC2-Instances gehostet werden, finden Sie weitere Informationen unter Amazon ECS – Endpunkt für Aufgabenmetadaten im Amazon Elastic Container Service-Entwicklerhandbuch.

Ab Fargate-Plattformversion 1.4.0 wird in jeden Container einer Aufgabe eine Umgebungsvariable mit dem Namen ECS_CONTAINER_METADATA_URI_V4 eingeschleust. Wenn Sie den Aufgabenmetadaten-Endpunkt Version 4 abfragen, stehen für die Aufgaben verschiedene Aufgabenmetadaten und Docker-Statistiken zur Verfügung.

Der Aufgabenmetadaten-Endpunkt Version 4 funktioniert wie der Endpunkt der Version 3, stellt jedoch zusätzliche Netzwerkmetadaten für Ihre Container und Aufgaben bereit. Zusätzliche Netzwerkmetriken sind ebenfalls verfügbar, wenn die /stats-Endpunkte abgefragt werden.

Anmerkung

Um in Zukunft keine neuen Endpunktversionen für Aufgabenmetadaten erstellen zu müssen, können zusätzliche Metadaten zur Ausgabe der Version 4 hinzugefügt werden. Wir werden keine vorhandenen Metadaten entfernen oder Metadatenfeldnamen ändern.

Aktivieren des Aufgabenmetadaten-Endpunkts

Der Aufgabenmetadaten-Endpunkt ist standardmäßig für alle Amazon ECS-Aufgaben aktiviert, die auf AWS Fargate laufen, die Plattformversion 1.4.0 oder höher verwenden.

Pfade für Aufgabenmetadaten-Endpunkt Version 4

Die folgenden Aufgaben-Metadaten-Endpunkte sind für Container verfügbar:

${ECS_CONTAINER_METADATA_URI_V4}

Dieser Pfad gibt Metadaten für den Container zurück.

${ECS_CONTAINER_METADATA_URI_V4}/task

Dieser Pfad gibt Metadaten für die Aufgabe zurück, einschließlich einer Liste der Container-IDs und Namen für alle Container, die der Aufgabe zugeordnet sind. Weitere Informationen zu der Antwort für diesen Endpunkt finden Sie unter Aufgabenmetadaten-JSON-Antwort.

${ECS_CONTAINER_METADATA_URI_V4}/stats

Dieser Pfad gibt Docker-Statistiken für den Docker-Container zurück. Weitere Informationen zu den einzelnen zurückgegebenen Statistiken finden Sie unter ContainerStats in der Docker API-Dokumentation.

Anmerkung

Amazon ECS-Aufgaben auf AWS Fargate erfordern, dass der Container für ~1 Sekunde ausgeführt wird, bevor die Containerstatistiken zurückgegeben werden.

${ECS_CONTAINER_METADATA_URI_V4}/task/stats

Dieser Pfad gibt Docker-Statistiken für alle der Aufgabe zugeordneten Container zurück. Weitere Informationen zu den einzelnen zurückgegebenen Statistiken finden Sie unter ContainerStats in der Docker API-Dokumentation.

Anmerkung

Amazon ECS-Aufgaben auf AWS Fargate erfordern, dass der Container für ~1 Sekunde ausgeführt wird, bevor die Containerstatistiken zurückgegeben werden.

Aufgabenmetadaten-JSON-Antwort

Die folgenden Metadaten werden in der JSON-Antwort des Endpunkts für Aufgabenmetadaten (${ECS_CONTAINER_METADATA_URI_V4}/task) zurückgegeben.

Cluster

Der Amazon-Ressourcenname (ARN) oder kurzer Name des Amazon ECS-Clusters, zu dem die Aufgabe gehört.

TaskARN

Der vollständige Amazon-Ressourcenname (ARN) der Aufgabe, zu der der Container gehört

Family

Die Familie der Amazon ECS-Aufgabendefinition für die Aufgabe.

Revision

Die Revision der Amazon ECS-Aufgabendefinition für die Aufgabe.

DesiredStatus

Der gewünschte Status der Aufgabe von Amazon ECS.

KnownStatus

Der bekannte Status der Aufgabe von Amazon ECS.

Limits

Die Ressourcenbegrenzungen, die auf Aufgabenebene angegeben sind (z. B. CPU- und Speicherauslastung). Dieser Parameter wird ausgelassen, wenn keine Ressourcenbegrenzungen festgelegt wurden.

PullStartedAt

Der Zeitstempel für den Zeitpunkt, an dem der erste Abruf des Container-Abbilds gestartet wurde

PullStoppedAt

Der Zeitstempel für den Zeitpunkt, an dem der letzte Abruf des Container-Abbilds abgeschlossen wurde

AvailabilityZone

Die Availability Zone, in der sich die Aufgabe befindet.

Anmerkung

Die Availability-Zone-Metadaten sind nur für Fargate-Aufgaben verfügbar, die Plattform Version 1.4 oder höher (Linux) oder 1.0.0 oder höher (Windows) verwenden.

Containers

Eine Liste der Container-Metadaten für jeden Container, der der Aufgabe zugeordnet ist

DockerId

Die Docker-ID des Containers

Name

Der Name des Containers, wie er in der Aufgabendefinition festgelegt ist

DockerName

Der Name des Containers, der vom Docker bereitgestellt wird. Der Amazon ECS-Containeragent generiert einen eindeutigen Namen für den Container, um Namensüberschneidungen zu vermeiden, wenn mehrere Kopien derselben Aufgabendefinition auf einer einzelnen Instance ausgeführt werden.

Image

Das Abbild für den Container

ImageID

Der SHA-256-Digest für das Abbild

Ports

Alle für den Container zugänglichen Ports. Dieser Parameter wird ausgelassen, wenn keine zugänglichen Ports verfügbar sind.

Labels

Alle auf den Container angewendeten Kennungen. Dieser Parameter wird ausgelassen, wenn keine angewendeten Kennungen verfügbar sind.

DesiredStatus

Der gewünschte Status des Containers von Amazon ECS.

KnownStatus

Der bekannte Status des Containers von Amazon ECS.

ExitCode

Der Beendigungscode für den Container. Dieser Parameter wird ausgelassen, wenn der Container nicht beendet wurde.

Limits

Die Ressourcenbegrenzungen, die auf Container-Ebene angegeben sind (z. B. CPU- und Speicherauslastung). Dieser Parameter wird ausgelassen, wenn keine Ressourcenbegrenzungen festgelegt wurden.

CreatedAt

Der Zeitstempel des Zeitpunkts, an dem der Container erstellt wurde. Dieser Parameter wird ausgelassen, wenn der Container noch nicht erstellt wurde.

StartedAt

Der Zeitstempel des Zeitpunkts, an dem der Container gestartet wurde. Dieser Parameter wird ausgelassen, wenn der Container noch nicht gestartet wurde.

FinishedAt

Der Zeitstempel des Zeitpunkts, an dem der Container angehalten wurde. Dieser Parameter wird ausgelassen, wenn der Container noch nicht angehalten wurde.

Type

Der Typ des Containers. Container, die in der Aufgabendefinition festgelegt sind, haben den Typ NORMAL. Sie können andere Containertypen ignorieren, die für die interne Bereitstellung von Aufgabenressourcen durch den Amazon ECS-Containeragenten verwendet werden.

Networks

Die Netzwerkinformationen für den Container, wie Netzwerkmodus und IP-Adresse. Dieser Parameter wird ausgelassen, wenn keine Netzwerkinformationen definiert sind.

ClockDrift

Die Informationen über den Unterschied zwischen der Referenzzeit und der Systemzeit. Dies gilt für das Linux-Betriebssystem.

ReferenceTime

Die Grundlage der Taktgenauigkeit. Amazon ECS verwendet beispielsweise den globalen Standard Coordinated Universal Time (UTC) über NTP, z. B. 2021-09-07T16:57:44Z.

ClockErrorBound

Das Maß des Taktfehlers, definiert als Abweichung zu UTC. Dieser Fehler ist der Unterschied in Millisekunden zwischen der Referenzzeit und der Systemzeit.

ClockSynchronizationStatus

Gibt an, ob der letzte Synchronisierungsversuch zwischen der Systemzeit und der Referenzzeit erfolgreich war.

Die gültigen Werte sind SYNCHRONIZED und NOT_SYNCHRONIZED.

ExecutionStoppedAt

Der Zeitstempel des Zeitpunkts, an dem der DesiredStatus der Aufgaben zu STOPPED gewechselt hat. Dies tritt auf, wenn ein entscheidender Container zu wechselt STOPPED.

Beispiele

Die folgenden Beispiele zeigen Beispielausgaben der Aufgabenmetadaten-Endpunkte für Amazon ECS-Aufgaben, die auf ausgeführt werden AWS Fargate.

Sie können curl nach dem Metadaten-Endpunkt der Aufgabe verwenden, um den Endpunkt abzufragen, z. B. curl ${ECS_CONTAINER_METADATA_URI_V4}/task.

Beispielantwort für Container-Metadaten

Beim Abfragen des Endpunkts ${ECS_CONTAINER_METADATA_URI_V4} werden nur Metadaten zum Container selbst zurückgegeben. Im Folgenden finden Sie eine Beispielausgabe.

{ "DockerId": "cd189a933e5849daa93386466019ab50-2495160603", "Name": "curl", "DockerName": "curl", "Image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/curltest:latest", "ImageID": "sha256:25f3695bedfb454a50f12d127839a68ad3caf91e451c1da073db34c542c4d2cb", "Labels": { "com.amazonaws.ecs.cluster": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "com.amazonaws.ecs.container-name": "curl", "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-west-2:111122223333:task/default/cd189a933e5849daa93386466019ab50", "com.amazonaws.ecs.task-definition-family": "curltest", "com.amazonaws.ecs.task-definition-version": "2" }, "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Limits": { "CPU": 10, "Memory": 128 }, "CreatedAt": "2020-10-08T20:09:11.44527186Z", "StartedAt": "2020-10-08T20:09:11.44527186Z", "Type": "NORMAL", "Networks": [ { "NetworkMode": "awsvpc", "IPv4Addresses": [ "192.0.2.3" ], "AttachmentIndex": 0, "MACAddress": "0a:de:f6:10:51:e5", "IPv4SubnetCIDRBlock": "192.0.2.0/24", "DomainNameServers": [ "192.0.2.2" ], "DomainNameSearchList": [ "us-west-2.compute.internal" ], "PrivateDNSName": "ip-10-0-0-222.us-west-2.compute.internal", "SubnetGatewayIpv4Address": "192.0.2.0/24" } ], "ContainerARN": "arn:aws:ecs:us-west-2:111122223333:container/05966557-f16c-49cb-9352-24b3a0dcd0e1", "LogOptions": { "awslogs-create-group": "true", "awslogs-group": "/ecs/containerlogs", "awslogs-region": "us-west-2", "awslogs-stream": "ecs/curl/cd189a933e5849daa93386466019ab50" }, "LogDriver": "awslogs" }

Beispiel für eine Aufgabenmetadatenantwort

Beim Abfragen des Endpunkts ${ECS_CONTAINER_METADATA_URI_V4}/task werden Metadaten zu der Aufgabe zurückgegeben, zu der der Container gehört. Im Folgenden finden Sie eine Beispielausgabe.

{ "Cluster": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "TaskARN": "arn:aws:ecs:us-west-2:111122223333:task/default/e9028f8d5d8e4f258373e7b93ce9a3c3", "Family": "curltest", "Revision": "3", "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Limits": { "CPU": 0.25, "Memory": 512 }, "PullStartedAt": "2020-10-08T20:47:16.053330955Z", "PullStoppedAt": "2020-10-08T20:47:19.592684631Z", "AvailabilityZone": "us-west-2a", "Containers": [ { "DockerId": "e9028f8d5d8e4f258373e7b93ce9a3c3-2495160603", "Name": "curl", "DockerName": "curl", "Image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/curltest:latest", "ImageID": "sha256:25f3695bedfb454a50f12d127839a68ad3caf91e451c1da073db34c542c4d2cb", "Labels": { "com.amazonaws.ecs.cluster": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "com.amazonaws.ecs.container-name": "curl", "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-west-2:111122223333:task/default/e9028f8d5d8e4f258373e7b93ce9a3c3", "com.amazonaws.ecs.task-definition-family": "curltest", "com.amazonaws.ecs.task-definition-version": "3" }, "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Limits": { "CPU": 10, "Memory": 128 }, "CreatedAt": "2020-10-08T20:47:20.567813946Z", "StartedAt": "2020-10-08T20:47:20.567813946Z", "Type": "NORMAL", "Networks": [ { "NetworkMode": "awsvpc", "IPv4Addresses": [ "192.0.2.3" ], "IPv6Addresses": [ "2001:dB8:10b:1a00:32bf:a372:d80f:e958" ], "AttachmentIndex": 0, "MACAddress": "02:b7:20:19:72:39", "IPv4SubnetCIDRBlock": "192.0.2.0/24", "IPv6SubnetCIDRBlock": "2600:1f13:10b:1a00::/64", "DomainNameServers": [ "192.0.2.2" ], "DomainNameSearchList": [ "us-west-2.compute.internal" ], "PrivateDNSName": "ip-172-31-30-173.us-west-2.compute.internal", "SubnetGatewayIpv4Address": "192.0.2.0/24" } ], "ClockDrift": { "ClockErrorBound": 0.5458234999999999, "ReferenceTimestamp": "2021-09-07T16:57:44Z", "ClockSynchronizationStatus": "SYNCHRONIZED" }, "ContainerARN": "arn:aws:ecs:us-west-2:111122223333:container/1bdcca8b-f905-4ee6-885c-4064cb70f6e6", "LogOptions": { "awslogs-create-group": "true", "awslogs-group": "/ecs/containerlogs", "awslogs-region": "us-west-2", "awslogs-stream": "ecs/curl/e9028f8d5d8e4f258373e7b93ce9a3c3" }, "LogDriver": "awslogs" } ], "LaunchType": "FARGATE" }

Beispielaufgabe Statistikantwort

Beim Abfragen des Endpunkts ${ECS_CONTAINER_METADATA_URI_V4}/task/stats werden Netzwerkmetriken zu der Aufgabe zurückgegeben, zu der der Container gehört. Im Folgenden finden Sie eine Beispielausgabe.

{ "3d1f891cded94dc795608466cce8ddcf-464223573": { "read": "2020-10-08T21:24:44.938937019Z", "preread": "2020-10-08T21:24:34.938633969Z", "pids_stats": {}, "blkio_stats": { "io_service_bytes_recursive": [ { "major": 202, "minor": 26368, "op": "Read", "value": 638976 }, { "major": 202, "minor": 26368, "op": "Write", "value": 0 }, { "major": 202, "minor": 26368, "op": "Sync", "value": 638976 }, { "major": 202, "minor": 26368, "op": "Async", "value": 0 }, { "major": 202, "minor": 26368, "op": "Total", "value": 638976 } ], "io_serviced_recursive": [ { "major": 202, "minor": 26368, "op": "Read", "value": 12 }, { "major": 202, "minor": 26368, "op": "Write", "value": 0 }, { "major": 202, "minor": 26368, "op": "Sync", "value": 12 }, { "major": 202, "minor": 26368, "op": "Async", "value": 0 }, { "major": 202, "minor": 26368, "op": "Total", "value": 12 } ], "io_queue_recursive": [], "io_service_time_recursive": [], "io_wait_time_recursive": [], "io_merged_recursive": [], "io_time_recursive": [], "sectors_recursive": [] }, "num_procs": 0, "storage_stats": {}, "cpu_stats": { "cpu_usage": { "total_usage": 1137691504, "percpu_usage": [ 696479228, 441212276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "usage_in_kernelmode": 80000000, "usage_in_usermode": 810000000 }, "system_cpu_usage": 9393210000000, "online_cpus": 2, "throttling_data": { "periods": 0, "throttled_periods": 0, "throttled_time": 0 } }, "precpu_stats": { "cpu_usage": { "total_usage": 1136624601, "percpu_usage": [ 695639662, 440984939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "usage_in_kernelmode": 80000000, "usage_in_usermode": 810000000 }, "system_cpu_usage": 9373330000000, "online_cpus": 2, "throttling_data": { "periods": 0, "throttled_periods": 0, "throttled_time": 0 } }, "memory_stats": { "usage": 6504448, "max_usage": 8458240, "stats": { "active_anon": 1675264, "active_file": 557056, "cache": 651264, "dirty": 0, "hierarchical_memory_limit": 536870912, "hierarchical_memsw_limit": 9223372036854772000, "inactive_anon": 0, "inactive_file": 3088384, "mapped_file": 430080, "pgfault": 11034, "pgmajfault": 5, "pgpgin": 8436, "pgpgout": 7137, "rss": 4669440, "rss_huge": 0, "total_active_anon": 1675264, "total_active_file": 557056, "total_cache": 651264, "total_dirty": 0, "total_inactive_anon": 0, "total_inactive_file": 3088384, "total_mapped_file": 430080, "total_pgfault": 11034, "total_pgmajfault": 5, "total_pgpgin": 8436, "total_pgpgout": 7137, "total_rss": 4669440, "total_rss_huge": 0, "total_unevictable": 0, "total_writeback": 0, "unevictable": 0, "writeback": 0 }, "limit": 9223372036854772000 }, "name": "curltest", "id": "3d1f891cded94dc795608466cce8ddcf-464223573", "networks": { "eth1": { "rx_bytes": 2398415937, "rx_packets": 1898631, "rx_errors": 0, "rx_dropped": 0, "tx_bytes": 1259037719, "tx_packets": 428002, "tx_errors": 0, "tx_dropped": 0 } }, "network_rate_stats": { "rx_bytes_per_sec": 43.298687872232854, "tx_bytes_per_sec": 215.39347269466413 } } }