Erste Schritte mit Lambda - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erste Schritte mit Lambda

für Ihre ersten Schritte mit Lambda verwenden Sie die Lambda-Konsole, um eine Funktion zu erstellen. In wenigen Minuten können Sie eine Funktion erstellen und bereitstellen und sie in der Konsole testen.

Bei der Durchführung des Tutorials lernen Sie einige grundlegende Lambda-Konzepte kennen, z. B. wie Sie Argumente an Ihre Funktion mithilfe des Lambda-Ereignisobjekts übergeben. Sie erfahren auch, wie Sie Protokollausgaben von Ihrer Funktion zurückgeben und die Aufrufprotokolle Ihrer Funktion in CloudWatch -Protokollen anzeigen.

Der Einfachheit halber erstellen Sie Ihre Funktion entweder mit der Python- oder Node.js-Laufzeit. Mit diesen interpretierten Sprachen können Sie Funktionscode direkt im integrierten Code-Editor der Konsole bearbeiten. Bei kompilierten Sprachen wie Java und C# müssen Sie ein Bereitstellungspaket auf Ihrem lokalen Build-Rechner erstellen und es in Lambda hochladen. Weitere Informationen zum Bereitstellen von Funktionen in Lambda mithilfe anderer Laufzeiten finden Sie unter den Links im Abschnitt Zusätzliche Ressourcen und nächste Schritte.

Tipp

Weitere Informationen zum Erstellen von Serverless-Lösungen finden Sie im Serverless-Benutzerhandbuch.

Voraussetzungen

Wenn Sie kein AWS-Konto haben, führen Sie die folgenden Schritte zum Erstellen durch.

Anmeldung für ein AWS-Konto
  1. Öffnen Sie https://portal.aws.amazon.com/billing/signup.

  2. Folgen Sie den Online-Anweisungen.

    Bei der Anmeldung müssen Sie auch einen Telefonanruf entgegennehmen und einen Verifizierungscode über die Telefontasten eingeben.

    Wenn Sie sich für ein AWS-Konto anmelden, wird ein Root-Benutzer des AWS-Kontos erstellt. Der Root-Benutzer hat Zugriff auf alle AWS-Services und Ressourcen des Kontos. Als bewährte Sicherheitsmethode weisen Sie einem Administratorbenutzer Administratorzugriff zu und verwenden Sie nur den Root-Benutzer, um Aufgaben auszuführen, die Root-Benutzerzugriff erfordern.

AWS sendet Ihnen eine Bestätigungs-E-Mail, sobald die Anmeldung abgeschlossen ist. Sie können jederzeit Ihre aktuelle Kontoaktivität anzeigen und Ihr Konto verwalten. Rufen Sie dazu https://aws.amazon.com/ auf und klicken Sie auf Mein Konto.

Nachdem Sie sich für ein AWS-Kontoangemeldet haben, sichern Sie Ihr Root-Benutzer des AWS-Kontos, aktivieren Sie AWS IAM Identity Centerund erstellen Sie einen administrativen Benutzer, damit Sie nicht den Root-Benutzer für alltägliche Aufgaben verwenden.

Schützen Ihres Root-Benutzer des AWS-Kontos
  1. Melden Sie sich bei der AWS Management Console als Kontobesitzer an, indem Sie Root-Benutzer auswählen und Ihre AWS-Konto-E-Mail-Adresse eingeben. Geben Sie auf der nächsten Seite Ihr Passwort ein.

    Hilfe bei der Anmeldung mit dem Root-Benutzer finden Sie unter Anmelden als Root-Benutzer im AWS-AnmeldungBenutzerhandbuch zu .

  2. Aktivieren Sie die Multi-Faktor-Authentifizierung (MFA) für den Root-Benutzer.

    Anweisungen dazu finden Sie unter Aktivieren eines virtuellen MFA-Geräts für den Root-Benutzer Ihres AWS-Konto (Konsole) im IAM-Benutzerhandbuch.

