Eine Einführung in verfügbare Trigger zum Aufrufen einer Lambda-Funktion

Eine Einfuhrung In Verfugbare Trigger Zum Aufrufen Einer Lambda Funktion



AWS Lambda ist ein erstaunlicher Cloud-basierter Service, der die serverlose Welt revolutioniert hat. Es ist eigentlich eine Software als Service (SaaS), die einfach und schnell eingerichtet werden kann und hilfreich ist, um das Gesamtbudget Ihrer Cloud-Infrastruktur zu reduzieren. Sie müssen lediglich Ihren Code entwerfen und ihn mit der Lambda-Funktion ausführen.

Der Punkt hier ist nun, wie Sie Ihren Code in der Funktion ausführen sollen, und die Antwort darauf ist, dass es eine lange Liste von Methoden gibt, mit denen Sie Ihre Lambda-Funktionen aufrufen oder auslösen können. Dazu gehören viele weitere AWS-Services, mit denen bei Bedarf die gewünschte Funktion aufgerufen werden kann.

In diesem Artikel finden Sie eine kurze Erklärung zu den Diensten und Techniken, die zum Aufrufen Ihrer Lambda-Funktionen in Amazon angewendet werden können.







Arten von Aufrufen

Bevor wir fortfahren, lassen Sie uns die folgenden zwei Haupttypen von Aufrufen besprechen, die die Lambda-Funktion verarbeiten kann.



  • Synchrone Aufrufe
  • Asynchrone Aufrufe
  1. Synchrone Aufrufe
    Bei synchronen Aufrufen muss der Dienst, der das Lambda aufruft, warten, bis die Ergebnisse an ihn zurückgegeben werden, und dann den Rest des Prozesses fortsetzen. Wir können auch sagen, dass die Ausgabe der Lambda-Funktion von der Funktion oder dem Dienst selbst benötigt wird, der dieses Lambda aufgerufen hat.
  2. Asynchrone Aufrufe

    Hier muss nicht darauf gewartet werden, dass die Lambda-Funktionen die Ergebnisse an den Aufrufer zurückgeben. Dies wird hauptsächlich für Benachrichtigungen oder zum Auslösen einiger anderer unabhängiger Ereignisse in AWS verwendet. Der Dienst, der die Lambda-Funktion aufrufen möchte, sendet einfach den Trigger, und diese Operation wird in die Lambda-Warteschlange eingereiht und ihrerseits ausgeführt.



Verschiedene Möglichkeiten zum Aufrufen von Lambda

Hier sehen Sie zahlreiche Möglichkeiten, die Lambda-Funktionen aufzurufen. Das zu wissen, ist sehr hilfreich für Sie, wenn Sie das nächste Mal Ihre einfache, aber kosteneffiziente AWS-Infrastruktur entwerfen.





Rufen Sie die Lambda-Funktionen direkt auf

In den meisten Fällen sind die Lambda-Funktionen so konzipiert, dass sie mit anderen Services ausgelöst werden, aber Sie können sie direkt über die AWS-Managementkonsole, AWS CLI und über die Funktions-URL aufrufen.

Aufrufen von Lambda von der Management Console

Wenn Sie eine Lambda-Funktion in Ihrer AWS-Konsole erstellen, können Sie sie ganz einfach mit der Testlaufoption in der Konsole auslösen. Das Prüfen Die Schaltfläche ist unter dem Codeabschnitt der Lambda-Funktion verfügbar.



Sie können ein benutzerdefiniertes Ereignis erstellen und die Konsole mit Ihrem benutzerdefinierten Ereignismuster verwenden.

Auf diese Weise kann die Lambda-Funktion von der AWS-Konsole aus ausgelöst werden.

AWS-CLI

AWS gibt Ihnen die Möglichkeit, alle seine Ressourcen über die AWS-Befehlszeilenschnittstelle zu nutzen. Jede Lambda-Funktion kann auch mit dieser CLI aufgerufen werden. Dies kann sehr effektiv sein, um Dinge während der Entwicklungsphase zu testen. Das Befolgen des AWS CLI-Befehls kann als Auslöser zum Aufrufen der Lambda-Funktion verwendet werden.

[E-Mail-geschützt] :~$ aws Lambda-Aufruf \
--Funktionsname < Geben Sie den Lambda-Funktionsnamen ein > \
--Nutzlast < Eingegebener Wert zum Lambda-Funktion > \
--cli-binary-format < base64 | raw-in-base64-out > < Name der Ausgabedatei >

Die Funktion wird erfolgreich ausgelöst und Sie können dies auch in der Ausgabe beobachten.

Funktions-URL

Die Funktions-URL ist eigentlich ein HTTP-Endpunkt, den Sie für Ihre Lambda-Funktionen konfigurieren können. Diese URL kann verwendet werden, um die Lambda-Funktionen auszulösen, und Sie können diese URL auch mit anderen Benutzern teilen, sogar außerhalb Ihres AWS-Kontos, um die Lambda-Funktionen aufzurufen. Obwohl Sie mit Funktions-URLs vorsichtig sein sollten, kann jeder mit diesem Link Ihre Lambda-Funktion unzählige Male auslösen, und alle Kosten gehen zu Ihren Lasten.

Eine Funktions-URL kann sowohl beim Erstellen als auch nach dem Erstellen der Lambda-Funktion konfiguriert werden. Gehen Sie dazu einfach zu den erweiterten Einstellungen im Konfigurationsbereich und überprüfen Sie die Funktions-URL aktivieren Kasten.

Falls Sie beim Erstellen der Lambda-Funktion keine Funktions-URL angehängt haben, können Sie dies später tun. Dazu müssen Sie auf die Registerkarte Konfiguration gehen, die Funktions-URL auswählen und auf klicken Funktions-URL erstellen .

Auf diese Weise wird die Funktions-URL erstellt und zum Aufrufen der Lambda-Funktion verwendet.

Rufen Sie Lambda-Funktionen mithilfe von AWS-Services auf

Viele AWS-Services können als Auslöser zum Aufrufen der Lambda-Funktion konfiguriert werden. Sie müssen nur die AWS-Services als Auslöser zum Aufrufen der Lambda-Funktion konfigurieren. Hier gehen wir alle diese Dienste mit einer Erklärung durch, wie Sie sie als Ihre Lambda-Auslöser verwenden können.

API-Gateway

Dies ist ein AWS-Service, der häufig zum Erstellen und Verwalten der APIs in Ihrem Anwendungsmodell verwendet wird. APIs bieten eine sehr flexible Möglichkeit, Anfragen oder Aufrufe von einem Softwarepaket zu einem anderen Paket zu generieren, die wir nicht direkt offenlegen können und die wir einfach hinter den Kulissen behalten möchten.

Um Ihrer Lambda-Funktion einen beliebigen Dienst als Auslöser hinzuzufügen, gehen Sie einfach zur Lambda-Funktion und klicken Sie auf Auslöser hinzufügen.

Als Nächstes können Sie den Dienst auswählen, den Sie als Trigger an Ihre Lambda-Funktion anhängen möchten. Für diesen Abschnitt wählen wir das API-Gateway als Trigger für die Lambda-Funktion.

Als Nächstes konfigurieren Sie den Dienst so, wie er in Ihrer Anwendungsstruktur agieren soll.

Es gibt zwei Arten von APIs, die vom API-Gateway unterstützt werden, und diese können zum Aufrufen einer Lambda-Funktion verwendet werden.

HTTP-APIs : Sie werden verwendet, um die HTTP-Endpunkte zu generieren, die an Ihre Lambda-Funktionen weitergeleitet werden. HTTP-APIs bieten weniger Funktionalität und sind weniger kostspielig in der Verwendung.

REST-APIs : Wenn Sie mehr Funktionen in Ihrer API wünschen, müssen Sie sich für eine REST-API entscheiden. Diese APIs können die Lambda-Funktion aufrufen und dieselben HTTP-Methoden verwenden, was mehr Flexibilität und Unabhängigkeit bietet.

S3-Eimer

Es gibt viele Anwendungsfälle, in denen Sie sehen werden, dass S3-Buckets als Auslöser zum Aufrufen der Lambda-Funktion fungieren. Sie können einen S3-Bucket konfigurieren, um die Lambda-Funktion für ein bestimmtes S3-Ereignis auszulösen.

