

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Automatisieren Sie Antworten auf Amazon ECS-Fehler mit EventBridge
<a name="cloudwatch_event_stream"></a>

Mit Amazon EventBridge können Sie Ihre AWS Services automatisieren und automatisch auf Systemereignisse wie Probleme mit der Anwendungsverfügbarkeit oder Ressourcenänderungen reagieren. Ereignisse im AWS Rahmen von Services werden EventBridge nahezu in Echtzeit übermittelt. Sie können einfache Regeln schreiben, um anzugeben, welche Ereignisse für Sie interessant sind und welche automatisierten Aktionen durchgeführt werden sollen, wenn sich für ein Ereignis eine Übereinstimmung mit einer Regel ergibt. Zu den Aktionen, die automatisch konfiguriert werden können, gehören folgende:
+ Ereignisse zu Protokollgruppen in CloudWatch Logs hinzufügen
+ Eine AWS Lambda Funktion aufrufen
+ Aufrufen eines Amazon EC2 Run Command
+ Weiterleiten des Ereignisses an Amazon Kinesis Data Streams
+ Aktivierung einer AWS Step Functions Zustandsmaschine
+ Benachrichtigungen zu einem Amazon SNS-Thema oder einer Amazon Simple Queue Service (Amazon SQS)-Warteschlange

Weitere Informationen finden Sie unter [Erste Schritte mit Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html) im * EventBridge Amazon-Benutzerhandbuch*.

Sie können Amazon ECS-Ereignisse verwenden EventBridge , um nahezu in Echtzeit Benachrichtigungen über den aktuellen Status Ihrer Amazon ECS-Cluster zu erhalten. Wenn Ihre Aufgaben EC2 verwenden, können Sie den Status der Container-Instances und den aktuellen Status aller Aufgaben auf diesen Container-Instances sehen. Wenn Ihre Aufgaben Fargate verwenden, können Sie den Status der Container-Instances einsehen.

Mithilfe von EventBridge Amazon ECS können Sie benutzerdefinierte Scheduler erstellen, die für die Orchestrierung von Aufgaben zwischen Clustern und die Überwachung des Status von Clustern nahezu in Echtzeit verantwortlich sind. Sie können den Planungs- und Überwachungscode eliminieren, der den Amazon ECS-Service kontinuierlich nach Statusänderungen abfragt, und stattdessen Amazon ECS-Statusänderungen asynchron mit einem beliebigen EventBridge Ziel verarbeiten. Zu den AWS Lambda Zielen könnten Amazon Simple Queue Service, Amazon Simple Notification Service oder Amazon Kinesis Data Streams gehören.

Ein Amazon-ECS-Ereignisstrom stellt sicher, dass jedes Ereignis mindestens einmal übertragen wird. Wenn doppelte Ereignisse gesendet werden, liefert das Ereignis genügend Informationen, um Duplikate zu identifizieren. Weitere Informationen finden Sie unter [Verarbeitung von Amazon-ECS-Ereignissen](ecs_cwet_handling.md).

Ereignisse sind einigermaßen geordnet, sodass einfach festzustellen ist, wann ein Ereignis in Bezug auf andere Ereignisse aufgetreten ist.

**Topics**
+ [Amazon-ECS-Events](ecs_cwe_events.md)
+ [Verarbeitung von Amazon-ECS-Ereignissen](ecs_cwet_handling.md)

# Amazon-ECS-Events
<a name="ecs_cwe_events"></a>

Amazon ECS verfolgt den Status jeder Ihrer Aufgaben und Services. Wenn sich der Status einer Aufgabe oder eines Services ändert, wird ein Ereignis generiert und an Amazon gesendet EventBridge. Diese Ereignisse werden als Aufgabenstatusänderungsereignisse und Service-Aktionsereignisse klassifiziert. Diese Ereignisse und ihre möglichen Ursachen werden in den folgenden Abschnitten genauer beschrieben.

Amazon ECS generiert und sendet die folgenden Ereignistypen an EventBridge: 
+ Statussänderung der Container-Instance
+ Statussänderung der Aufgabe
+ Bereitstellungs-Zustandsänderung
+ Service-Aktion

**Anmerkung**  
Amazon ECS fügt in Zukunft möglicherweise andere Ereignistypen, -quellen und -details hinzu. Wenn Sie JSON-Ereignisdaten in Code deserialisieren, vergewissern Sie sich, dass Ihre Anwendung unbekannte Eigenschaften verarbeiten kann, um Probleme zu vermeiden, falls diese zusätzlichen Eigenschaften hinzugefügt werden.

In einigen Fällen werden für dieselbe Aktivität mehrere Ereignisse erstellt. Wenn beispielsweise eine Aufgabe auf einer Container-Instance gestartet wird, wird für die neue Aufgabe ein Ereignis zur Änderung des Taskstatus erstellt. Ein Ereignis zur Änderung des Zustands der Container-Instance wird erstellt, um die Änderung der verfügbaren Ressourcen wie CPU, Speicher und verfügbare Ports in der Container-Instance zu berücksichtigen. Ebenso werden beim Beenden einer Container-Instance Ereignisse für die Container-Instance, den Verbindungsstatus des Container-Agents und jede Aufgabe, die auf der Container-Instance lief, erstellt.

Containerstatus- und Aufgabenstatus-Änderungsereignisse enthalten zwei `version`-Felder: eines im Hauptteil des Ereignisses und eines im `detail`-Objekt des Ereignisses. Im Folgenden werden die Unterschiede zwischen diesen beiden Feldern beschrieben:
+ Das Feld `version` im Haupttext des Ereignisses ist für alle Ereignisse auf `0` gesetzt. Weitere Informationen zu EventBridge Parametern finden Sie unter [Metadaten zu AWS Serviceereignissen](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html) im * EventBridge Amazon-Benutzerhandbuch*.
+ Das `version`-Feld im `detail`-Objekt des Ereignisses beschreibt die Version der zugehörigen Ressource. Jedes Mal, wenn sich der Status einer Ressource ändert, erhöht sich diese Versionsnummer. Da Ereignisse mehrfach gesendet werden können, können Sie mit diesem Feld doppelte Ereignisse identifizieren. Doppelte Ereignisse haben im `detail`-Objekt die gleiche Version. Wenn Sie Ihre Amazon ECS-Container-Instance und den Aufgabenstatus mit replizieren EventBridge, können Sie die vom Amazon ECS gemeldete Version einer Ressource APIs mit der EventBridge für die Ressource (innerhalb des `detail` Objekts) gemeldeten Version vergleichen, um zu überprüfen, ob die Version in Ihrem Event-Stream aktuell ist.