Erstellen eines Administratorbenutzers
  1. Aktivieren von IAM Identity Center.

    Anweisungen finden Sie unter Aktivieren AWS IAM Identity Center im AWS IAM Identity Center Benutzerhandbuch.

  2. Im IAM Identity Center gewähren Sie einem administrativen Benutzer administrativen Zugriff.

    Ein Tutorial zur Verwendung von IAM-Identity-Center-Verzeichnis als Identitätsquelle finden Sie unter Benutzerzugriff mit dem standardmäßigen IAM-Identity-Center-Verzeichnis konfigurieren im AWS IAM Identity Center-Benutzerhandbuch.

Anmelden als Administratorbenutzer
  • Um sich mit Ihrem IAM-Identity-Center-Benutzer anzumelden, verwenden Sie die Anmelde-URL, die an Ihre E-Mail-Adresse gesendet wurde, als Sie den IAM-Identity-Center-Benutzer erstellt haben.

    Hilfe bei der Anmeldung mit einem IAM-Identity-Center-Benutzer finden Sie unter Anmelden beim AWS-Zugangsportal im AWS-Anmeldung Benutzerhandbuch zu.

Erstellen einer Lambda-Funktion mit der Konsole

In diesem Beispiel besitzt Ihre Funktion ein JSON-Objekt, das zwei ganzzahlige Werte mit der Bezeichnung "length" und "width" enthält. Die Funktion multipliziert diese Werte, um eine Fläche zu berechnen, und gibt diese als JSON-Zeichenfolge zurück.

Ihre Funktion gibt auch den berechneten Bereich zusammen mit dem Namen ihrer CloudWatch Protokollgruppe aus. Später im Tutorial erfahren Sie, wie Sie mithilfe von -CloudWatch Protokollen Datensätze über den Aufruf Ihrer Funktionen anzeigen.

Um Ihre Funktion zu erstellen, erstellen Sie zunächst mit der Konsole eine grundlegende Hello-World-Funktion. Im folgenden Schritt fügen Sie dann Ihren eigenen Funktionscode hinzu.

So erstellen Sie eine Hello-World-Lambda-Funktion mit der Konsole
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie Funktion erstellen.

  3. Wählen Sie Verfassen von Grund auf aus.

  4. Geben Sie im Bereich Grundlegende Informationen als Funktionsname myLambdaFunction ein.

  5. Wählen Sie als Laufzeit entweder Node.js 20.x oder Python 3.12

  6. Belassen Sie die Architektur auf x86_64 und wählen Sie Funktion erstellen.

Lambda erstellt eine Funktion, die die Nachricht Hello from Lambda! zurückgibt. Lambda erstellt außerdem eine Ausführungsrolle für Ihre Funktion. Eine Ausführungsrolle ist eine AWS Identity and Access Management (IAM)-Rolle, die einer Lambda-Funktion die Berechtigung zum Zugriff auf AWS-Services und Ressourcen gewährt. Für Ihre Funktion gewährt die von Lambda erstellte Rolle grundlegende Berechtigungen zum Schreiben in - CloudWatch Protokolle.

Sie verwenden nun den integrierten Code-Editor der Konsole, um den von Lambda erstellten Hello-World-Code durch Ihren eigenen Funktionscode zu ersetzen.

Node.js
So ändern Sie den Code in der Konsole
  1. Wählen Sie die Registerkarte Code.

    Im integrierten Code-Editor der Konsole sollten Sie den von Lambda erstellten Funktionscode sehen. Wenn die Registerkarte index.mjs im Code-Editor nicht angezeigt wird, wählen Sie index.mjs im Datei-Explorer aus, wie im folgenden Diagramm gezeigt.

    
                  Diagramm, das den Konsolencode-Editor mit einem Pfeil anzeigt, der die index.mjs-Datei im Datei-Explorer hervorhebt
  2. Fügen Sie den folgenden Code in die Registerkarte index.mjs ein und ersetzen Sie den von Lambda erstellten Code.

    export const handler = async (event, context) => { const length = event.length; const width = event.width; let area = calculateArea(length, width); console.log(`The area is ${area}`); console.log('CloudWatch log group: ', context.logGroupName); let data = { "area": area, }; return JSON.stringify(data); function calculateArea(length, width) { return length * width; } };
  3. Wählen Sie Bereitstellen aus, um den Code Ihrer Funktion zu aktualisieren. Wenn Lambda die Änderungen bereitgestellt hat, zeigt die Konsole ein Banner an, das Sie über die erfolgreiche Aktualisierung Ihrer Funktion informiert.

Den Funktionscode verstehen

Bevor Sie zum nächsten Schritt übergehen, sollten Sie sich einen Moment Zeit nehmen, um den Funktionscode zu betrachten und einige wichtige Lambda-Konzepte zu verstehen.

  • Der Lambda-Handler:

    Ihre Lambda-Funktion enthält eine Node.js-Funktion mit dem Namen handler. Eine Lambda-Funktion in Node.js kann mehr als eine Node.js-Funktion enthalten, aber die Handler-Funktion ist immer der Einstiegspunkt in Ihren Code. Wenn Ihre Funktion aufgerufen wird, führt Lambda diese Methode aus.

    Wenn Sie Ihre Hello-World-Funktion über die Konsole erstellt haben, hat Lambda den Namen der Handler-Methode für Ihre Funktion automatisch auf handler festgelegt. Achten Sie darauf, den Namen dieser Node.js-Funktion nicht zu bearbeiten. Andernfalls kann Lambda Ihren Code nicht ausführen, wenn Sie Ihre Funktion aufrufen.

    Weitere Informationen zum Lambda-Handler in Node.js finden Sie unter AWS Lambda-Funktions-Handler in Node.js.

  • Das Lambda-Ereignisobjekt:

    Die Funktion handler besitzt zwei Argumente, event und context. Ein Ereignis in Lambda ist ein JSON-formatiertes Dokument, das Daten enthält, die von Ihrer Funktion verarbeitet werden sollen.

    Wenn Ihre Funktion von einem anderen AWS-Service aufgerufen wird, enthält das Ereignisobjekt Informationen über das Ereignis, das den Aufruf verursacht hat. Wenn beispielsweise ein Amazon Simple Storage Service (Amazon S3)-Bucket beim Hochladen eines Objekts Ihre Funktion aufruft, enthält das Ereignis den Namen des Amazon-S3-Buckets und den Objektschlüssel.

    In diesem Beispiel erstellen Sie ein Ereignis in der Konsole, indem Sie ein JSON-formatiertes Dokument mit zwei Schlüssel-Wert-Paaren eingeben.

  • Das Lambda-Kontextobjekt:

    Das zweite Argument, das Ihre Funktion besitzt, ist context. Lambda übergibt das Kontextobjekt automatisch an Ihre Funktion. Das Kontextobjekt enthält Informationen über den Aufruf der Funktion und die Ausführungsumgebung.

    Mit dem Kontextobjekt können Sie zu Überwachungszwecken Informationen über den Aufruf Ihrer Funktion ausgeben. In diesem Beispiel verwendet Ihre Funktion den -logGroupNameParameter, um den Namen ihrer CloudWatch Protokollgruppe auszugeben.

    Weitere Informationen zum Lambda-Kontextobjekt in Node.js finden Sie unter AWS Lambda-Context-Objekt in Node.js.

  • Protokollierung in Lambda:

    Mit Node.js können Sie Konsolenmethoden wie console.log und console.error verwenden, um Informationen an das Protokoll Ihrer Funktion zu senden. Der Beispielcode verwendet -console.logAnweisungen, um den berechneten Bereich und den Namen der CloudWatch Logs-Gruppe der Funktion auszugeben. Sie können auch jede Protokollierungsbibliothek verwenden, die in stdout oder stderr schreibt.

    Weitere Informationen hierzu finden Sie unter AWS Lambda-Funktionsprotokollierung in Node.js. Informationen zum Protokollieren in anderen Laufzeiten finden Sie auf den Seiten „Erstellen mit“ für die Laufzeiten, an denen Sie interessiert sind.