Beispielsweise möchten Sie die Metadaten einer beliebigen Datei erfassen, wenn sie in Ihren Bucket hochgeladen wird. Dazu entwickeln Sie einen Code und stellen ihn auf der Lambda-Funktion bereit. Wählen Sie für den Lambda-Trigger den S3-Bucket aus. Wählen Sie als Ereignistyp aus Objekt legen . Immer wenn dem Bucket eine neue Datei hinzugefügt wird, wird die Lambda-Funktion ausgelöst und die Metadaten des Objekts werden gesammelt und am von Ihnen angegebenen Zielort gespeichert.

Es kann viele andere Szenarien geben, in denen S3 als Auslöser zum Aufrufen der Lambda-Funktion verwendet werden kann.

Lastenausgleicher

Angenommen, Ihre Anwendung ist für die Ausführung mit Lambda-Funktionen ausgelegt, da die Lambda-Funktion die kostengünstigste Lösung für eine einfache Cloud-basierte Anwendung ist. Um Ihre Anwendung jetzt den Endbenutzern zugänglich zu machen, möchten Sie möglicherweise einen Load Balancer davor anfügen. Wählen Sie für diesen Abschnitt den Load Balancer aus, der als Trigger zum Aufrufen der Lambda-Funktion dient. Denken Sie daran, dass Sie den Application Load Balancer nur für diese Aufgabe einrichten können, da andere Load Balancer nicht von Lambda-Funktionen unterstützt werden.

Um den Application Load Balancer zur Lambda-Funktion hinzuzufügen, müssen Sie zuerst eine Zielgruppe erstellen und die Lambda-Funktion wird dieser Zielgruppe hinzugefügt. Nun kann die neu erstellte Zielgruppe zu den Listenern des Application Load Balancers hinzugefügt werden.

CloudFront

Amazon CloudFront ist eigentlich ein CDN (Content Delivery Network) und wird verwendet, um die Anwendungsdaten an Edge-Standorten zwischenzuspeichern, die im Vergleich zu den tatsächlichen Anwendungsservern viel näher an den Endbenutzern liegen. Mit CloudFront können Sie die Reaktionszeit für die Bereitstellung der statischen Inhalte für die Endbenutzer auf der ganzen Welt wirklich verbessern.

Die Lambda-Funktionen können mit dem CloudFront-Dienst ausgelöst werden. Dazu müssen Sie Ihre Lambda-Funktion an Edge-Standorten auf der ganzen Welt bereitstellen, die als bekannt sind [E-Mail-geschützt]

Sie können CloudFront als Trigger zum Senden der Anfragen an festlegen [E-Mail-geschützt] über CloudFront, um die Antwortzeit zu verbessern. Als die [E-Mail-geschützt] an allen Edge-Standorten auf der ganzen Welt bereitgestellt wird, müssen die Endbenutzer mit einer minimalen Reaktionszeit rechnen, wenn sie auf den nächstgelegenen Edge-Standort von Lambda zugreifen.

Um dies zu konfigurieren, gehen Sie einfach zu Auslöser hinzufügen und wählen Sie den CloudFront-Dienst aus. Dort sehen Sie die bereitstellen zu [E-Mail-geschützt] Möglichkeit.

Jetzt müssen Sie nur noch die Konfigurationsschritte abschließen und loslegen.

CloudWatch-Protokolle

Wenn Sie an die Überwachung in der AWS-Cloud denken, fällt Ihnen als erstes CLoudWatch ein, da dies ein sehr umfangreicher Überwachungsdienst ist, der auf sehr hilfreiche Weise für verschiedene Dienste konfiguriert werden kann.

CloudWatch Logs ist, wie der Name schon sagt, ein Protokollierungsdienst, der zum Speichern aller Arten von Protokollen verwendet werden kann. Sie können verschiedene Protokollgruppen für verschiedene Dienste erstellen, um die Protokolle getrennt zu halten. Diese Protokolle können verwendet werden, um Ihre Lambda-Funktion basierend auf den empfangenen Ereignissen auszulösen, unabhängig vom Dienst oder Verfahren, das diese Ereignisse erzeugt.

Sie können den Trigger entweder über die Lambda-Funktionskonsole oder direkt über die CloudWatch-Protokolle konfigurieren. Um dies von der CloudWatch-Konsole aus zu tun, gehen Sie einfach zum CloudWatch-Dienst und öffnen Sie die Protokollgruppen. Hier müssen Sie einen Lambda-Abonnementfilter erstellen.

