Was ist AWS Lambda? - AWS Lambda

Was ist AWS Lambda?

Lambda ist ein Datenverarbeitungsservice, mit dem Sie Code ohne Bereitstellung oder Verwaltung von Servern ausführen können. Lambda führt Ihren Code auf einer hochverfügbaren Recheninfrastruktur aus und erledigt die gesamte Verwaltung der Rechenressourcen, einschließlich Server- und Betriebssystemwartung, Kapazitätsbereitstellung und automatischer Skalierung, Codeüberwachung und -protokollierung. Mit Lambda können Sie Code für praktisch jede Art von Anwendung oder Backend-Service ausführen. Sie müssen lediglich Ihren Code in einer der von Lambda unterstützten Sprachen angeben.

Anmerkung

In der AWS Lambda Developer Guide gehen wir davon aus, dass Sie Erfahrung mit dem Codieren, Kompilieren und Bereitstellen von Programmen mit einer der unterstützten Sprachen haben.

Sie organisieren Ihren Code in Lambda-Funktionen. Lambda führt Ihre Funktion nur bei Bedarf aus und skaliert automatisch, von einigen Anfragen pro Tag bis zu Tausenden pro Sekunde. Sie bezahlen nur für die Datenverarbeitungszeit, die Sie wirklich nutzen,—und es werden keine Gebühren in Rechnung gestellt, wenn Ihr Code nicht ausgeführt wird.

Sie können Ihre Lambda-Funktionen über die Lambda-API aufrufen oder Lambda kann Ihre Funktionen als Reaktion auf Ereignisse anderer AWS-Services ausführen. Sie können Lambda beispielsweise verwenden, um:

  • Auslöser für die Datenverarbeitung für AWS-Services wie Amazon Simple Storage Service (Amazon S3) und Amazon DynamoDB zu erstellen.

  • In Amazon Kinesis gespeicherte Streaming-Daten zu verarbeiten.

  • Ihr eigenes Backend zu erstellen, das mit AWS-Skalierbarkeit, Leistung und Sicherheit arbeitet.

Lambda ist ein Dienst mit hoher Verfügbarkeit. Weitere Informationen finden Sie unter AWS Lambda Lambda Service Level Agreement.

Wann sollte ich Lambda verwenden?

Lambda ist ein idealer Datenverarbeitungsservice für viele Anwendungsszenarien, sofern Sie Ihren Anwendungscode in Sprachen in der Lambda-Standardlaufzeitumgebung sowie mit den von Lambda bereitgestellten Ressourcen ausführen können.

Wenn Sie Lambda verwenden, sind Sie nur für Ihren Code verantwortlich. Lambda verwaltet die Datenverarbeitungsflotte, die eine Kombination aus Speicher, CPU, Netzwerk und anderen Ressourcen zur Ausführung Ihres Codes bietet. Da diese Ressourcen von Lambda verwaltet werden, können Sie sich nicht bei Datenverarbeitungs-Instances anmelden oder das Betriebssystem für die bereitgestellten Laufzeiten anpassen. Lambda führt in Ihrem Namen operative und administrative Aktivitäten durch, einschließlich der Verwaltung von Kapazität, Überwachung und Protokollierung Ihrer Lambda-Funktionen.

Wenn Sie Ihre eigenen Datenverarbeitungsressourcen verwalten müssen, bietet AWS auch andere Datenverarbeitungsservices zur Befriedigung Ihrer Bedürfnisse an. Zum Beispiel:

  • Amazon Elastic Compute Cloud (Amazon EC2) bietet eine Vielzahl von EC2-Instance-Typen zur Auswahl. Sie können damit Betriebssysteme, Netzwerk- und Sicherheitseinstellungen sowie den gesamten Software-Stack anpassen. Sie sind verantwortlich für die Bereitstellung von Kapazität, die Überwachung des Zustands und der Leistung der Flotte und die Verwendung von Availability Zones für Fehlertoleranz.

  • AWS Elastic Beanstalk ermöglicht es Ihnen, Anwendungen bereitzustellen und auf Amazon EC2 zu skalieren. Sie behalten das Eigentum und die volle Kontrolle über die zugrunde liegenden EC2-Instances.

Lambda-Merkmale

Die folgenden Hauptfunktionen helfen Ihnen bei der Entwicklung von Lambda-Anwendungen, die skalierbar, sicher und leicht erweiterbar sind:

Gleichzeitigkeit und Skalierungskontrollen

Gleichzeitigkeit und Skalierungskontrollen wie Gleichzeitigkeitsbeschränkungen und bereitgestellte Gleichzeitigkeit verschaffen Ihnen eine präzise Kontrolle über die Skalierung und Reaktionsfähigkeit Ihrer Produktionsanwendungen.

Als Container-Images definierte Funktionen

Verwenden Sie Ihre bevorzugten Container-Image-Tools, Workflows und Abhängigkeiten, um Ihre Lambda-Funktionen zu erstellen, zu testen und bereitzustellen.

Codesignatur

Code Signing for Lambda bietet Vertrauens- und Integritätskontrollen, mit denen Sie überprüfen können, ob nur von genehmigten Entwicklern veröffentlichter unveränderter Code in Ihren Lambda-Funktionen bereitgestellt wird.

Lambda-Erweiterungen

Sie können Lambda -Erweiterungen verwenden, um Ihre Lambda-Funktionen zu erweitern. Verwenden Sie beispielsweise Erweiterungen, um Lambda einfacher in Ihre bevorzugten Überwachungs-, Beobachtbarkeits-, Sicherheits und Governance-Tools zu integrieren.

Funktionsentwürfe

Ein Funktions-Entwurf enthält Beispielcode, der zeigt, wie man Lambda mit anderen AWS-Services oder Drittanbieteranwendungen verwendet. Entwürfe enthalten Beispielcode und Funktionskonfigurationsvoreinstellungen für Node.js- und Python-Laufzeiten.

Zugriff auf die Datenbank

Ein Datenbank-Proxy verwaltet einen Pool von Datenbankverbindungen und leitet Abfragen von einer Funktion weiter. So kann eine Funktion hohe Gleichzeitigkeit ohne überlastende Datenbankverbindungen erreichen.

Zugriff auf Dateisysteme

Sie können eine Funktion konfigurieren, um ein Amazon Elastic File System (Amazon EFS)-Dateisystem in ein lokales Verzeichnis zu mounten. Mit Amazon EFS kann Ihr Funktionscode auf freigegebene Ressourcen sicher und mit hoher Nebenläufigkeit zugreifen und diese ändern.

Erste Schritte mit Lambda

Um effektiv mit Lambda arbeiten zu können, benötigen Sie Programmiererfahrung und Fachwissen in den folgenden Bereichen:

  • Linux OS und Befehle sowie Konzepte wie Prozesse, Threads und Dateiberechtigungen.

  • Cloud-Konzepte und IP-Netzwerkkonzepte (für öffentliche und private Netzwerke).

  • Verteilte Datenverarbeitungs-Konzepte wie HTML als IPC, Warteschlangen, Messaging, Benachrichtigungen und Parallelität.

  • Vertrautheit mit Sicherheitsservices und -konzepten: AWS Identity and Access Management (IAM) und Zugangskontrollprinzipien sowie AWS Key Management Service (AWS KMS) und öffentlicher Schlüsselinfrastruktur.

  • Vertrautheit mit wichtigen Services, die mit Lambda: Amazon API Gateway, Amazon S3, Amazon Simple Queue Service (Amazon SQS) und DynamoDB interagieren.

  • Konfigurieren von EC2-Instances mit Linux.