Python
So ändern Sie den Code in der Konsole
  1. Wählen Sie die Registerkarte Code.

    Im integrierten Code-Editor der Konsole sollten Sie den von Lambda erstellten Funktionscode sehen. Wenn die Registerkarte lambda_function.py im Code-Editor nicht angezeigt wird, wählen Sie lambda_function.py im Datei-Explorer aus, wie im folgenden Diagramm dargestellt.

    
                  Diagramm, das den Konsolencode-Editor mit einem Pfeil anzeigt, der die Datei lambda_function.py im Datei-Explorer hervorhebt
  2. Fügen Sie den folgenden Code in die Registerkarte lambda_function.py ein und ersetzen Sie den von Lambda erstellten Code.

    import json import logging logger = logging.getLogger() logger.setLevel(logging.INFO) def lambda_handler(event, context): # Get the length and width parameters from the event object. The # runtime converts the event object to a Python dictionary length=event['length'] width=event['width'] area = calculate_area(length, width) print(f"The area is {area}") logger.info(f"CloudWatch logs group: {context.log_group_name}") # return the calculated area as a JSON string data = {"area": area} return json.dumps(data) def calculate_area(length, width): return length*width
  3. Wählen Sie Bereitstellen aus, um den Code Ihrer Funktion zu aktualisieren. Wenn Lambda die Änderungen bereitgestellt hat, zeigt die Konsole ein Banner an, das Sie über die erfolgreiche Aktualisierung Ihrer Funktion informiert.

Den Funktionscode verstehen

Bevor Sie zum nächsten Schritt übergehen, sollten Sie sich einen Moment Zeit nehmen, um den Funktionscode zu betrachten und einige wichtige Lambda-Konzepte zu verstehen.

  • Der Lambda-Handler:

    Ihre Lambda-Funktion enthält eine Python-Funktion mit dem Namen lambda_handler. Eine Lambda-Funktion in Python kann mehr als eine Python-Funktion enthalten, aber die Handler-Funktion ist immer der Einstiegspunkt in Ihren Code. Wenn Ihre Funktion aufgerufen wird, führt Lambda diese Methode aus.

    Wenn Sie Ihre Hello-World-Funktion über die Konsole erstellt haben, hat Lambda den Namen der Handler-Methode für Ihre Funktion automatisch auf lambda_handler festgelegt. Achten Sie darauf, den Namen dieser Python-Funktion nicht zu bearbeiten. Andernfalls kann Lambda Ihren Code nicht ausführen, wenn Sie Ihre Funktion aufrufen.

    Weitere Informationen zum Lambda-Handler in Python finden Sie unter Lambda-Funktions-Handler in Python.

  • Das Lambda-Ereignisobjekt:

    Die Funktion lambda_handler besitzt zwei Argumente, event und context. Ein Ereignis in Lambda ist ein JSON-formatiertes Dokument, das Daten enthält, die von Ihrer Funktion verarbeitet werden sollen.

    Wenn Ihre Funktion von einem anderen AWS-Service aufgerufen wird, enthält das Ereignisobjekt Informationen über das Ereignis, das den Aufruf verursacht hat. Wenn beispielsweise ein Amazon Simple Storage Service (Amazon S3)-Bucket beim Hochladen eines Objekts Ihre Funktion aufruft, enthält das Ereignis den Namen des Amazon-S3-Buckets und den Objektschlüssel.

    In diesem Beispiel erstellen Sie ein Ereignis in der Konsole, indem Sie ein JSON-formatiertes Dokument mit zwei Schlüssel-Wert-Paaren eingeben.

  • Das Lambda-Kontextobjekt:

    Das zweite Argument, das Ihre Funktion besitzt, ist context. Lambda übergibt das Kontextobjekt automatisch an Ihre Funktion. Das Kontextobjekt enthält Informationen über den Aufruf der Funktion und die Ausführungsumgebung.

    Mit dem Kontextobjekt können Sie zu Überwachungszwecken Informationen über den Aufruf Ihrer Funktion ausgeben. In diesem Beispiel verwendet Ihre Funktion den -log_group_nameParameter, um den Namen ihrer CloudWatch Protokollgruppe auszugeben.

    Weitere Informationen zum Lambda-Kontextobjekt in Python finden Sie unter AWS Lambda-Context-Objekt in Python.

  • Protokollierung in Lambda:

    Mit Python können Sie entweder eine print-Anweisung oder eine Python-Protokollbibliothek verwenden, um Informationen an das Protokoll Ihrer Funktion zu senden. Um den Unterschied in der Erfassung zu veranschaulichen, werden im Beispielcode beide Methoden verwendet. In einer Produktionsanwendung empfehlen wir die Verwendung einer Protokollierungsbibliothek.

    Weitere Informationen hierzu finden Sie unter AWS Lambda-Funktionsprotokollierung in Python. Informationen zum Protokollieren in anderen Laufzeiten finden Sie auf den Seiten „Erstellen mit“ für die Laufzeiten, an denen Sie interessiert sind.

