Senden von Amazon Simple Notification Service-Benachrichtigungen für Ereignisse, die durch Amazon ECS Task 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, die durch Amazon ECS Task 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 angegebene SNS Amazon-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 SNS Amazon-Thema und Ihre EventBridge Regel korrekt konfiguriert haben.

Voraussetzung: Berechtigungen für Amazon konfigurieren SNS

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

Informationen zum Hinzufügen der Berechtigung finden Sie unter SNSAmazon-Berechtigungen im Amazon Simple Notification Service Developer Guide

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: Ein SNS Amazon-Thema erstellen und abonnieren

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

Informationen zum Erstellen und Abonnieren eines SNS Amazon-Themas finden Sie unter Erste Schritte mit Amazon SNS im Amazon Simple Notification Service Developer Guide. Ermitteln Sie anhand der folgenden Tabelle, welche Optionen Sie auswählen müssen.

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 SNS Amazon-Themas finden Sie unter Eine Regel in Amazon erstellen 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 (JSONEditor)

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

AWS Dienst

Ziel SNSThema
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 Neue Aufgabendefinition erstellen, Neue Aufgabendefinition erstellen mit JSON.

  4. Bearbeiten Sie im JSON Editor-Feld 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/Version 2.

  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.