Wenn Sie erstmaliger Benutzer von Lambda sind, empfehlen wir Ihnen, zum Erlernen der Grundlagen mit den folgenden Themen zu beginnen:

  1. Lesen Sie die Lambda Produktübersicht und gehen Sie auf die Seite Lambda Erste Schritte.

  2. Um eine Lambda-Funktion mit der Lambda Konsole zu erstellen und zu testen, probieren Sie die konsolenbasierte Übung Erste Schritte aus. In dieser Übung lernen Sie das Lambda-Programmiermodell und andere Konzepte kennen.

  3. Wenn Sie mit den Workflows für Container-Images vertraut sind, versuchen Sie die Übung Erste Schritte, um eine Lambda-Funktion zu erstellen, die als Container-Image definiert ist.

AWS bietet außerdem die folgenden Ressourcen, um mehr über serverlose Anwendungen und Lambda zu erfahren:

Lambda lässt sich in andere AWS-Services integrieren, um Funktionen auf Grundlage von durch Sie angegebenen Ereignissen aufzurufen. Zum Beispiel:

  • Verwenden Sie die Option API Gateway, um ein sicheres und skalierbares Gateway für Web-APIs bereitzustellen, das HTTP-Anfragen an Lambda-Funktionen weiterleitet.

  • Bei Services, die eine Warteschlange oder einen Datenstrom generieren (wie DynamoDB und Kinesis), fragt Lambda die Warteschlange oder den Datenstrom vom Service ab und ruft Ihre Funktion zur Verarbeitung der empfangenen Daten auf.

  • Definieren Sie Amazon S3-Ereignisse, die eine Lambda-Funktion zur Verarbeitung von Amazon S3-Objekten aufruft, z. B. wenn ein Objekt erstellt oder gelöscht wird.

  • Verwenden Sie eine Lambda-Funktion, um Amazon SQS-Nachrichten oder Amazon Simple Notification Service (Amazon SNS)-Benachrichtigungen zu verarbeiten.

  • Verwenden Sie AWS Step Functions, um Lambda-Funktionen mit serverlosen Workflows zu verbinden, die State Machines genannt werden.

Zugriff auf Lambda

Sie können Ihre Lambda-Funktionen mit einer der folgenden Schnittstellen erstellen, aufrufen und verwalten:

  • AWS-Managementkonsole – Bietet Ihnen eine Webschnittstelle für den Zugriff auf Ihre Funktionen. Weitere Informationen finden Sie unter Konfigurieren von Funktionen in der Konsole.

  • AWS Command Line Interface (AWS CLI) – Bietet Befehle für zahlreiche AWS-Services, wie z. B. Lambda, und wird unter Windows, MacOS und Linux unterstützt. Weitere Informationen finden Sie unter Verwenden von AWS Lambda mit der AWS Command Line Interface.

  • AWS-SDKs – Stellen Sie sprachspezifische APIs bereit und verwalten Sie viele der Verbindungsdetails, z. B. Signaturberechnung, Bearbeitung von Wiederholungsversuchen und Fehlerbehandlung. Weitere Informationen finden Sie unter AWS-SDKs.

  • AWS CloudFormation – Ermöglicht es Ihnen, Vorlagen zu erstellen, die Ihre Lambda-Anwendungen definieren. Weitere Informationen finden Sie unter AWS Lambda-Anwendungen. AWS CloudFormation unterstützt auch das AWS Cloud Development Kit (CDK).

  • AWS Serverless Application Model (AWS SAM) – Bietet Vorlagen und eine CLI zur Konfiguration und Verwaltung von serverlosen AWS-Anwendungen. Weitere Informationen finden Sie unter AWS SAM.

Preise für Lambda

Für das Erstellen von Lambda-Funktionen fallen keine zusätzlichen Gebühren an. Es fallen Gebühren für die Ausführung einer Funktion und für die Datenübertragung zwischen Lambda und anderen AWS-Services an. Für einige optionale Lambda-Funktionen (z. B. bereitgestellte Gleichzeitigkeit) fallen ebenfalls Gebühren an. Weitere Informationen finden Sie unter AWS Lambda- Preise.