Senden von Amazon Simple Notification Service-Benachrichtigungen für Ereignisse, bei denen Amazon ECS-Aufgaben gestoppt wurden - Amazon Elastic Container Service

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.

Senden von Amazon Simple Notification Service-Benachrichtigungen für Ereignisse, bei denen Amazon ECS-Aufgaben gestoppt wurden

Konfigurieren Sie eine EventBridge Amazon-Ereignisregel, die nur Aufgabenereignisse erfasst, bei denen die Ausführung der Aufgabe beendet wurde, weil 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 keinen laufenden Cluster haben, von dem Sie Ereignisse erfassen können, folgen Sie den Schritten unter Erste Schritte mit der Konsole unter Verwendung von Linux-Containern auf AWS Fargate, um einen 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 Amazon EventBridge SNS-Regel korrekt konfiguriert haben.

Voraussetzung: Berechtigungen für Amazon SNS konfigurieren

Verwenden Sie EventBridge die Befehle aws sns get-topic-attributes und aws sns, um die Veröffentlichung in einem Amazon SNS-Thema zu ermöglichen. set-topic-attributes

Informationen zum Hinzufügen der Berechtigung finden Sie unter Amazon-SNS-Berechtigungen im Entwicklerhandbuch für Amazon Simple Notification Service

Fügen Sie die folgenden Berechtigungen hinzu:

{ "Sid": "PublishEventsToMyTopic", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sns: Publish", "Resource": "arn:aws:sns:region:account-id:TaskStoppedAlert", }

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

Protokoll Email
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 SNS-Themas finden Sie unter Erstellen einer Regel in Amazon EventBridge im EventBridge Amazon-Benutzerhandbuch. Verwenden Sie die folgende Tabelle, um zu bestimmen, welche Optionen Sie auswählen müssen.

Option Wert

Regeltyp

Regel mit einem Ereignismuster

Ereignisquelle AWS Veranstaltungen oder EventBridge Partnerveranstaltungen
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
Thema

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.

  1. Öffnen Sie die Konsole auf https://console.aws.amazon.com/ecs/Version 2.

  2. Wählen Sie im Navigationsbereich Task definitions (Aufgabendefinitionen) aus.

  3. Wählen Sie Create new task definition (Neue Aufgabendefinition erstellen), Create new task definition with JSON (Neue Aufgabendefinition mit JSON) erstellen.

  4. Bearbeiten Sie im JSON-Editorfeld Ihre JSON-Datei und kopieren Sie Folgendes in den Editor.

    { "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 Create (Erstellen) aus.

So führen Sie eine Aufgabe über die Konsole aus
  1. Öffnen Sie die Konsole auf https://console.aws.amazon.com/ecs/v2.

  2. Wählen Sie auf der Seite Cluster den Cluster aus, den Sie in den Voraussetzungen erstellt haben.

  3. Von der Registerkarte Tasks (Aufgaben) wählen Sie Ausführen einer neuen Aufgabe.

  4. Für Anwendungstyp, wählen Sie Aufgabe aus.

  5. Wählen Sie für Aufgabendefinition die Option fargate-task-definition.

  6. Geben Sie für Desired tasks (Gewünschte Aufgaben) die Anzahl der Aufgaben an, die gestartet werden sollen.

  7. Wählen Sie Create (Erstellen) aus.