Service-Aktionsereignisse enthalten nur das Feld `version` im Hauptteil.

Serviceaktionsereignisse spezifizieren den Service in zwei verschiedenen Feldern:
+ Bei Ereignissen, die von `create-service` generiert wurden, befindet sich der Service im `serviceName`-Feld.
+ Bei Ereignissen, die von `update-service` generiert wurden, befindet sich der Service im `service`-Feld.

Wenn Sie automatisierte Tools für Serviceereignisse verwenden, müssen Sie für beide Felder programmieren.

Informationen zum Erstellen einer Regel für Serviceaktionsereignisse finden Sie unter [Amazon-ECS-Serviceaktionsereignisse](ecs_service_events.md).

Weitere Informationen zur Integration von Amazon ECS und EventBridge finden Sie unter [Integration von Amazon EventBridge und Amazon ECS](https://aws.amazon.com/blogs/compute/integrating-amazon-eventbridge-and-amazon-ecs/).

# Statussänderungs-Ereignisse für Amazon-ECS-Container-Instances
<a name="ecs_container_instance_events"></a>

Die folgenden Szenarien führen zu Ereignissen, die den Zustand der Container-Instance verändern:

Sie rufen die `StopTask` API-Operationen `StartTask``RunTask`, oder entweder direkt oder mit dem AWS-Managementkonsole oder auf SDKs.  
Das Platzieren oder Stoppen von Aufgaben in einer Container-Instance ändert die verfügbaren Ressourcen in der Container-Instance (z. B. CPU, Arbeitsspeicher und verfügbare Ports).

Der Amazon-ECS-Service-Scheduler startet oder beendet eine Aufgabe.  
Das Platzieren oder Stoppen von Aufgaben in einer Container-Instance ändert die verfügbaren Ressourcen in der Container-Instance (z. B. CPU, Arbeitsspeicher und verfügbare Ports).

Der Amazon-ECS-Containeragent ruft die `SubmitTaskStateChange`-API-Operation mit dem Status `STOPPED` für eine Aufgabe mit dem gewünschten Status `RUNNING` auf.  
Der Amazon-ECS-Container-Agent überwacht den Status von Aufgaben auf Ihren Container-Instances und meldet alle Statusänderungen. Wenn eine `RUNNING`-Aufgabe auf `STOPPED` umgestellt wird, gibt der Agent die Ressourcen frei, die der gestoppten Aufgabe zugewiesen wurden (z. B. CPU, Arbeitsspeicher und verfügbare Ports).

Sie deregistrieren die Container-Instance mit der `DeregisterContainerInstance` API-Operation, entweder direkt oder mit dem AWS-Managementkonsole oder. SDKs  
Die Abmeldung einer Container-Instance ändert den Status der Container-Instance und den Verbindungsstatus des Amazon-ECS-Container-Agenten.

Eine Aufgabe wurde gestoppt als eine EC2-Instance gestoppt wurde.   
Wenn Sie eine Container-Instance stoppen, wechseln die Aufgaben, die darauf ausgeführt werden, in den Status `STOPPED`.

Der Amazon-ECS-Containeragent registriert eine Container-Instance zum ersten Mal.   
Wenn der Amazon-ECS-Container-Agent eine Container-Instance zum ersten Mal registriert (beim Start oder wenn diese erstmals manuell ausgeführt wird), wird ein Statusänderungsereignis für die Instance erstellt.

Der Amazon-ECS-Container-Agent stellt eine Verbindung mit Amazon ECS her oder unterbricht sie.  
Wenn der Amazon-ECS-Containeragent eine Verbindung mit dem Amazon-ECS-Backend herstellt oder unterbricht, wechselt der `agentConnected`-Status der Container-Instance.  
Der Amazon-ECS-Containeragent trennt und verbindet sich im Rahmen seines normalen Betriebs mehrmals pro Stunde, sodass mit Ereignissen zur Agentenverbindung zu rechnen ist. Diese Ereignisse sind kein Hinweis darauf, dass es ein Problem mit dem Containeragenten oder Ihrer Container-Instance gibt.

Sie aktualisieren den Amazon-ECS-Containeragenten auf einer Instance.  
Im Container-Instance-Detail ist ein Objekt für die Container-Agenten-Version enthalten. Wenn Sie den Agent aktualisieren, ändern sich diese Versionsinformationen und ein Ereignis wird erstellt.

**Example Änderungsereignis des Container-Instance-Status**  
Die Statusänderungsereignisse der Container-Instance werden im folgenden Format bereitgestellt. Der folgende `detail` Abschnitt ähnelt dem [ContainerInstance](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerInstance.html)Objekt, das von einer [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html)API-Operation in der *Amazon Elastic Container Service API-Referenz* zurückgegeben wird. Weitere Informationen zu EventBridge Parametern finden Sie unter [Metadaten zu AWS Serviceereignissen](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html) im * EventBridge Amazon-Benutzerhandbuch*.  

```
{
  "version": "0",
  "id": "8952ba83-7be2-4ab5-9c32-6687532d15a2",
  "detail-type": "ECS Container Instance State Change",
  "source": "aws.ecs",
  "account": "111122223333",
  "time": "2016-12-06T16:41:06Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ecs:us-east-1:111122223333:container-instance/b54a2a04-046f-4331-9d74-3f6d7f6ca315"
  ],
  "detail": {
    "agentConnected": true,
    "attributes": [
      {
        "name": "com.amazonaws.ecs.capability.logging-driver.syslog"
      },
      {
        "name": "com.amazonaws.ecs.capability.task-iam-role-network-host"
      },
      {
        "name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
      },
      {
        "name": "com.amazonaws.ecs.capability.logging-driver.json-file"
      },
      {
        "name": "com.amazonaws.ecs.capability.docker-remote-api.1.17"
      },
      {
        "name": "com.amazonaws.ecs.capability.privileged-container"
      },
      {
        "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
      },
      {
        "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
      },
      {
        "name": "com.amazonaws.ecs.capability.ecr-auth"
      },
      {
        "name": "com.amazonaws.ecs.capability.docker-remote-api.1.20"
      },
      {
        "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21"
      },
      {
        "name": "com.amazonaws.ecs.capability.docker-remote-api.1.22"
      },
      {
        "name": "com.amazonaws.ecs.capability.docker-remote-api.1.23"
      },
      {
        "name": "com.amazonaws.ecs.capability.task-iam-role"
      }
    ],
    "clusterArn": "arn:aws:ecs:us-east-1:111122223333:cluster/default",
    "containerInstanceArn": "arn:aws:ecs:us-east-1:111122223333:container-instance/b54a2a04-046f-4331-9d74-3f6d7f6ca315",
    "ec2InstanceId": "i-f3a8506b",
    "registeredResources": [
      {
        "name": "CPU",
        "type": "INTEGER",
        "integerValue": 2048
      },
      {
        "name": "MEMORY",
        "type": "INTEGER",
        "integerValue": 3767
      },
      {
        "name": "PORTS",
        "type": "STRINGSET",
        "stringSetValue": [
          "22",
          "2376",
          "2375",
          "51678",
          "51679"
        ]
      },
      {
        "name": "PORTS_UDP",
        "type": "STRINGSET",
        "stringSetValue": []
      }
    ],
    "remainingResources": [
      {
        "name": "CPU",
        "type": "INTEGER",
        "integerValue": 1988
      },
      {
        "name": "MEMORY",
        "type": "INTEGER",
        "integerValue": 767
      },
      {
        "name": "PORTS",
        "type": "STRINGSET",
        "stringSetValue": [
          "22",
          "2376",
          "2375",
          "51678",
          "51679"
        ]
      },
      {
        "name": "PORTS_UDP",
        "type": "STRINGSET",
        "stringSetValue": []
      }
    ],
    "status": "ACTIVE",
    "version": 14801,
    "versionInfo": {
      "agentHash": "aebcbca",
      "agentVersion": "1.13.0",
      "dockerVersion": "DockerVersion: 1.11.2"
    },
    "updatedAt": "2016-12-06T16:41:06.991Z"
  }
}
```

# Statussänderungs-Ereignisse für Amazon-ECS-Aufgaben
<a name="ecs_task_events"></a>

Die folgenden Szenarien verursachen Ereignisse zur Änderung des Aufgabenzustands:

Sie rufen die `StopTask` API-Operationen `StartTask``RunTask`, oder entweder direkt oder mit AWS-Managementkonsole AWS CLI, oder auf SDKs.  
Das Starten oder Stoppen von Aufgaben erstellt neue Aufgabenressourcen oder ändert den Status bestehender Aufgabenressourcen.

Der Amazon-ECS-Service-Scheduler startet oder beendet eine Aufgabe.  
Das Starten oder Stoppen von Aufgaben erstellt neue Aufgabenressourcen oder ändert den Status bestehender Aufgabenressourcen.

Der Amazon-ECS-Containeragent ruft die `SubmitTaskStateChange`-API-Operation auf.  
Für EC2 überwacht der Amazon-ECS-Container-Agent den Status der Aufgaben in Ihren Container-Instances. Der Amazon-ECS-Container-Agent meldet alle Statussänderungen. Statusänderungen können Änderungen von `PENDING` auf `RUNNING` oder von `RUNNING` auf `STOPPED` beinhalten.

Sie erzwingen die Abmeldung der zugrunde liegenden Container-Instance mit der `DeregisterContainerInstance` API-Operation und dem `force` Flag, entweder direkt oder mit dem AWS-Managementkonsole Oder. SDKs  
Die Abmeldung einer Container-Instance ändert den Status der Container-Instance und den Verbindungsstatus des Amazon-ECS-Container-Agenten. Wenn Aufgaben auf der Container-Instance ausgeführt werden, muss das `force`-Flag so festgelegt sein, dass eine Abmeldung zulässig ist. Damit werden alle Aufgaben auf der Instance gestoppt.

Die zugrundeliegende Container-Instance wird gestoppt oder beendet.  
Wenn Sie eine Container-Instance stoppen oder beenden, wechseln die Aufgaben, die darauf ausgeführt werden, in den Status `STOPPED`.

Ein Container in der Aufgabe ändert den Status.  
Der Amazon-ECS-Container-Agent überwacht den Status der Container innerhalb von Aufgaben. Wenn zum Beispiel ein Container, der innerhalb einer Aufgabe läuft, anhält, wird durch diese Änderung des Containerzustands ein Ereignis erstellt.

Eine Aufgabe, die den Fargate Spot-Kapazitätsanbieter nutzt, erhält eine Beendigungsankündigung.  
Wenn eine Aufgabe den `FARGATE_SPOT`-Kapazitätsanbieter nutzt und aufgrund einer Spot-Unterbrechung gestoppt wird, wird ein Ereignis zur Änderung des Aufgabenstatus erstellt.

**Example Änderungsereignis des Aufgabenstatus**  
Aufgabenstatusänderungsereignisse werden im folgenden Format bereitgestellt. Beachten Sie Folgendes bei den Feldern:  
+ Der Zustand des Ereignisses ist Statusänderungs-Ereignis der Aufgabe nicht verfügbar. Wenn Sie den Zustand der Aufgabe benötigen, können Sie [describe-tasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) ausführen.
+ Wenn Ihre Container ein mit Amazon ECR gehostetes Image verwenden, wird das Feld `imageDigest` zurückgegeben.
+ Die Werte für die Felder`createdAt`, `connectivityAt`, `pullStartedAt`, `startedAt`, `pullStoppedAt` und `updatedAt` sind ISO-Zeichenfolgen-Zeitstempel.
+ Der `detail-type`-Wert ist „ECS Task State Change“.
+ Wenn das Ereignis für eine gestoppte Aufgabe generiert wird, enthalten die Felder `stoppedReason` und `stopCode` zusätzliche Informationen darüber, warum die Aufgabe beendet wurde (z. B. „Vom Benutzer initiiert“).
Weitere Informationen zu EventBridge Parametern finden Sie in den [Metadaten von AWS Serviceereignissen](https://docs.aws.amazon.com/eventbridge/latest/ref/events-structure.html) in der *Amazon EventBridge Events-Referenz*.  
Informationen zur Konfiguration einer EventBridge Amazon-Ereignisregel, die nur Aufgabenereignisse erfasst, bei denen die Ausführung der Aufgabe beendet wurde, weil einer ihrer wichtigsten Container beendet wurde, finden Sie unter [Senden von Warnungen von Amazon Simple Notification Service bei angehaltenen Amazon-ECS-Aufgaben](ecs_cwet2.md)  

```
{
    "version": "0",
    "id": "105f6bb1-4da6-c630-4965-35383018cbca",
    "detail-type": "ECS Task State Change",
    "source": "aws.ecs",
    "account": "123456789012",
    "time": "2025-05-06T11:02:34Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9"
    ],
    "detail": {
        "attachments": [
            {
                "id": "fe3a9a46-6a47-40ee-afd9-7952ae90a75a",
                "type": "eni",
                "status": "ATTACHED",
                "details": [
                    {
                        "name": "subnetId",
                        "value": "subnet-0d0eab1bb38d5ca64"
                    },
                    {
                        "name": "networkInterfaceId",
                        "value": "eni-0103a2f01bad57d71"
                    },
                    {
                        "name": "macAddress",
                        "value": "0e:50:d1:c1:77:81"
                    },
                    {
                        "name": "privateDnsName",
                        "value": "ip-10-0-1-163.ec2.internal"
                    },
                    {
                        "name": "privateIPv4Address",
                        "value": "10.0.1.163"
                    }
                ]
            }
        ],
        "attributes": [
            {
                "name": "ecs.cpu-architecture",
                "value": "x86_64"
            }
        ],
        "availabilityZone": "us-east-1b",
        "capacityProviderName": "FARGATE",
        "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/example-cluster",
        "connectivity": "CONNECTED",
        "connectivityAt": "2025-05-06T11:02:17.19Z",
        "containers": [
            {
                "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example-cluster/a1173316d40a45dea9/a0a99b87-baa8-4bf6-b9f1-a9a95917a635",
                "lastStatus": "RUNNING",
                "name": "web",
                "image": "nginx",
                "imageDigest": "sha256:c15da6c91de8d2f436196f3a768483ad32c258ed4e1beb3d367a27ed67253e66",
                "runtimeId": "a1173316d40a45dea9-0265927825",
                "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9",
                "networkInterfaces": [
                    {
                        "attachmentId": "fe3a9a46-6a47-40ee-afd9-7952ae90a75a",
                        "privateIpv4Address": "10.0.1.163"
                    }
                ],
                "cpu": "99",
                "memory": "100"
            },
            {
                "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example-cluster/a1173316d40a45dea9/a2010e2d-ba7c-4135-8b79-e0290ff3cd8c",
                "lastStatus": "RUNNING",
                "name": "aws-guardduty-agent-nm40lC",
                "imageDigest": "sha256:bf9197abdf853607e5fa392b4f97ccdd6ca56dd179be3ce8849e552d96582ac8",
                "runtimeId": "a1173316d40a45dea9-2098416933",
                "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9",
                "networkInterfaces": [
                    {
                        "attachmentId": "fe3a9a46-6a47-40ee-afd9-7952ae90a75a",
                        "privateIpv4Address": "10.0.1.163"
                    }
                ],
                "cpu": "null"
            },
            {
                "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example-cluster/a1173316d40a45dea9/dccf0ca2-d929-471f-a5c3-98006fd4379e",
                "lastStatus": "RUNNING",
                "name": "aws-otel-collector",
                "image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.32.0",
                "imageDigest": "sha256:7a1b3560655071bcacd66902c20ebe9a69470d5691fe3bd36baace7c2f3c4640",
                "runtimeId": "a1173316d40a45dea9-4027662657",
                "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9",
                "networkInterfaces": [
                    {
                        "attachmentId": "fe3a9a46-6a47-40ee-afd9-7952ae90a75a",
                        "privateIpv4Address": "10.0.1.163"
                    }
                ],
                "cpu": "0"
            }
        ],
        "cpu": "256",
        "createdAt": "2025-05-06T11:02:13.877Z",
        "desiredStatus": "RUNNING",
        "enableExecuteCommand": false,
        "ephemeralStorage": {
            "sizeInGiB": 20
        },
        "group": "family:webserver",
        "launchType": "FARGATE",
        "lastStatus": "RUNNING",
        "memory": "512",
        "overrides": {
            "containerOverrides": [
                {
                    "name": "web"
                },
                {
                    "environment": [
                        {
                            "name": "CLUSTER_NAME",
                            "value": "example-cluster"
                        },
                        {
                            "name": "REGION",
                            "value": "us-east-1"
                        },
                        {
                            "name": "HOST_PROC",
                            "value": "/host_proc"
                        },
                        {
                            "name": "AGENT_RUNTIME_ENVIRONMENT",
                            "value": "ecsfargate"
                        },
                        {
                            "name": "STAGE",
                            "value": "prod"
                        }
                    ],
                    "memory": 128,
                    "name": "aws-guardduty-agent-nm40lC"
                },
                {
                    "name": "aws-otel-collector"
                }
            ]
        },
        "platformVersion": "1.4.0",
        "pullStartedAt": "2025-05-06T11:02:24.162Z",
        "pullStoppedAt": "2025-05-06T11:02:33.493Z",
        "startedAt": "2025-05-06T11:02:34.325Z",
        "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example-cluster/a1173316d40a45dea9",
        "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver:5",
        "updatedAt": "2025-05-06T11:02:34.325Z",
        "version": 3
    }
}
```

**Example**  
Das Folgende ist Beispiel eines Statussänderungs-Ereignisses für EC2.  

```
{
    "version": "0",
    "id": "a65cf262-f104-0dd5-ceda-4b09ba71a441",
    "detail-type": "ECS Task State Change",
    "source": "aws.ecs",
    "account": "123456789012",
    "time": "2025-05-12T13:12:06Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ecs:us-east-1:123456789012:task/example/c1ffa94f19a540ed8d9f7e1d2a5d"
    ],
    "detail": {
        "attachments": [
            {
                "id": "52333e3b-b812-41a8-b057-9ed184bbe5e1",
                "type": "eni",
                "status": "ATTACHED",
                "details": [
                    {
                        "name": "subnetId",
                        "value": "subnet-0d0eab1bb38d5ca64"
                    },
                    {
                        "name": "networkInterfaceId",
                        "value": "eni-0ea90f746500773a4"
                    },
                    {
                        "name": "macAddress",
                        "value": "0e:d5:9b:ce:49:fb"
                    },
                    {
                        "name": "privateDnsName",
                        "value": "ip-10-0-1-37.ec2.internal"
                    },
                    {
                        "name": "privateIPv4Address",
                        "value": "10.0.1.37"
                    }
                ]
            }
        ],
        "attributes": [
            {
                "name": "ecs.cpu-architecture",
                "value": "x86_64"
            }
        ],
        "availabilityZone": "us-east-1b",
        "capacityProviderName": "Infra-ECS-Cluster-example-fa84e0cc-AsgCapacityProvider-OseQJU9pizmp",
        "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/example",
        "connectivity": "CONNECTED",
        "connectivityAt": "2025-05-12T13:11:44.98Z",
        "containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/example/d1d84798400f49f3b21cb61610c1e",
        "containers": [
            {
                "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example/c1ffa94f19a540ed8d9f7e1d2a5d3626/197d0994-5367-4a6d-9f9a-f075e4a6",
                "lastStatus": "RUNNING",
                "name": "aws-otel-collector",
                "image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.32.0",
                "imageDigest": "sha256:7a1b3560655071bcacd66902c20ebe9a69470d5691fe3bd36baace7c2f3c4640",
                "runtimeId": "8e926f0ccd8fe2b459926f49584ba6d33a3d9f61398dbabe944ee6a13a8ff3a1",
                "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example/c1ffa94f19a540ed8d9f7e1d2a5d",
                "networkInterfaces": [
                    {
                        "attachmentId": "52333e3b-b812-41a8-b057-9ed184bbe5e1",
                        "privateIpv4Address": "10.0.1.37"
                    }
                ],
                "cpu": "0"
            },
            {
                "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/example/c1ffa94f19a540ed8d9f7e1d2a5d3626/cab39ef0-9c50-459d-844b-b9d51d73d",
                "lastStatus": "RUNNING",
                "name": "web",
                "image": "nginx",
                "imageDigest": "sha256:c15da6c91de8d2f436196f3a768483ad32c258ed4e1beb3d367a27ed67253e66",
                "runtimeId": "9f1c73f0094f051541d9e5c2ab1e172d83c4eb5171bcc857c4504b02770ff3b8",
                "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example/c1ffa94f19a540ed8d9f7e1d2a5d",
                "networkInterfaces": [
                    {
                        "attachmentId": "52333e3b-b812-41a8-b057-9ed184bbe5e1",
                        "privateIpv4Address": "10.0.1.37"
                    }
                ],
                "cpu": "99",
                "memory": "100"
            }
        ],
        "cpu": "256",
        "createdAt": "2025-05-12T13:11:44.98Z",
        "desiredStatus": "RUNNING",
        "enableExecuteCommand": false,
        "group": "family:webserver",
        "launchType": "EC2",
        "lastStatus": "RUNNING",
        "memory": "512",
        "overrides": {
            "containerOverrides": [
                {
                    "name": "aws-otel-collector"
                },
                {
                    "name": "web"
                }
            ]
        },
        "pullStartedAt": "2025-05-12T13:11:59.491Z",
        "pullStoppedAt": "2025-05-12T13:12:05.896Z",
        "startedAt": "2025-05-12T13:12:06.053Z",
        "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/example/c1ffa94f19a540ed8d9f7e1d2a5d",
        "taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/webserver",
        "updatedAt": "2025-05-12T13:12:06.053Z",
        "version": 4
    }
}
```

# Amazon-ECS-Serviceaktionsereignisse
<a name="ecs_service_events"></a>

Amazon ECS sendet Service-Aktionsereignisse mit dem Detailtyp **ECS Service Action (ECS-Service-Aktion)**. Im Gegensatz zu den Container-Instance- und Aufgabenstatus-Änderungsereignissen enthalten die Ereignisse der Service-Aktion keine Versionsnummer im `details`-Antwortfeld. Das Folgende ist ein Ereignismuster, das verwendet wird, um eine EventBridge Regel für Amazon ECS-Serviceaktionsereignisse zu erstellen. Weitere Informationen finden Sie unter [Erste Schritte mit EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html) im * EventBridge Amazon-Benutzerhandbuch*.

```
{
    "source": [
        "aws.ecs"
    ],
    "detail-type": [
        "ECS Service Action"
    ]
}
```

Amazon ECS sendet Ereignisse mit den Ereignistypen `INFO`, `WARN` und `ERROR`. Im Folgenden finden Sie die Ereignisse der Service-Aktion.

## Service-Aktionsereignisse mit `INFO`-Ereignistyp
<a name="ecs_service_events_info_type"></a>

`SERVICE_STEADY_STATE`  
Der Service befindet sich in einem korrekten Status und umfasst die gewünschte Anzahl von Aufgaben. Somit erreicht er einen stabilen Status. Der Service-Scheduler meldet den Status regelmäßig, sodass Sie diese Nachricht möglicherweise mehrmals erhalten.

`TASKSET_STEADY_STATE`  
Der Aufgabensatz ist gesund und in der gewünschten Anzahl von Aufgaben und erreicht so einen Steady-Status.

`CAPACITY_PROVIDER_STEADY_STATE`  
Ein Kapazitätsanbieter, der einem Service zugeordnet ist, erreicht einen Steady-Status.

`SERVICE_DESIRED_COUNT_UPDATED`  
Wenn der Service-Scheduler die berechnete gewünschte Anzahl für einen Service oder einen Aufgabensatz aktualisiert. Dieses Ereignis wird nicht gesendet, wenn die gewünschte Anzahl manuell von einem Benutzer aktualisiert wird.

`TASKS_STOPPED`  
Der Service hat die laufende Aufgabe gestoppt.

`SERVICE_DEPLOYMENT_IN_PROGRESS`  
Eine Servicebereitstellung wird ausgeführt. Bei der Bereitstellung des Services kann es sich entweder um ein Rollback oder um eine neue Service-Revision handeln.

`SERVICE_DEPLOYMENT_COMPLETED`  
Eine Servicebereitstellung befindet sich im stabilen Status und ist abgeschlossen. Bei der Bereitstellung des Services kann es sich entweder um ein Rollback oder um die Bereitstellung einer aktualisierten Service-Revision handeln.

## Service-Aktionsereignisse mit `WARN`-Ereignistyp
<a name="ecs_service_events_warn_type"></a>

`SERVICE_TASK_START_IMPAIRED`  
Der Service kann Aufgaben nicht konsistent und erfolgreich starten.

`SERVICE_DISCOVERY_INSTANCE_UNHEALTHY`  
Ein Service, der die Serviceerkennung verwendet, enthält eine fehlerhafte Aufgabe. Der Service-Scheduler erkennt, dass eine Aufgabe innerhalb einer Service-Registrierung ungesund ist.

`VPC_LATTICE_TARGET_UNHEALTHY`  
Der Service, der VPC Lattice verwendet, hat festgestellt, dass eines der Ziele für VPC Lattice fehlerhaft ist.

## Service-Aktionsereignisse mit `ERROR`-Ereignistyp
<a name="ecs_service_events_error_type"></a>

`SERVICE_DAEMON_PLACEMENT_CONSTRAINT_VIOLATED`  
Eine Aufgabe in einem Service, der die `DAEMON`-Service-Scheduler-Strategie verwendet, entspricht nicht mehr der Platzierungsbeschränkungsstrategie für den Service.

`ECS_OPERATION_THROTTLED`  
Der Service-Scheduler wurde aufgrund der Amazon-ECS-API-Drosselgrenzen gedrosselt.

`SERVICE_DISCOVERY_OPERATION_THROTTLED`  
Der Service Scheduler wurde aufgrund der AWS Cloud Map API-Grenzwerte gedrosselt. Dies kann bei Services auftreten, die für die Verwendung der Serviceerkennung konfiguriert sind.

`SERVICE_TASK_PLACEMENT_FAILURE`  
Der Service-Scheduler kann keinen Task platzieren. Die Ursache wird im Feld `reason` beschrieben.  
Eine typische Ursache für die Erstellung dieses Service-Ereignisses ist ein Mangel an Ressourcen in dem Cluster, in dem die Aufgabe platziert werden soll. Beispiele sind unzureichende CPU- oder Speicherkapazität in den verfügbaren Container-Instances oder die Tatsache, dass keine Container-Instances verfügbar sind. Eine weitere typische Ursache besteht darin, dass der Amazon-ECS-Container-Agent in der Container-Instance getrennt wird, sodass der Scheduler die Aufgabe nicht platzieren kann.

`SERVICE_TASK_CONFIGURATION_FAILURE`  
Der Service-Scheduler kann aufgrund eines Konfigurationsfehlers keine Aufgabe platzieren. Die Ursache wird im Feld `reason` beschrieben.  
Eine häufige Ursache für die Erstellung dieses Service-Ereignisses ist, dass Tags auf den Service angewendet wurden, der Benutzer oder die Rolle aber nicht für das neue Amazon Ressourcenname (ARN)-Format in der Region optiert hatte. Weitere Informationen finden Sie unter [Amazon-Ressourcennamen (ARNs) und IDs](ecs-account-settings.md#ecs-resource-ids). Eine weitere typische Ursache besteht darin, dass Amazon ECS die bereitgestellte IAM-Aufgabenrolle nicht annehmen konnte.

`SERVICE_HEALTH_UNKNOWN`  
Der Service war nicht in der Lage, die Zustanddaten für Aufgaben zu beschreiben.

`SERVICE_DEPLOYMENT_FAILED`  
Eine Servicebereitstellung erreichte nicht einen stabilen Status. Dies passiert, wenn ein ausgelöst CloudWatch wird oder der Schutzschalter einen Fehler bei der Servicebereitstellung feststellt.

**Example Service-Steady-Statusereignis**  
Service-Steady-Statusereignisse werden im folgenden Format bereitgestellt. Weitere Informationen zu EventBridge Parametern finden Sie unter [Ereignisse EventBridge im EventBridge ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html) *Amazon-Benutzerhandbuch*.  

```
{
    "version": "0",
    "id": "af3c496d-f4a8-65d1-70f4-a69d52e9b584",
    "detail-type": "ECS Service Action",
    "source": "aws.ecs",
    "account": "111122223333",
    "time": "2019-11-19T19:27:22Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest"
    ],
    "detail": {
        "eventType": "INFO",
        "eventName": "SERVICE_STEADY_STATE",
        "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default",
        "createdAt": "2019-11-19T19:27:22.695Z"
    }
}
```

**Example Kapazitätsanbieter-Steady-Statusereignis**  
Die Steady-Statusereignisse des Kapazitätsanbieters werden im folgenden Format bereitgestellt.  

```
{
    "version": "0",
    "id": "b9baa007-2f33-0eb1-5760-0d02a572d81f",
    "detail-type": "ECS Service Action",
    "source": "aws.ecs",
    "account": "111122223333",
    "time": "2019-11-19T19:37:00Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest"
    ],
    "detail": {
        "eventType": "INFO",
        "eventName": "CAPACITY_PROVIDER_STEADY_STATE",
        "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default",
        "capacityProviderArns": [
            "arn:aws:ecs:us-west-2:111122223333:capacity-provider/ASG-tutorial-capacity-provider"
        ],
        "createdAt": "2019-11-19T19:37:00.807Z"
    }
}
```

**Example Service-Aufgabenstart-Gefährdet-Ereignis**  
Service-Aufgabenstart-Gefährdet-Ereignisse werden im folgenden Format bereitgestellt.  

```
{
    "version": "0",
    "id": "57c9506e-9d21-294c-d2fe-e8738da7e67d",
    "detail-type": "ECS Service Action",
    "source": "aws.ecs",
    "account": "111122223333",
    "time": "2019-11-19T19:55:38Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest"
    ],
    "detail": {
        "eventType": "WARN",
        "eventName": "SERVICE_TASK_START_IMPAIRED",
        "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default",
        "createdAt": "2019-11-19T19:55:38.725Z"
    }
}
```

**Example Service-Aufgabenplazierung-Fehlerereignis**  
Fehlerereignisse bei der Platzierung von Service-Aufgaben werden im folgenden Format bereitgestellt. Weitere Informationen finden Sie unter [Ereignisse EventBridge im EventBridge ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html) *Amazon-Benutzerhandbuch*.  
Im folgenden Beispiel versuchte die Aufgabe, den `FARGATE_SPOT`-Kapazitätsanbieter zu verwenden, aber der Service-Scheduler konnte keine Fargate Spot-Kapazität akquirieren.  

```
{
    "version": "0",
    "id": "ddca6449-b258-46c0-8653-e0e3a6d0468b",
    "detail-type": "ECS Service Action",
    "source": "aws.ecs",
    "account": "111122223333",
    "time": "2019-11-19T19:55:38Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest"
    ],
    "detail": {
        "eventType": "ERROR",
        "eventName": "SERVICE_TASK_PLACEMENT_FAILURE",
        "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default",
        "capacityProviderArns": [
            "arn:aws:ecs:us-west-2:111122223333:capacity-provider/FARGATE_SPOT"
        ],
        "reason": "RESOURCE:FARGATE",
        "createdAt": "2019-11-06T19:09:33.087Z"
    }
}
```
Im folgenden Beispiel für EC2 wurde versucht, die Aufgabe auf der Container-Instance `2dd1b186f39845a584488d2ef155c131` zu starten, aber Service Scheduler konnte die Aufgabe wegen unzureichender CPU nicht platzieren.  

```
{
  "version": "0",
  "id": "ddca6449-b258-46c0-8653-e0e3a6d0468b",
  "detail-type": "ECS Service Action",
  "source": "aws.ecs",
  "account": "111122223333",
  "time": "2019-11-19T19:55:38Z",
  "region": "us-west-2",
  "resources": [
    "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest"
  ],
  "detail": {
    "eventType": "ERROR",
    "eventName": "SERVICE_TASK_PLACEMENT_FAILURE",
    "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default",
    "containerInstanceArns": [
    "arn:aws:ecs:us-west-2:111122223333:container-instance/default/2dd1b186f39845a584488d2ef155c131"
    ],
    "reason": "RESOURCE:CPU",
    "createdAt": "2019-11-06T19:09:33.087Z"
  }
}
```

# Statussänderungs-Ereignisse der Amazon-ECS-Servicebereitstellung
<a name="ecs_service_deployment_events"></a>

Amazon ECS sendet Änderungsereignisse für die Servicebereitstellung mit dem Detailtyp **Statusänderungen des ECS-Bereitstellungszustands**. Das Folgende ist ein Ereignismuster, das verwendet wird, um eine EventBridge Regel für Ereignisse zur Änderung des Bereitstellungsstatus von Amazon ECS-Services zu erstellen. Weitere Informationen zum Erstellen einer EventBridge Regel finden Sie unter [Erste Schritte mit Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html) im * EventBridge Amazon-Benutzerhandbuch*.

```
{
    "source": [
        "aws.ecs"
    ],
    "detail-type": [
        "ECS Deployment State Change"
    ]
}
```

Amazon ECS sendet Ereignisse mit den Ereignistypen `INFO` und `ERROR`. Weitere Informationen finden Sie unter [Amazon-ECS-Serviceaktionsereignisse](ecs_service_events.md).

Folgende sind die Änderungsereignisse für den Bereitstellungsstatus von Services:

`SERVICE_DEPLOYMENT_IN_PROGRESS`  
Die Dienstbereitstellung ist in Bearbeitung. Dieses Ereignis wird sowohl für Erstbereitstellungen als auch für Rollbackbereitstellungen gesendet.

`SERVICE_DEPLOYMENT_COMPLETED`  
Die Dienstbereitstellung ist abgeschlossen. Dieses Ereignis wird gesendet, sobald ein Service einen Steady-Status nach einer Bereitstellung erreicht.

`SERVICE_DEPLOYMENT_FAILED`  
Die Dienstbereitstellung ist fehlgeschlagen. Dieses Ereignis wird für Dienste gesendet, bei denen die Logik des Bereitstellungsschutzschalters eingeschaltet ist.

**Example Ereignis „Dienstbereitstellung in Bearbeitung“**  
Ereignisse zur Servicebereitstellung werden bereitgestellt, wenn sowohl eine anfängliche als auch eine Rollbackbereitstellung gestartet wird. Der Unterschied zwischen den beiden liegt im Feld `reason`. Weitere Informationen zu EventBridge Parametern finden Sie unter [AWS Service-Event-Metadaten](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html) im * EventBridge Amazon-Benutzerhandbuch*.  
Im Folgenden sehen Sie eine Beispielausgabe für eine erste Bereitstellung, die gestartet wird.  

```
{
   "version": "0",
   "id": "ddca6449-b258-46c0-8653-e0e3a6EXAMPLE",
   "detail-type": "ECS Deployment State Change",
   "source": "aws.ecs",
   "account": "111122223333",
   "time": "2020-05-23T12:31:14Z",
   "region": "us-west-2",
   "resources": [ 
        "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest"
   ],
   "detail": {
        "eventType": "INFO", 
        "eventName": "SERVICE_DEPLOYMENT_IN_PROGRESS",
        "deploymentId": "ecs-svc/123",
        "updatedAt": "2020-05-23T11:11:11Z",
        "reason": "ECS deployment deploymentId in progress."
   }
}
```
Im Folgenden sehen Sie eine Beispielausgabe für eine Rollbackbereitstellung, die gestartet wird. Das Feld `reason` enthält die ID der Bereitstellung, auf die der Service zurückgesetzt wird.  

```
{
   "version": "0",
   "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE",
   "detail-type": "ECS Deployment State Change",
   "source": "aws.ecs",
   "account": "111122223333",
   "time": "2020-05-23T12:31:14Z",
   "region": "us-west-2",
   "resources": [ 
        "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest"
   ],
   "detail": {
        "eventType": "INFO", 
        "eventName": "SERVICE_DEPLOYMENT_IN_PROGRESS",
        "deploymentId": "ecs-svc/123",
        "updatedAt": "2020-05-23T11:11:11Z",
        "reason": "ECS deployment circuit breaker: rolling back to deploymentId deploymentID."
   }
}
```

**Example Ereignis „Dienstbereitstellung abgeschlossen“**  
„Dienstbereitstellung abgeschlossen“-Statusereignisse werden im folgenden Format bereitgestellt. Weitere Informationen finden Sie unter [Bereitstellen von Amazon-ECS-Services durch Ersetzung von Aufgaben](deployment-type-ecs.md).  

```
{
   "version": "0",
   "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE",
   "detail-type": "ECS Deployment State Change",
   "source": "aws.ecs",
   "account": "111122223333",
   "time": "2020-05-23T12:31:14Z",
   "region": "us-west-2",
   "resources": [ 
        "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest"
   ],
   "detail": {
        "eventType": "INFO", 
        "eventName": "SERVICE_DEPLOYMENT_COMPLETED",
        "deploymentId": "ecs-svc/123",
        "updatedAt": "2020-05-23T11:11:11Z",
        "reason": "ECS deployment deploymentID completed."
   }
}
```

**Example Ereignis „Dienstbereitstellung ist fehlgeschlagen“**  
„Dienstbereitstellung fehlgeschlagen“-Statusereignisse werden im folgenden Format bereitgestellt. Ein Dienstbereitstellungsstatusereignis wird nur für Dienste gesendet, für die die Logik des Bereitstellungsschutzschalters eingeschaltet ist. Weitere Informationen finden Sie unter [Bereitstellen von Amazon-ECS-Services durch Ersetzung von Aufgaben](deployment-type-ecs.md).  

```
{
   "version": "0",
   "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE",
   "detail-type": "ECS Deployment State Change",
   "source": "aws.ecs",
   "account": "111122223333",
   "time": "2020-05-23T12:31:14Z",
   "region": "us-west-2",
   "resources": [ 
        "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest"
   ],
   "detail": {
        "eventType": "ERROR", 
        "eventName": "SERVICE_DEPLOYMENT_FAILED",
        "deploymentId": "ecs-svc/123",
        "updatedAt": "2020-05-23T11:11:11Z",
        "reason": "ECS deployment circuit breaker: task failed to start."
   }
}
```

# Verarbeitung von Amazon-ECS-Ereignissen
<a name="ecs_cwet_handling"></a>

Amazon ECS sendet Ereignisse *mindestens einmal*. Dies bedeutet, dass Sie möglicherweise mehrere Kopien eines bestimmten Ereignisses erhalten. Außerdem werden Ereignisse eventuell nicht in der Reihenfolge, in der sie stattgefunden haben, an Ihre Ereignis-Listener übermittelt.

Damit Ereignisse richtig geordnet werden können, enthält der `detail`-Abschnitt der einzelnen Ereignisse eine Eigenschaft`version`. Jedes Mal, wenn sich der Status einer Ressource ändert, erhöht sich diese `version`. Doppelte Ereignisse haben im `detail`-Objekt die gleiche `version`. Wenn Sie Ihre Amazon ECS-Container-Instance und den Aufgabenstatus mit replizieren EventBridge, können Sie die vom Amazon ECS gemeldete Version einer Ressource APIs mit der EventBridge für die Ressource `version` gemeldeten Version vergleichen, um zu überprüfen, ob die Version in Ihrem Event-Stream aktuell ist. Ereignisse mit einer höheren Versionseigenschaftsnummer sind später einzuordnen, als Ereignisse mit niedrigeren Versionsnummern.

## Beispiel: Behandlung von Ereignissen in einer Funktion AWS Lambda
<a name="ecs_cwet_handling_example"></a>

Das folgende Beispiel zeigt eine in Python 3.9 geschriebene Lambda-Funktion, die sowohl Statusänderungsereignisse von Aufgaben als auch von Container-Instance-Zustand erfasst und in einer von zwei Amazon-DynamoDB-Tabellen speichert:
+ *ECSCtrInstanceState*— Speichert den neuesten Status einer Container-Instance. Die Tabellen-ID ist der `containerInstanceArn`-Wert der Container-Instance.
+ *ECSTaskStatus* — Speichert den neuesten Status einer Aufgabe. Die Tabellen-ID ist der `taskArn`-Wert der Aufgabe.

```
import json
import boto3

def lambda_handler(event, context):
    id_name = ""
    new_record = {}

    # For debugging so you can see raw event format.
    print('Here is the event:')
    print((json.dumps(event)))

    if event["source"] != "aws.ecs":
       raise ValueError("Function only supports input from events with a source type of: aws.ecs")

    # Switch on task/container events.
    table_name = ""
    if event["detail-type"] == "ECS Task State Change":
        table_name = "ECSTaskState"
        id_name = "taskArn"
        event_id = event["detail"]["taskArn"]
    elif event["detail-type"] == "ECS Container Instance State Change":
        table_name = "ECSCtrInstanceState"
        id_name =  "containerInstanceArn"
        event_id = event["detail"]["containerInstanceArn"]
    else:
        raise ValueError("detail-type for event is not a supported type. Exiting without saving event.")

    new_record["cw_version"] = event["version"]
    new_record.update(event["detail"])

    # "status" is a reserved word in DDB, but it appears in containerPort
    # state change messages.
    if "status" in event:
        new_record["current_status"] = event["status"]
        new_record.pop("status")


    # Look first to see if you have received a newer version of an event ID.
    # If the version is OLDER than what you have on file, do not process it.
    # Otherwise, update the associated record with this latest information.
    print("Looking for recent event with same ID...")
    dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
    table = dynamodb.Table(table_name)
    saved_event = table.get_item(
        Key={
            id_name : event_id
        }
    )
    if "Item" in saved_event:
        # Compare events and reconcile.
        print(("EXISTING EVENT DETECTED: Id " + event_id + " - reconciling"))
        if saved_event["Item"]["version"] < event["detail"]["version"]:
            print("Received event is a more recent version than the stored event - updating")
            table.put_item(
                Item=new_record
            )
        else:
            print("Received event is an older version than the stored event - ignoring")
    else:
        print(("Saving new event - ID " + event_id))

        table.put_item(
            Item=new_record
        )
```

Das folgende Fargate-Beispiel zeigt eine in Python 3.9 geschriebene Lambda-Funktion, die Statussänderungs-Ereignisse erfasst und in der folgenden Amazon-DynamoDB-Tabelle speichert:

```
import json
import boto3

def lambda_handler(event, context):
    id_name = ""
    new_record = {}

    # For debugging so you can see raw event format.
    print('Here is the event:')
    print((json.dumps(event)))

    if event["source"] != "aws.ecs":
       raise ValueError("Function only supports input from events with a source type of: aws.ecs")

    # Switch on task/container events.
    table_name = ""
    if event["detail-type"] == "ECS Task State Change":
        table_name = "ECSTaskState"
        id_name = "taskArn"
        event_id = event["detail"]["taskArn"]
    else:
        raise ValueError("detail-type for event is not a supported type. Exiting without saving event.")

    new_record["cw_version"] = event["version"]
    new_record.update(event["detail"])

    # "status" is a reserved word in DDB, but it appears in containerPort
    # state change messages.
    if "status" in event:
        new_record["current_status"] = event["status"]
        new_record.pop("status")


    # Look first to see if you have received a newer version of an event ID.
    # If the version is OLDER than what you have on file, do not process it.
    # Otherwise, update the associated record with this latest information.
    print("Looking for recent event with same ID...")
    dynamodb = boto3.resource("dynamodb", region_name="us-east-1")
    table = dynamodb.Table(table_name)
    saved_event = table.get_item(
        Key={
            id_name : event_id
        }
    )
    if "Item" in saved_event:
        # Compare events and reconcile.
        print(("EXISTING EVENT DETECTED: Id " + event_id + " - reconciling"))
        if saved_event["Item"]["version"] < event["detail"]["version"]:
            print("Received event is a more recent version than the stored event - updating")
            table.put_item(
                Item=new_record
            )
        else:
            print("Received event is an older version than the stored event - ignoring")
    else:
        print(("Saving new event - ID " + event_id))

        table.put_item(
            Item=new_record
        )
```