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.
Tutorial: Eine EventBridge geplante Regel für AWS Lambda Funktionen erstellen
Sie können eine Regel für die Ausführung einer AWS Lambda-Funktion nach einem Zeitplan einrichten. Dieses Tutorial zeigt, wie Sie das AWS Management Console oder das verwenden AWS CLI , um die Regel zu erstellen. Wenn Sie die verwenden möchten, sie AWS CLI aber noch nicht installiert haben, finden Sie weitere Informationen unter Installation, Aktualisierung und Deinstallation der AWS CLI Version 2.
Stellt bei Zeitplänen EventBridge keine Genauigkeit der zweiten Ebene in Zeitplanausdrücken bereit. Die feinste Zeitauflösung bei Verwendung eines Cron-Ausdrucks ist eine Minute. Aufgrund des verteilten Charakters der Dienste EventBridge und der Zieldienste kann es zwischen dem Zeitpunkt, zu dem die geplante Regel ausgelöst wird, und dem Zeitpunkt, zu dem der Zieldienst die Zielressource ausführt, zu einer Verzögerung von mehreren Sekunden kommen.
Schritte:
Schritt 1: Erstellen einer Lambda-Funktion
Erstellen Sie eine Lambda-Funktion, um die geplanten Ereignisse zu protokollieren.
Eine Lambda-Funktion erstellen
Öffnen Sie die AWS Lambda Konsole unter https://console.aws.amazon.com/lambda/
. -
Wählen Sie Funktion erstellen.
-
Wählen Sie Von Grund auf neu schreiben aus.
-
Geben Sie einen Namen und eine Beschreibung für die Lambda-Funktion ein. Geben Sie der Funktion beispielsweise den Namen
LogScheduledEvent
. -
Behalten Sie die übrigen Optionen als Standardwerte bei und wählen Sie Funktion erstellen aus.
-
Doppelklicken Sie auf der Registerkarte Code der Funktionsseite auf index.js.
-
Ersetzen Sie den vorhandenen Code mit folgendem Code.
'use strict'; exports.handler = (event, context, callback) => { console.log('LogScheduledEvent'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
-
Wählen Sie Deploy (Bereitstellen) aus.
Schritt 2: Erstellen einer Regel
Erstellen Sie eine Regel, um die Lambda-Funktion, die Sie in Schritt 1 erstellt haben, nach einem Zeitplan auszuführen.
Sie können entweder die Konsole oder die verwenden AWS CLI , um die Regel zu erstellen. Um die zu verwenden AWS CLI, erteilen Sie der Regel zunächst die Berechtigung, Ihre Lambda-Funktion aufzurufen. Anschließend können Sie die Regel erstellen und Lambda-Funktion als Ziel hinzufügen.
So erstellen Sie eine Regel (Konsole)
Öffnen Sie die EventBridge Amazon-Konsole unter https://console.aws.amazon.com/events/
. -
Wählen Sie im Navigationsbereich Rules aus.
-
Wählen Sie Regel erstellen aus.
-
Geben Sie einen Namen und eine Beschreibung für die Regel ein.
Eine Regel darf nicht denselben Namen wie eine andere Regel in derselben Region und auf demselben Event Bus haben.
-
Wählen Sie als Event bus (Event Bus) den Event Bus aus, den Sie dieser Regel zuordnen möchten. Wenn Sie möchten, dass diese Regel mit Ereignissen aus Ihrem eigenen Konto übereinstimmt, wählen Sie AWS -Standard-Event-Bus aus. Wenn ein AWS -Service in Ihrem Konto ein Ereignis ausgibt, wird es stets an den Standard-Event-Bus Ihres Kontos weitergeleitet.
-
Wählen Sie unter Rule type (Regeltyp) die Option Schedule (Zeitplan) aus.
-
Wählen Sie Weiter aus.
-
Wählen Sie für Zeitplanmuster die Option Ein Zeitplan, der regelmäßig ausgeführt wird, z. B. alle 10 Minuten. aus, geben Sie
5
ein und wählen Sie Minuten in der Dropdown-Liste aus. -
Wählen Sie Weiter aus.
-
Bei Target types (Zieltypen) wählen Sie AWS -Service aus.
-
Wählen Sie für Ziel auswählen die Option Lambda-Funktion aus der Dropdown-Liste aus.
-
Wählen Sie für Funktion die Lambda-Funktion aus, die Sie im Abschnitt Schritt 1: Erstellen einer Lambda-Funktion erstellt haben. Wählen Sie in diesem Beispiel
LogScheduledEvent
aus. -
Wählen Sie Weiter.
-
Wählen Sie Weiter.
-
Überprüfen Sie die Details der Regel und wählen Sie dann Create rule (Regel erstellen) aus.
So erstellen Sie eine Regel (AWS CLI)
-
Verwenden Sie den Befehl
put-rule
, um eine Regel zu erstellen, die nach einem Zeitplan ausgeführt wird.aws events put-rule \ --name
my-scheduled-rule
\ --schedule-expression 'rate(5 minutes)'Wenn diese Regel ausgeführt wird, erstellt sie ein Ereignis und sendet es dann an die Ziele. Es folgt ein Beispielereignis.
{ "version": "0", "id": "53dc4d37-cffa-4f76-80c9-8b7d4a4d2eaa", "detail-type": "Scheduled Event", "source": "aws.events", "account": "123456789012", "time": "2015-10-08T16:53:06Z", "region": "us-east-1", "resources": [ "arn:aws:events:us-east-1:123456789012:rule/my-scheduled-rule" ], "detail": {} }
-
Verwenden Sie den
add-permission
Befehl, um dem EventBridge Service Principal (events.amazonaws.com
) die Berechtigung zur Ausführung der Regel zu erteilen.aws lambda add-permission \ --function-name
LogScheduledEvent
\ --statement-idmy-scheduled-event
\ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com \ --source-arn arn:aws:events:us-east-1
:123456789012
:rule/my-scheduled-rule
-
Erstellen Sie die Datei
targets.json
mit folgendem Inhalt.[ { "Id": "1", "Arn": "arn:aws:lambda:
us-east-1
:123456789012
:function:LogScheduledEvent
" } ] -
Verwenden Sie den Befehl
put-targets
, um die Lambda-Funktion, die Sie in Schritt 1 erstellt haben, zur Regel hinzuzufügen.aws events put-targets --rule
my-scheduled-rule
--targets file://targets.json
Schritt 3: Überprüfen der Regel
Warten Sie mindestens fünf Minuten nach Abschluss von Schritt 2, und dann können Sie prüfen, ob die Lambda-Funktion aufgerufen wurde.
Anzeigen der Ausgabe aus der Lambda-Funktion
Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/
. -
Wählen Sie im Navigationsbereich Protokolle aus.
-
Wählen Sie den Namen der Protokollgruppe für Ihre Lambda-Funktion aus (
/aws/lambda/
).function-name
-
Wählen Sie den Namen des Protokoll-Streams aus, um die von der Funktion für die von Ihnen gestartete Instance bereitgestellten Daten anzuzeigen.
Schritt 4: Bestätigen des Erfolgs
Wenn Sie das Lambda-Ereignis in den CloudWatch Protokollen sehen, haben Sie dieses Tutorial erfolgreich abgeschlossen. Wenn das Ereignis nicht in Ihren CloudWatch Protokollen enthalten ist, beginnen Sie mit der Fehlerbehebung, indem Sie überprüfen, ob die Regel erfolgreich erstellt wurde. Wenn die Regel korrekt aussieht, überprüfen Sie, ob der Code Ihrer Lambda-Funktion korrekt ist.
Schritt 5: Bereinigen Ihrer Ressourcen
Sie können jetzt die Ressourcen, die Sie für dieses Tutorial erstellt haben, löschen, es sei denn, Sie möchten sie behalten. Indem Sie AWS Ressourcen löschen, die Sie nicht mehr verwenden, verhindern Sie, dass Ihr AWS Konto unnötig belastet wird.
Um die EventBridge Regel (n) zu löschen
-
Öffnen Sie die Regelseite
der EventBridge Konsole. -
Wählen Sie die Regel(n) aus, die Sie erstellt haben.
-
Wählen Sie Delete (Löschen).
-
Wählen Sie Delete (Löschen).
So löschen Sie die Lambda-Funktion(en)
-
Öffnen Sie die Seite Funktionen
der Lambda-Konsole. -
Wählen Sie die Funktion(en) aus, die Sie erstellt haben.
-
Wählen Sie Aktionen, Löschen aus.
-
Wählen Sie Löschen.