Heim > Web-Frontend > js-Tutorial > Planen Sie Events in EventBridge mit Lambda

Planen Sie Events in EventBridge mit Lambda

Linda Hamilton
Freigeben: 2024-12-20 01:36:11
Original
368 Leute haben es durchsucht

Schedule Events in EventBridge with Lambda

In diesem Blogbeitrag erfahren Sie, wie Sie Ereignisse mit AWS EventBridge Scheduler und AWS Lambda planen. Diese Methode ist effizient und skalierbar und stellt sicher, dass Ihre Anwendung mehrere geplante Ereignisse verarbeiten kann, ohne dass ein Durcheinander einzelner EventBridge-Regeln entsteht. Lasst uns eintauchen!

Was ist AWS EventBridge?

AWS EventBridge ist ein serverloser Event-Bus-Dienst, der es einfach macht, Anwendungen mithilfe von Daten aus Ihren eigenen Anwendungen, integrierten Software-as-a-Service-Anwendungen (SaaS) und AWS-Diensten zu verbinden. EventBridge liefert einen Strom von Echtzeitdaten von Ereignisquellen und leitet diese Daten an Ziele wie AWS Lambda, Amazon SNS und mehr weiter.

Was ist AWS Lambda?

AWS Lambda ist ein serverloser Rechendienst, mit dem Sie Code ausführen können, ohne Server bereitzustellen oder zu verwalten. Sie können Lambda-Funktionen direkt von anderen AWS-Diensten wie S3, DynamoDB oder EventBridge auslösen und automatisch von wenigen Anfragen pro Tag auf Tausende pro Sekunde skalieren.

Voraussetzungen

Bevor wir beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  1. Ein AWS-Konto
  2. Grundkenntnisse von Node.js
  3. AWS CLI auf Ihrem Computer konfiguriert

Schritt 1: Einrichten Ihrer AWS-Umgebung

Erstellen einer IAM-Rolle

Zuerst müssen wir eine IAM-Rolle erstellen, die es AWS EventBridge Scheduler ermöglicht, Ihre Lambda-Funktion aufzurufen.

  1. Gehen Sie zur IAM-Konsole: Navigieren Sie zur IAM-Konsole, wählen Sie Rollen im linken Navigationsbereich und klicken Sie auf Rolle erstellen.

  2. Vertrauenswürdige Entität auswählen: Wählen Sie AWS-Dienst, wählen Sie Lambda und klicken Sie auf Weiter: Berechtigungen.

  3. Richtlinien anhängen: Hängen Sie die folgenden verwalteten Richtlinien an:

    • AWSLambdaBasicExecutionRole: Bietet grundlegende Lambda-Ausführungsberechtigungen.
    • AmazonEventBridgeSchedulerFullAccess: Ermöglicht EventBridge Scheduler die Verwaltung von Zeitplänen.
  4. Überprüfen und erstellen: Geben Sie einen Namen für die Rolle ein, z. B. LambdaExecutionRole, überprüfen Sie die Einstellungen und klicken Sie auf Rolle erstellen.

  5. Vertrauensstellung aktualisieren: Nachdem die Rolle erstellt wurde, gehen Sie zur Seite mit den Rollendetails. Klicken Sie auf der Registerkarte Vertrauensbeziehungen auf Vertrauensbeziehung bearbeiten. Aktualisieren Sie die Vertrauensrichtlinie, um den Dienst „scheduler.amazonaws.com“ einzuschließen:

   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "lambda.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       },
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "scheduler.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
Nach dem Login kopieren
Nach dem Login kopieren

Schritt 2: Erstellen der Lambda-Funktion

Wir erstellen eine Lambda-Funktion, die die geplanten Ereignisse verarbeitet.

  1. Gehen Sie zur Lambda-Konsole: Navigieren Sie zur Lambda-Konsole, klicken Sie auf Funktion erstellen und wählen Sie Autor von Grund auf neu.

  2. Konfigurieren Sie die Lambda-Funktion: Legen Sie den Funktionsnamen auf „processScheduledEvent“ fest, wählen Sie Node.js 16.x als Laufzeit aus und verwenden Sie die vorhandene Rolle, die Sie zuvor erstellt haben (LambdaExecutionRole). Klicken Sie auf Funktion erstellen.

  3. Funktionscode hinzufügen: Ersetzen Sie den Standardcode durch Ihre Logik, um das Ereignis zu verarbeiten. Beispielsweise können Sie die Ereignisdetails protokollieren oder bestimmte Aktionen basierend auf den Ereignisdaten ausführen:

   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "lambda.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       },
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "scheduler.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
Nach dem Login kopieren
Nach dem Login kopieren
  1. Funktion bereitstellen: Klicken Sie auf Bereitstellen, um die Änderungen zu speichern.

Schritt 3: Planen der Veranstaltung

Jetzt schreiben wir den Code, um ein Ereignis mit AWS EventBridge Scheduler zu planen.

Installieren Sie zunächst die erforderlichen AWS SDK-Module:

   exports.handler = async (event) => {
     const eventDetails = event;

     // Your logic to process the event
     console.log("Processing scheduled event:", eventDetails);

     // Example: Process event
     // processEvent(eventDetails);

     return {
       statusCode: 200,
       body: JSON.stringify('Event processed successfully'),
     };
   };
Nach dem Login kopieren

Hier ist eine Zusammenfassung der Schritte zur Implementierung der Planungsfunktion:

Ereignisdetails extrahieren

Extrahieren Sie die Ereignisdetails aus der Eingabe Ihrer Anwendung. Hier ist ein Beispiel:

npm install @aws-sdk/client-scheduler @aws-sdk/client-lambda
Nach dem Login kopieren

Konvertieren Sie IST in UTC

Konvertieren Sie die geplante Zeit von IST (Indian Standard Time) in UTC (Coordinated Universal Time).

const eventDetails = {
  name: "TEST-EVENT-01",
  userId: "USER123",
  eventId: "EVENT-001",
  eventTime: '2024-12-17T18:05:00+05:30' // IST time in ISO format
};
Nach dem Login kopieren

Formatieren Sie die UTC-Zeitzeichenfolge

Stellen Sie sicher, dass die UTC-Zeitzeichenfolge das richtige Format hat, das von EventBridge Scheduler gefordert wird (jjjj-MM-ttTHH:mm:ssZ).

const istTime = new Date(eventDetails.eventTime); // IST time
const utcTime = new Date(istTime.getTime() - 5.5 * 60 * 60 * 1000); // Convert to UTC
Nach dem Login kopieren

Erstellen Sie einen EventBridge-Zeitplan

Erstellen Sie einen EventBridge-Zeitplan mit dem AWS SDK, geben Sie den Lambda-Funktions-ARN als Ziel an und schließen Sie die Ereignisdetails als Eingabe ein.

const utcString = utcTime.toISOString().split('.')[0] + 'Z';
Nach dem Login kopieren

Abschluss

In diesem Blogbeitrag haben wir den Prozess der Einrichtung eines geplanten Ereignisses mit AWS EventBridge Scheduler und Lambda beschrieben. Dieser Ansatz stellt sicher, dass unsere Anwendung mehrere geplante Ereignisse effizient und skalierbar verarbeiten kann. Mit der Leistungsfähigkeit von AWS können Sie robuste Funktionen erstellen, die das Benutzererlebnis verbessern und Abläufe optimieren.

Viel Spaß beim Codieren!

Das obige ist der detaillierte Inhalt vonPlanen Sie Events in EventBridge mit Lambda. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage