Was Sind Lambda-Funktionen, Und Wie Verwenden Sie Sie?

0
215

AWS Lambda-Funktionen sind eine Möglichkeit, um code auszuführen, ohne die Bereitstellung oder die Verwaltung Ihrer eigenen Server. Eher als der Betrieb eines immer-online-Anwendung, die Sie ausführen, eine einzelne Funktion in der cloud, die ausgelöst werden kann, in Reaktion auf die API-Veranstaltungen oder anderen Ereignissen in Ihrem AWS-Konto.

Wie Benutzt Man Lambda-Funktionen?

Lambda ist ein compute-service, schlicht und einfach, und es ist wahrscheinlich die einfachste von allen. Anstatt Miete einen server mit einer bestimmten Anzahl von cores und RAM, Sie laden Sie einfach Ihren code ein, und führen Sie die Funktion. In der Regel, Sie nicht führen Sie es manuell aus; statt, Sie werden es zu laufen, aufgrund der Handlungen, die von anderen AWS-services. Zum Beispiel, das ausführen einer Funktion, um die Größe der Bilder verändern, wenn eine neue Datei in den S3 – (eine Methode, die von der Seattle Times mit großer Wirkung), oder das Abfragen einer Datenbank, wenn eine Anforderung gesendet, um die API-Gateway.

Computer die Ressourcen automatisch auf die Funktion ausgeführt, und es wird soviel Speicher verwenden wie es braucht so lange, wie die Aufgabe geht weiter. Du bist einfach berechnet basierend auf der Anzahl der Funktionsaufrufe und die Menge an Speicher pro Aufruf verwendet.

Das macht die Lambda-hoch flexibel für den Einsatz als backend. Traditionelle Anwendungen sind meist monolithisch; Sie haben einen server (oder eine Gruppe von Ihnen) Ihre Anwendung ausgeführt wird. Sie können separate Server für web-hosting, Datenbanken, und andere Dinge, aber viele Anwendungen sind diese Art gebaut—eine große ausführbare Datei, viele bewegliche Teile.

Mit allem, was so miteinander verbunden, und ohne strenge Ordnung, das kann schmutzig wirklich schnell. Es ist auch schwieriger zu skalieren effektiv, wenn Sie feststellen, dass ein Teil deiner Anwendung ist der Flaschenhals, es kann schwierig sein, zu beseitigen, ohne die Skalierung der gesamten Anwendung und eine starke Erhöhung Ihrer AWS-Rechnung in den Prozess.

Stattdessen können Sie schneiden den Flaschenhals sich ganz aus, und verschieben Sie es auf Lambda. Nachdem alle, Lambda kümmert sich nicht, wenn Sie führen Sie Ihre Funktion zehn mal im Monat, oder zehn Millionen mal in einem Monat.

Dies ermöglicht Lambda zu hoch effizient, und, wenn richtig implementiert, können Sie sparen eine Menge Geld. Adam Pash von Postlight war in der Lage, drop Ihre monatlichen AWS-Rechnung von über $10.000 nur $370, nur durch die Umstellung auf Lambda und die Speichernutzung zu optimieren.

Es ist zwar nicht so krass, oder einfach für jede Anwendung, die Lambda hat einige große Vorteile, dass es ein entscheidender Bestandteil der AWS-lineup von compute-services.

Für nicht-kritische Anwendungen, es stellt auch eine sehr günstige Möglichkeit, eine Anwendung ausführen, muss der API-Anfragen. Zum Beispiel könnten Sie dienen eine statische web-app, die ohne Server, indem Sie Ihre website in S3, ihm zu dienen durch CloudFront, und die Verbindung zu einem Lambda-backend durch API-Gateway, die die Kommunikation mit einer DynamoDB-Tabelle.

Wie Viel Kosten Sie?

Wie die meisten von AWS Lambda Preisgestaltung ist sehr viel “pay-as-you-go” – Modell. Anstatt zu bezahlen einen einheitlichen Preis für den gesamten server, zahlen Sie nur für die exakte Menge an Ressourcen, die Ihre Anwendung—sind Sie nie bezahlen für idle-Zeit, nicht einmal eine Sekunde von ihm. Dies macht die Lambda sehr effizient ist, auf der Oberseite des seins in der Lage, Engpässe zu beseitigen, die in monolithischen Anwendungen.

Lambda-Gebühren sind wie folgt, für die us-east-1:

  • $0,20 pro 1M Anfragen
  • $0.000016667 für jeden GB-zweite

Die erste charge der am meisten Sinn macht; wenn Sie haben 100 Millionen Zugriffe in einem Monat, werden Sie zahlen einen $20 Gebühr für das.

Die zweite Ladung ist viel mehr verwirrend. Im Grunde hast du berechnet, basierend auf dem memory-Nutzung Ihrer Funktionen, denn das ist in der Regel der begrenzende Faktor für die AWS. Wenn die Funktion startet, reserviert, 1024 MB RAM, und läuft für eine Sekunde, zahlen Sie $0.000001667 für, die. Das ist eine ziemlich geringe Zahl, aber über 1M Anfragen, es ist $1.667.

Natürlich, werden Sie wollen, wählen Sie eine Laufzeit, Speicher effizient. NodeJS wird Häufig verwendet, da es ziemlich leicht im Vergleich zu runtimes wie Java. Jedoch, Java schneller sein können für Aufgaben, die länger dauern, und da Sie nicht zahlen für die Zeit der Initialisierung der Laufzeitumgebung (d.h., ein “kalt-start”), ist es nicht immer so schlimm wie es aussieht auf dem Papier.

Es ist alles ein Balance-Spiel, aber Sie wollen, zu minimieren, sind zwei Dinge—Speicherverbrauch, und die Zeit läuft die Funktion. Es gibt keine explizite Ladung für mehr Funktionen, aber Sie sind aufgeladen von der zweiten, pro GB, also 256 MB Funktion, die ausgeführt wird, für zwei Sekunden kostet Sie das gleiche wie ein 512 MB-Funktion, die ausgeführt wird, für eine.

Erste Schritte

Melden Sie sich in Ihrem AWS-Konto und den Kopf über die Lambda-Management-Konsole.

Es gibt zwei primäre tabs hier. Die erste ist für Anwendungen; Lambda-Anwendungen verwalten Sie mehrere Funktionen und sind speziell bereitgestellt automatisch mit Hilfe eines SAM-Vorlage. Dies ermöglicht Ihnen, verfolgt werden, die auf Git und version verwaltet, das hilft immens bei der Arbeit mit Hunderten von Funktionen.

Der zweite tab ist für die einzelnen Funktionen. Wenn Sie nur eine standalone-Lambda-Funktion, oder einfach nur Herumspielen, um das Gefühl für Sie, sollten Sie hier starten, und erstellen Sie eine Funktion aus dem nichts, da es viel einfacher.

Sie können erstellen Sie eine neue Funktion aus der “Funktionen” – tab:

Sie haben ein paar Optionen hier. Sie können die Funktion komplett neu, die wird initialisiert, indem die Funktion mit nichts mehr als ein hello world. Sie können auch wählen, verwenden Sie eine vorgefertigte Vorlage, herunterladen oder sogar eine Funktion aus der Lambda-serverlose Anwendung repository.

Wenn Sie es von sich selbst, müssen Sie wählen eine Laufzeit aus. Lambda hat ein paar zu Auswahl standardmäßig:

Sie können auch bringen Sie Ihre eigenen Laufzeitumgebung ausgeführt, welche Sprache Sie wollen.

Sobald es erstellt, können Sie es Bearbeiten, von der Funktion der Seite. Die standard-NodeJS-Funktion exportiert eine Prozedur, die aufgerufen wird, wenn Sie die Funktion auf Ereignisse reagiert.

Wir empfehlen die Verwendung von AWS Cloud9 IDE für die Arbeit mit Lambda-Funktionen. Es ist eine web-basierte IDE, basiert auf der editor verwendet die Standard-Funktionen-editor, aber mit dem zusätzlichen Vorteil, viel leichter testen und Debuggen.

Wenn Sie möchten, um Ihre Funktion zu reagieren, um API-Anfragen, die einfachste Methode, um das zu setzen, ist mit API-Gateway. Sie können erstellen Sie eine neue API und route bestimmte Endpunkte direkt auf einen bestimmten Lambda-Funktion, die die Anfrage verarbeiten und eine Antwort zurück.

Andernfalls können Sie einen trigger in der “Designer” an der Spitze, wie immer, wenn ein Objekt in einem bestimmten S3-bucket. Sie können auch geben Sie ein Ziel an, dass die Ergebnisse zugeschickt bekommen, wie eine SQS-Warteschlange, SNS-Thema, oder anderen Lambda-Funktion.

Die Lambda-Funktion wird ausgeführt, dass mit den Privilegien, die ihm durch die Ausführung der Rolle, die für Sie erstellt wurde. Wenn Sie Zugriff auf andere AWS-Ressourcen, die Sie brauchen, um es die Erlaubnis geben, dies zu tun in der IAM-Management-Konsole.