Erstellen Sie Ihre erste Lambda-Funktion - AWS Lambda

Erstellen Sie Ihre erste Lambda-Funktion

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. Außerdem erfahren Sie, wie Sie Protokollausgaben Ihrer Funktion zurückgeben und wie Sie die Aufrufprotokolle Ihrer Funktion in Amazon CloudWatch Logs 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.

    Während der Anmeldung erhalten Sie einen Telefonanruf oder eine Textnachricht und müssen 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 AWS-Managementkonsole als Kontobesitzer an, indem Sie Stammbenutzer 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-Anmeldung Benutzerhandbuch 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 Benutzers mit Administratorzugriff
  1. Aktivieren Sie das IAM Identity Center.

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

  2. Gewähren Sie einem Administratorbenutzer im IAM Identity Center Benutzerzugriff.

    Ein Tutorial zur Verwendung von IAM-Identity-Center-Verzeichnis als Identitätsquelle finden Sie unter Konfigurieren des Benutzerzugriffs mit der Standard-IAM-Identity-Center-Verzeichnis 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.

Weiteren Benutzern Zugriff zuweisen
  1. Erstellen Sie im IAM-Identity-Center einen Berechtigungssatz, der den bewährten Vorgehensweisen für die Anwendung von geringsten Berechtigungen folgt.

    Anweisungen hierzu finden Sie unter Berechtigungssatz erstellen im AWS IAM Identity Center Benutzerhandbuch.

  2. Weisen Sie Benutzer einer Gruppe zu und weisen Sie der Gruppe dann Single Sign-On-Zugriff zu.

    Eine genaue Anleitung finden Sie unter Gruppen hinzufügen im AWS IAM Identity Center Benutzerhandbuch.

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 mit CloudWatch Logs Aufzeichnungen über den Aufruf Ihrer Funktionen anzeigen.

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 22 oder Python 3.13.

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

Zusätzlich zu einer einfachen Funktion, die die Nachricht Hello from Lambda! zurückgibt, erstellt Lambda auch 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 Logs.

Verwenden Sie 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 und 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 im Abschnitt BEREITSTELLEN die Option Bereitstellen aus, um den Code Ihrer Funktion zu aktualisieren:

    Schaltfläche „Bereitstellen“ im Code-Editor der Lambda-Konsole
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 Lambda-Funktionshandler in Node.js definieren.

  • 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 Ihre Funktion zum Beispiel aufgerufen wird, wenn ein Objekt in einen Amazon Simple Storage Service (Amazon S3) Bucket hochgeladen wird, enthält das Ereignis den Namen des 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 logGroupName-Parameter, um den Namen ihrer CloudWatch-Protokollgruppe auszugeben.

    Weitere Informationen zum Lambda-Kontextobjekt in Node.js finden Sie unter Verwenden des Lambda-Kontextobjekts zum Abrufen von Node.js-Funktionsinformationen.

  • 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.log-Anweisungen zur Ausgabe des berechneten Bereichs und des Namens der CloudWatch-Logs-Gruppe der Funktion. Sie können auch jede Protokollierungsbibliothek verwenden, die in stdout oder stderr schreibt.

    Weitere Informationen hierzu finden Sie unter Node.js-Lambda-Funktionen protokollieren und überwachen. 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 und 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 im Abschnitt BEREITSTELLEN die Option Bereitstellen aus, um den Code Ihrer Funktion zu aktualisieren:

    Schaltfläche „Bereitstellen“ im Code-Editor der Lambda-Konsole
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-Funktionshandler in Python definieren.

  • 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 Ihre Funktion zum Beispiel aufgerufen wird, wenn ein Objekt in einen Amazon Simple Storage Service (Amazon S3) Bucket hochgeladen wird, enthält das Ereignis den Namen des 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_name-Parameter, um den Namen ihrer CloudWatch-Protokollgruppe auszugeben.

    Weitere Informationen zum Lambda-Kontextobjekt in Python finden Sie unter Verwenden des Lambda-Kontextobjekts zum Abrufen von Python-Funktionsinformationen.

  • 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 Python-Lambda-Funktionen protokollieren und überwachen. 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 des Konsolencode-Editors

Um Ihre Funktion mit dem Code-Editor der Lambda-Konsole aufzurufen, erstellen Sie 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 Abschnitt TESTEREIGNISSE des Konsolen-Code-Editors die Option Testereignis erstellen aus.

    Erstellen einer Test-Event-Schaltfläche im Code-Editor der Lambda-Konsole
  2. Geben Sie als Event name (Ereignisname) die Zeichenfolge myTestEvent ein.

  3. Ersetzen Sie im Abschnitt Event JSON das Standard-JSON durch Folgendes:

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

So testen Sie Ihre Funktion und zeigen Aufrufe an

Wählen Sie im Abschnitt TESTEREIGNISSE des Konsolencode-Editors das Ausführungssymbol neben Ihrem Testereignis:

Ausführen einer Test-Event-Schaltfläche im Code-Editor der Lambda-Konsole

Wenn Ihre Funktion beendet ist, werden die Antwort- und Funktionsprotokolle auf der Registerkarte OUTPUT angezeigt. Sie sollten ähnliche Ergebnisse wie nachfolgend zu sehen:

Node.js
Status: Succeeded Test Event Name: myTestEvent Response "{\"area\":42}" Function Logs START RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a Version: $LATEST 2024-08-31T23:39:45.313Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO The area is 42 2024-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
Status: Succeeded Test Event Name: myTestEvent Response "{\"area\": 42}" Function Logs START RequestId: 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b Version: $LATEST The area is 42 [INFO] 2024-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

Wenn Sie Ihre Funktion außerhalb der Lambda-Konsole aufrufen, müssen Sie CloudWatch Logs verwenden, um die Ausführungsergebnisse Ihrer Funktion einzusehen.

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

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

  3. Scrollen Sie nach unten und wählen Sie den Protokollstream für die Funktionsaufrufen aus, die Sie sich ansehen möchten.

    Liste der Protokollstreams für eine Lambda-Funktion.

    Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:

    Node.js
    INIT_START Runtime Version: nodejs:22.v13 Runtime Version ARN: arn:aws:lambda:us-west-2::runtime:e3aaabf6b92ef8755eaae2f4bfdcb7eb8c4536a5e044900570a42bdba7b869d9 START RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 Version: $LATEST 2024-08-23T22:04:15.809Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO The area is 42 2024-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.13.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] 2024-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 die Lambda-Funktion:
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie die Funktion aus, die Sie erstellt haben.

  3. Wählen Sie Actions, Delete.

  4. Geben Sie confirm in das Texteingabefeld ein und wählen Sie Delete (Löschen) aus.

So löschen Sie die Protokollgruppe
  1. Öffnen Sie in der CloudWatch-Konsole die Seite Protokollgruppen.

  2. Wählen Sie die Protokollgruppe der Funktion (/aws/lambda/myLambdaFunction).

  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.

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: