Tutorial: Senden von Amazon Simple Notification Service-Warnungen für Aufgaben-gestoppte Ereignisse - Amazon ECS

Tutorial: Senden von Amazon Simple Notification Service-Warnungen für Aufgaben-gestoppte Ereignisse

In diesem Tutorial konfigurieren Sie eine Amazon-EventBridge-Ereignisregel, die nur Aufgabenereignisse erfasst, wenn die Aufgabe angehalten wurde, da einer ihrer wichtigsten Container beendet wurde. Das Ereignis sendet nur Aufgabenereignisse mit einer bestimmten stoppedReason-Eigenschaft an das zugewiesene Amazon SNS-Thema.

Voraussetzung: Einrichten eines Testclusters

Wenn Sie über kein aktives Cluster verfügen, mit dem Sie Ereignisse erfassen, führen Sie die Schritte unter Erstellen eines Clusters mit der klassischen Konsole aus, um eines zu erstellen. Am Ende dieses Tutorials führen Sie eine Aufgabe auf diesem Cluster aus, um zu testen, ob Sie Ihr Amazon-SNS-Thema und Ihre EventBridge-Regel korrekt konfiguriert haben.

Schritt 1: Erstellen und Abonnieren eines Amazon-SNS-Themas

Mit diesem Tutorial konfigurieren Sie ein Amazon SNS-Thema, das als Ereignisziel für Ihre neue Ereignisregel dient.

Informationen zum Erstellen und Abonnieren eines Amazon-SNS-Themas finden Sie unter Erste Schritte mit Amazon SNS im Entwicklerhandbuch zu Amazon Simple Notification Service und verwenden Sie die folgende Tabelle, um zu bestimmen, welche Optionen auszuwählen sind.

Option Value

Typ

Standard
Name

TaskStoppedAlert

Protocol (Protokoll) E-Mail
Endpunkt

Eine E-Mail-Adresse, auf die Sie aktuell Zugriff haben

Schritt 2: Registrieren von Ereignisregeln

Als nächstes registrieren Sie eine Ereignisregel, die nur „Aufgabe angehalten“-Ereignisse für Aufgaben mit angehaltenen Containern erfasst.

Informationen zum Erstellen und Abonnieren eines Amazon-SNS-Themas finden Sie unter Erstellen einer Regel in Amazon EventBridge im Benutzerhandbuch für Amazon EventBridge und verwenden Sie die folgende Tabelle, um zu bestimmen, welche Optionen auszuwählen sind.

Option Wert

Regeltyp

Regel mit einem Ereignismuster

Ereignisquelle AWS-Ereignisse oder EventBridge-Partnerereignisse
Ereignismuster

Benutzerdefiniertes Muster (JSON-Editor)

Ereignismuster
{ "source":[ "aws.ecs" ], "detail-type":[ "ECS Task State Change" ], "detail":{ "lastStatus":[ "STOPPED" ], "stoppedReason":[ "Essential container in task exited" ] } }
Zieltyp

AWS-Service

Ziel SNS-Thema
Topic

TaskStoppedAlert (Das Thema, das Sie in Schritt 1 erstellt haben)

Schritt 3: Testen Ihrer Regel

Stellen Sie sicher, dass die Regel funktioniert, indem Sie eine Aufgabe ausführen, die kurz nach dem Start beendet wird. Wenn Ihre Ereignisregel korrekt konfiguriert ist, erhalten Sie innerhalb weniger Minuten eine E-Mail-Nachricht mit dem Ereignistext. Wenn Sie über eine vorhandene Aufgabendefinition verfügen, die die Regelanforderungen erfüllen kann, führen Sie eine Aufgabe mit dieser aus. Wenn dies nicht der Fall ist, führen Sie die folgenden Schritte durch die Registrierung einer Fargate-Aufgabendefinition und deren Ausführung.

So testen Sie die Regel

  1. Öffnen Sie die Amazon ECS-Konsole unter https://console.aws.amazon.com/ecs/.

  2. Wählen Sie Task Definitions und danach Create new Task Definition aus.

  3. Wählen Sie für "Kompatibilität des Starttyps auswählen" die Option FARGATE, Nächster Schritt aus.

  4. Wählen Sie Über JSON konfigurieren aus, kopieren und fügen Sie die folgende JSON-Aufgabendefinition in das Feld ein und klicken Sie auf Speichern.

    { "containerDefinitions":[ { "command":[ "sh", "-c", "sleep 5" ], "essential":true, "image":"amazonlinux:2", "name":"test-sleep" } ], "cpu":"256", "executionRoleArn":"arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "family":"fargate-task-definition", "memory":"512", "networkMode":"awsvpc", "requiresCompatibilities":[ "FARGATE" ] }
  5. Wählen Sie Erstellen, Aufgabendefinition anzeigen aus.

  6. Wählen Sie für Aktionen die Option Aufgabe ausführen aus.

  7. Wählen Sie für Starttyp FARGATE aus. Wählen Sie für VPC und Sicherheitsgruppen eine VPC und Subnetze für die zu verwendende Aufgabe aus und klicken Sie dann auf Aufgabe ausführen.

  8. Geben Sie für Container name den Text Wordpress, für Image den Text wordpress und für Maximum memory (MB) die Zahl 128 ein.

  9. Wählen Sie auf der Registerkarte Tasks Ihres Clusters wiederholt das Aktualisierungssymbol aus, bis keine laufenden Aufgaben mehr zu sehen sind. Um zu überprüfen, ob Ihre Aufgabe gestoppt wurde, wählen Sie für Desired task status (Gewünschter Aufgabenstatus) die Option Stopped (Angehalten).

  10. Überprüfen Sie Ihre E-Mail, um zu bestätigen, dass Sie per E-Mail eine Warnung bezüglich der gestoppten Benachrichtigung erhalten haben.