Aufrufen der Lambda-Funktion mithilfe der Konsole

Um Ihre Funktion über die Lambda-Konsole aufzurufen, erstellen Sie zunächst ein Testereignis, das Sie an Ihre Funktion senden. Beim Ereignis handelt es sich um ein JSON-formatiertes Dokument, das zwei Schlüssel-Wert-Paare mit den Schlüsseln "length" und "width". enthält.

So erstellen Sie das Testereignis
  1. Wählen Sie im Bereich Codequelle die Option Testen aus.

  2. Wählen Sie Neues Ereignis erstellen.

  3. Geben Sie für Ereignisname myTestEvent ein.

  4. Ersetzen Sie im Bereich JSON-Ereignis die Standardwerte, indem Sie Folgendes einfügen:

    { "length": 6, "width": 7 }
  5. Wählen Sie Speichern.

Sie testen jetzt Ihre Funktion und verwenden die Lambda-Konsole und CloudWatch Protokolle, um Datensätze über den Aufruf Ihrer Funktion anzuzeigen.

So testen Sie Ihre Funktion und zeigen die Aufrufdatensätze in der Konsole an
  • Wählen Sie im Bereich Codequelle die Option Testen aus. Wenn die Ausführung Ihrer Funktion abgeschlossen ist, werden die Antwort- und Funktionsprotokolle auf der Registerkarte Ausführungsergebnisse angezeigt. Sie sollten Ergebnisse ähnlich den folgenden sehen.

    Node.js
    Test Event Name myTestEvent Response "{\"area\":42}" Function Logs START RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a Version: $LATEST 2023-08-31T23:39:45.313Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO The area is 42 2023-08-31T23:39:45.331Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO CloudWatch log group: /aws/lambda/myLambdaFunction END RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a REPORT RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a Duration: 20.67 ms Billed Duration: 21 ms Memory Size: 128 MB Max Memory Used: 66 MB Init Duration: 163.87 ms Request ID 5c012b0a-18f7-4805-b2f6-40912935034a
    Python
    Test Event Name myTestEvent Response "{\"area\": 42}" Function Logs START RequestId: 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b Version: $LATEST The area is 42 [INFO] 2023-08-31T23:43:26.428Z 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b CloudWatch logs group: /aws/lambda/myLambdaFunction END RequestId: 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b REPORT RequestId: 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b Duration: 1.42 ms Billed Duration: 2 ms Memory Size: 128 MB Max Memory Used: 39 MB Init Duration: 123.74 ms Request ID 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b

In diesem Beispiel haben Sie Ihren Code mithilfe des Test-Features der Konsole aufgerufen. Dies bedeutet, dass Sie die Ausführungsergebnisse Ihrer Funktion direkt in der Konsole anzeigen können. Wenn Ihre Funktion außerhalb der Konsole aufgerufen wird, müssen Sie CloudWatch Protokolle verwenden.

