Tutorial: AWS Lambda Funktionen planen mit EventBridge - Amazon EventBridge

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: AWS Lambda Funktionen planen mit EventBridge

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.

Schritt 1: Erstellen einer Lambda-Funktion

Erstellen Sie eine Lambda-Funktion, um die geplanten Ereignisse zu protokollieren.

Eine Lambda-Funktion erstellen
  1. Öffnen Sie die AWS Lambda Konsole unter https://console.aws.amazon.com/lambda/.

  2. Wählen Sie Funktion erstellen.

  3. Wählen Sie Von Grund auf neu schreiben aus.

  4. Geben Sie einen Namen und eine Beschreibung für die Lambda-Funktion ein. Geben Sie der Funktion beispielsweise den Namen LogScheduledEvent.

  5. Behalten Sie die übrigen Optionen als Standardwerte bei und wählen Sie Funktion erstellen aus.

  6. Doppelklicken Sie auf der Registerkarte Code der Funktionsseite auf index.js.

  7. 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'); };
  8. 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)
  1. Öffnen Sie die EventBridge Amazon-Konsole unter https://console.aws.amazon.com/events/.

  2. Wählen Sie im Navigationsbereich Rules aus.

  3. Wählen Sie Regel erstellen aus.

  4. 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.

  5. 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.

  6. Wählen Sie unter Rule type (Regeltyp) die Option Schedule (Zeitplan) aus.

  7. Wählen Sie Weiter aus.

  8. 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.

  9. Wählen Sie Weiter aus.

  10. Bei Target types (Zieltypen) wählen Sie AWS -Service aus.

  11. Wählen Sie für Ziel auswählen die Option Lambda-Funktion aus der Dropdown-Liste aus.

  12. 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.

  13. Wählen Sie Weiter.

  14. Wählen Sie Weiter.

  15. Überprüfen Sie die Details der Regel und wählen Sie dann Create rule (Regel erstellen) aus.

So erstellen Sie eine Regel (AWS CLI)
  1. 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": {} }
  2. 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-id my-scheduled-event \ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com \ --source-arn arn:aws:events:us-east-1:123456789012:rule/my-scheduled-rule
  3. Erstellen Sie die Datei targets.json mit folgendem Inhalt.

    [ { "Id": "1", "Arn": "arn:aws:lambda:us-east-1:123456789012:function:LogScheduledEvent" } ]
  4. 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
  1. Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/.

  2. Wählen Sie im Navigationsbereich Protokolle aus.

  3. Wählen Sie den Namen der Protokollgruppe für Ihre Lambda-Funktion aus (/aws/lambda/function-name).

  4. 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
  1. Öffnen Sie die Regelseite der EventBridge Konsole.

  2. Wählen Sie die Regel(n) aus, die Sie erstellt haben.

  3. Wählen Sie Delete (Löschen).

  4. Wählen Sie Delete (Löschen).

So löschen Sie die Lambda-Funktion(en)
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie die Funktion(en) aus, die Sie erstellt haben.

  3. Wählen Sie Aktionen, Löschen aus.

  4. Wählen Sie Löschen.