Als nächstes wählen Sie die gewünschte Lambda-Funktion und Sie können loslegen.

Wann immer CloudWatch diesen Protokollstream erhält, fungiert es jetzt als Auslöser zum Aufrufen der Lambda-Funktion.

EventBridge

Amazon EventBridge (früher bekannt als CloudWatch Events) ist ein AWS-Service, mit dem Sie die Ereignisregeln erstellen können, um einen bestimmten AWS-Service bei einem bestimmten Ereignis auszulösen, das in einem AWS-Konto auftritt.

Es gibt eine Vielzahl von Regeln, die Sie für AWS-Services (wie EC2-Instance-Erstellung oder RDS-Datenbankereignisse) sowie für Services von Drittanbietern (wie GitHub-Push-Event) festlegen können. Diese Regeln können weiter mit anderen Diensten wie Lambda-Funktionen derart verknüpft werden, dass immer dann, wenn diese Regel erfüllt ist, sie die Lambda-Funktion aufruft.

Wenn Sie bereits eine EventBridge-Regel festgelegt haben, können Sie diese Regel einfach als Auslöser zu Ihrer Lambda-Funktion hinzufügen. Wählen Sie die EventBridge als Auslöser aus und geben Sie einfach den Namen der Regel an.

Als Auslöser wird hier eine bestehende Regel hinzugefügt, Sie könnten aber auch an dieser Stelle eine Regel erstellen.

DynamoDB

Sie haben vielleicht gewusst, dass DynamoDB nur eine NoSQL-Datenbank ist und in AWS als vollständig separater Service angezeigt wird. Dies ist eine vollständig konfigurierte serverlose Datenbank, in der Sie direkt mit dem Erstellen von Tabellen beginnen können. Diese DynamoDB-Tabellen können so konfiguriert werden, dass sie als Trigger zum Aufrufen der Lambda-Funktionen fungieren.

Die Daten aus DynamoDB können als Eingabe in Form von Batches in Lambda geladen und mit dem in Lambda bereitgestellten Code verarbeitet werden.

Kinesis

Wenn Sie Echtzeitdaten mit hoher Geschwindigkeit sammeln und analysieren möchten, können Sie von AWS Kinesis profitieren. Angenommen, Sie möchten die von den Kinesis-Datenströmen erfassten Daten mithilfe der Lambda-Funktionen verarbeiten. Sie müssen einfach Ihre Lambda-Funktion jedes Mal auslösen, wenn die Daten von Kinesis aufgezeichnet werden.

Sie sind gerade damit fertig, Ihren Kinesis-Datenstrom zum Aufrufen der Lambda-Funktion zu konfigurieren.

SNS

Es ist einfach ein Benachrichtigungsdienst, der üblicherweise verwendet wird, um Benachrichtigungen von einem AWS-Dienst zum anderen zu senden, da es manchmal keine Möglichkeit gibt, die Benachrichtigungen direkt von einem Dienst zum anderen zu konfigurieren. Mit diesem Dienst können die Lambda-Funktionen ausgelöst werden.

Erstellen Sie zuerst ein SNS-Thema und verwenden Sie es dann zum Aufrufen Ihrer Lambda-Funktion.

Sie müssen den Namen Ihres SNS-Themas auswählen. Es gibt keine weiteren Konfigurationen oder Einstellungen.

Fazit

Amazon Lambda ist wirklich ein Durchbruch in der Cloud-Architektur. Die Anwendungsentwicklung und -bereitstellung war noch nie so einfach und unkompliziert. Es ermöglicht Ihnen, Ihren Code einfach in einem beliebigen gängigen Framework zu erstellen und Ihren Code in Lambda hochzuladen, und er wird ausgeführt. Es gibt eine lange Liste anderer Dienste, die mit AWS Lambda gekoppelt werden können und als Auslöser dienen, Ihre Lambda-Funktion nur dann aufzurufen, wenn dies erforderlich ist. Es fallen keine laufenden Kosten für den Server an, aber Sie werden abhängig von der Anzahl der Trigger und der Zeit der Codeausführung abgerechnet.