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!
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.
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.
Bevor wir beginnen, stellen Sie sicher, dass Sie Folgendes haben:
Zuerst müssen wir eine IAM-Rolle erstellen, die es AWS EventBridge Scheduler ermöglicht, Ihre Lambda-Funktion aufzurufen.
Gehen Sie zur IAM-Konsole: Navigieren Sie zur IAM-Konsole, wählen Sie Rollen im linken Navigationsbereich und klicken Sie auf Rolle erstellen.
Vertrauenswürdige Entität auswählen: Wählen Sie AWS-Dienst, wählen Sie Lambda und klicken Sie auf Weiter: Berechtigungen.
Richtlinien anhängen: Hängen Sie die folgenden verwalteten Richtlinien an:
Ü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.
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" } ] }
Wir erstellen eine Lambda-Funktion, die die geplanten Ereignisse verarbeitet.
Gehen Sie zur Lambda-Konsole: Navigieren Sie zur Lambda-Konsole, klicken Sie auf Funktion erstellen und wählen Sie Autor von Grund auf neu.
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.
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" } ] }
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'), }; };
Hier ist eine Zusammenfassung der Schritte zur Implementierung der Planungsfunktion:
Extrahieren Sie die Ereignisdetails aus der Eingabe Ihrer Anwendung. Hier ist ein Beispiel:
npm install @aws-sdk/client-scheduler @aws-sdk/client-lambda
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 };
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
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';
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!