So zeigen Sie die Aufrufdatensätze Ihrer Funktion in - CloudWatch Protokollen an
  1. Öffnen Sie die Seite Protokollgruppen der - CloudWatch Konsole.

  2. Wählen Sie die Protokollgruppe für Ihre Funktion (/aws/lambda/myLambdaFunction) aus. Dies ist der Name der Protokollgruppe, den Ihre Funktion an die Konsole ausgegeben hat.

  3. Wählen Sie auf der Registerkarte Protokollstreams den Protokollstream für den Aufruf Ihrer Funktion aus.

    Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:

    Node.js
    INIT_START Runtime Version: nodejs:20.v13 Runtime Version ARN: arn:aws:lambda:us-west-2::runtime:e3aaabf6b92ef8755eaae2f4bfdcb7eb8c4536a5e044900570a42bdba7b869d9 START RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 Version: $LATEST 2023-08-23T22:04:15.809Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO The area is 42 2023-08-23T22:04:15.810Z aba6c0fc-cf99-49d7-a77d-26d805dacd20 INFO CloudWatch log group: /aws/lambda/myLambdaFunction END RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 REPORT RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 Duration: 17.77 ms Billed Duration: 18 ms Memory Size: 128 MB Max Memory Used: 67 MB Init Duration: 178.85 ms
    Python
    INIT_START Runtime Version: python:3.12.v16 Runtime Version ARN: arn:aws:lambda:us-west-2::runtime:ca202755c87b9ec2b58856efb7374b4f7b655a0ea3deb1d5acc9aee9e297b072 START RequestId: 9d4096ee-acb3-4c25-be10-8a210f0a9d8e Version: $LATEST The area is 42 [INFO] 2023-09-01T00:05:22.464Z 9315ab6b-354a-486e-884a-2fb2972b7d84 CloudWatch logs group: /aws/lambda/myLambdaFunction END RequestId: 9d4096ee-acb3-4c25-be10-8a210f0a9d8e REPORT RequestId: 9d4096ee-acb3-4c25-be10-8a210f0a9d8e Duration: 1.15 ms Billed Duration: 2 ms Memory Size: 128 MB Max Memory Used: 40 MB

Bereinigen

Wenn Sie mit der Beispielfunktion fertig sind, löschen Sie sie. Sie können auch die Protokollgruppe löschen, in der die Protokolle der Funktion gespeichert sind, sowie die von der Konsole erstellte Ausführungsrolle.

So löschen Sie eine Lambda-Funktion
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie eine Funktion aus.

  3. Wählen Sie Aktionen, Löschen aus.

  4. Geben Sie im Dialogfenster Delete function (Funktion löschen) den Text löschen ein und wählen Sie anschließend Delete (Löschen) aus.

So löschen Sie die Protokollgruppe
  1. Öffnen Sie die Seite Log Groups (Protokollgruppen) der CloudWatch-Konsole.

  2. Wählen Sie die Protokollgruppe der Funktion () (/aws/lambda/my-function).

  3. Wählen Sie Actions (Aktionen), Delete log group(s) (Protokollgruppe(n) löschen) aus.

  4. Wählen Sie im Dialogfeld Delete log group(s) (Protokollgruppe(n) löschen) die Option Delete (Löschen) aus.

So löschen Sie die Ausführungsrolle
  1. Öffnen Sie die Seite Rollen der AWS Identity and Access Management (IAM)-Konsole.

  2. Wählen Sie die Ausführungsrolle der Funktion aus (zum Beispiel myLambdaFunction-role-31exxmpl).

  3. Wählen Sie Löschen aus.

  4. Geben Sie im Dialogfenster Delete role (Rolle löschen) den Namen der Rolle ein und wählen Sie anschließend Delete (Löschen) aus.

Sie können das Erstellen und Bereinigen von Funktionen, Rollen und Protokollgruppen mit AWS CloudFormation und AWS Command Line Interface (AWS CLI) automatisieren.

Zusätzliche Ressourcen und nächste Schritte

Nachdem Sie mit der Konsole eine einfache Lambda-Funktion erstellt und getestet haben, führen Sie die folgenden Schritte aus: