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.
Amazon so konfigurierenECS, dass es CloudWatch Ereignisse abhört
Erfahren Sie, wie Sie eine einfache Lambda-Funktion einrichten, die Aufgabenereignisse überwacht und sie in einen CloudWatch Logs-Protokoll-Stream schreibt.
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 ECS Amazon-Clusters für den Fargate-Launchtyp aus, um eines zu erstellen. Am Ende dieses Tutorials führen Sie eine Aufgabe auf diesem Cluster aus, um zu testen, ob Sie Ihre Lambda-Funktion korrekt konfiguriert haben.
Schritt 1: Erstellen der Lambda-Funktion
In diesem Verfahren erstellen Sie eine einfache Lambda-Funktion, die als Ziel für ECS Amazon-Ereignis-Stream-Nachrichten dient.
Öffnen Sie die AWS Lambda Konsole unter. https://console.aws.amazon.com/lambda/
-
Wählen Sie Funktion erstellen aus.
-
Verfahren Sie auf dem Bildschirm Author from scratch wie folgt:
-
Geben Sie für Name einen Wert ein.
-
Wählen Sie für Runtime (Laufzeit) Ihre Python-Version aus, etwa Python 3.9.
-
Wählen Sie unter Role (Rolle) die Option Create a new role with basic Lambda permissions (Eine neue Rolle mit den grundlegenden Lambda-Berechtigungen erstellen) aus.
-
-
Wählen Sie Funktion erstellen aus.
-
Bearbeiten Sie im Bereich Function code den Beispiel-Code entsprechend dem folgenden Beispiel:
import json def lambda_handler(event, context): if event["source"] != "aws.ecs": raise ValueError("Function only supports input from events with a source type of: aws.ecs") print('Here is the event:') print(json.dumps(event))
Dies ist eine einfache Python 3.9-Funktion, mit der das von Amazon gesendete Ereignis gedruckt wirdECS. Wenn alles richtig konfiguriert ist, sehen Sie am Ende dieses Tutorials, wie die Ereignisdetails in dem CloudWatch Protokollstream angezeigt werden, der dieser Lambda-Funktion zugeordnet ist.
-
Wählen Sie Save (Speichern) aus.
Schritt 2: Registrieren von Ereignisregeln
Als Nächstes erstellen Sie eine CloudWatch Ereignisregel, die aus ECS Amazon-Clustern stammende Aufgabenereignisse erfasst. Diese Regel erfasst alle Ereignisse, die aus allen Clustern innerhalb des Kontos stammen, in dem sie definiert wurde. Die Aufgabennachrichten selbst enthalten Informationen über die Ereignisquelle, einschließlich dem Cluster, in dem sie sich befindet. Sie können diese verwenden, um Ereignisse programmgesteuert zu filtern und zu sortieren.
Anmerkung
Wenn Sie AWS Management Console zum Erstellen einer Ereignisregel verwenden, fügt die Konsole automatisch die IAM Berechtigungen hinzu, mit denen die Berechtigung erteilt wird, Ihre Lambda-Funktion aufzurufen. CloudWatch Wenn Sie eine Ereignisregel mit der erstellen AWS CLI, müssen Sie diese Berechtigung explizit erteilen. Weitere Informationen finden Sie unter Ereignisse bei Amazon EventBridge und EventBridge Amazon-Ereignismuster im EventBridge Amazon-Benutzerhandbuch.
Umleiten von Ereignissen an Ihre Lambda-Funktion
Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/
. -
Wählen Sie im Navigationsbereich Events (Ereignisse), Rules (Regeln), Create rule (Regel erstellen) aus.
-
Wählen Sie ECSals Ereignisquelle die Option Ereignisquelle aus. Standardmäßig gilt die Regel für alle ECS Amazon-Ereignisse all Ihrer ECS Amazon-Gruppen. Alternativ können Sie bestimmte Ereignisse oder eine bestimmte ECS Amazon-Gruppe auswählen.
-
Wählen Sie für Targets (Ziele) die Option Add target (Ziel hinzufügen) und für Target type (Zieltyp) die Option Lambda function (Lambda-Funktion) und danach Ihre Lambda-Funktion aus.
-
Wählen Sie Details konfigurieren.
-
Geben Sie für Rule definition einen Namen und eine Beschreibung für Ihre Regel ein und wählen Sie Create rule aus.
Schritt 3: Erstellen einer Aufgabendefinition
Erstellen Sie eine Aufgabendefinition.
Öffnen Sie die Konsole auf https://console.aws.amazon.com/ecs/Version
2. -
Wählen Sie im Navigationsbereich Task Definitions aus.
-
Wählen Sie Neue Aufgabendefinition erstellen, Neue Revision erstellen mit JSON.
-
Kopieren Sie die folgende Beispielaufgabendefinition, fügen Sie sie in das Feld ein, und wählen Sie dann Save (Speichern).
{ "containerDefinitions": [ { "entryPoint": [ "sh", "-c" ], "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ], "command": [ "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground\"" ], "cpu": 10, "memory": 300, "image": "httpd:2.4", "name": "simple-app" } ], "family": "console-sample-app-static" }
-
Wählen Sie Create (Erstellen) aus.
Schritt 4: Testen Ihrer Regel
Abschließend erstellen Sie eine CloudWatch Ereignisregel, die aus ECS Amazon-Clustern stammende Aufgabenereignisse erfasst. Diese Regel erfasst alle Ereignisse, die aus allen Clustern innerhalb des Kontos stammen, in dem sie definiert wurde. Die Aufgabennachrichten selbst enthalten Informationen über die Ereignisquelle, einschließlich dem Cluster, in dem sie sich befindet. Sie können diese verwenden, um Ereignisse programmgesteuert zu filtern und zu sortieren.
Testen Ihrer Regel
Öffnen Sie die Konsole auf https://console.aws.amazon.com/ecs/Version
2. -
Wählen Sie Task definitions (Aufgabendefinitionen).
-
Wählen Sie console-sample-app-staticund anschließend Bereitstellen, Neue Aufgabe ausführen aus.
-
Wählen Sie für Cluster die Option Standard und wählen Sie dann Deploy (Bereitstellen) aus.
Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/
. -
Wählen Sie im Navigationsbereich Logs und die Protokollgruppe für Ihre Lambda-Funktion aus (z. B. /aws/lambda/
my-function
). -
Wählen Sie einen Protokollstream aus, um die Ereignisdaten anzuzeigen.