Lambda-Funktionen direkt aus dem Code ausführen und debuggen - AWS Toolkit for VS Code

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.

Lambda-Funktionen direkt aus dem Code ausführen und debuggen

Beim Testen der AWS SAM Anwendung können Sie wählen, ob Sie nur die Lambda-Funktion ausführen und debuggen und andere Ressourcen ausschließen möchten, die in der AWS SAM Vorlage definiert sind. Bei diesem Ansatz wird die CodeLensFunktion verwendet, um Lambda-Funktionshandler im Quellcode zu identifizieren, die Sie direkt aufrufen können.

Die Lambda-Handler, die von erkannt werden, CodeLens hängen von der Sprache und Laufzeit ab, die Sie für Ihre Anwendung verwenden.

Sprache/Laufzeit Kriterien für die Identifizierung von Lambda-Funktionen anhand von Indikatoren CodeLens

C# (dotnetcore2.1, 3.1; .NET 5.0)

Die Suchfunktion bietet zudem die folgenden Funktionen:
  • Es ist eine öffentliche Funktion einer öffentlichen Klasse.

  • Sie hat einen oder zwei Parameter. Bei zwei Parametern muss der zweite Parameter die ILambdaContext Schnittstelle implementieren.

  • Es hat eine *.csproj Datei in seinem übergeordneten Ordner innerhalb des VS Code-Workspace-Ordners.

Die Erweiterung ms-dotnettools.csharp (oder jede Erweiterung, die Sprachsymbole für C# bereitstellt) ist installiert und aktiviert.

JavaScript/(Node.js 12.x, 14.x) TypeScript

Die Suchfunktion bietet zudem die folgenden Funktionen:
  • Es ist eine exportierte Funktion mit bis zu drei Parametern.

  • Es hat eine package.json Datei in seinem übergeordneten Ordner innerhalb des VS Code-Workspace-Ordners.

Python (3,7, 3,8, 3,9, 3,10, 3,11, 3,12)

Die Suchfunktion bietet zudem die folgenden Funktionen:
  • Es ist eine Top-Level-Funktion.

  • Es hat eine requirements.txt Datei in seinem übergeordneten Ordner innerhalb des VS Code-Workspace-Ordners.

Die Erweiterung ms-python.python (oder jede Erweiterung, die Sprachsymbole für Python bereitstellt) ist installiert und aktiviert.

Java (8, 8.al2, 11)

Die Suchfunktion bietet zudem die folgenden Funktionen:
  • Es ist eine öffentliche Funktion einer öffentlichen, nicht abstrakten Klasse.

  • Sie hat einen, zwei oder drei Parameter:

    • Ein Parameter: Der Parameter kann alles sein.

    • Zwei Parameter: Parameter müssen a sein java.io.InputStream und ein java.io.OutputStream ODER, der letzte Parameter muss a seincom.amazonaws.services.lambda.runtime.Context.

    • Drei Parameter: Parameter müssen a java.io.InputStream sein java.io.OutputStream und der letzte Parameter muss a seincom.amazonaws.services.lambda.runtime.Context.

  • Es hat eine build.gradle (Gradle) oder pom.xml (Maven) -Datei in seinem übergeordneten Ordner innerhalb des VS Code-Workspace-Ordners.

Die Erweiterung redhat.java (oder jede Erweiterung, die Sprachsymbole für Java bereitstellt) ist installiert und aktiviert. Diese Erweiterung benötigt Java 11, unabhängig davon, welche Java-Runtime Sie verwenden.

Das vscjava. vscode-java-debugDie Erweiterung (oder eine beliebige Erweiterung, die einen Java-Debugger bereitstellt) ist installiert und aktiviert.

Gehe zu (1.x)

Die Suchfunktion bietet zudem die folgenden Funktionen:
  • Es ist eine Top-Level-Funktion.

  • Es benötigt zwischen 0 und 2 Argumente. Bei zwei Argumenten muss das erste Argument implementiere context.Context.

  • Es gibt zwischen 0 und 2 Argumente zurück. Wenn es mehr als 0 Argumente gibt, muss das letzte Argument implementiert werdenerror.

  • Es hat eine go.mod Datei im VS Code Workspace-Ordner.

Die Erweiterung golang.go ist installiert, konfiguriert und aktiviert.

So führen und debuggen Sie eine serverless Anwendung direkt aus dem Anwendungscode

  1. Um Ihre Anwendungsdateien im VS Code File Explorer anzuzeigen, wählen Sie Ansicht, Explorer.

  2. Erweitern Sie im Anwendungsordner (z. B. my-sample-app) den Funktionsordner (in diesem Fall hello-world) und öffnen Sie die app.js Datei.

  3. Wählen Sie in dem CodeLens Indikator, der einen geeigneten Lambda-Funktionshandler identifiziert, ausAdd Debug Configuration.

    Greifen Sie im CodeLens Indikator für einen Lambda-Funktionshandler auf die Option Debug-Konfiguration hinzufügen zu.
  4. Wählen Sie in der Befehlspalette die Laufzeit aus, in der Ihre AWS SAM Anwendung ausgeführt werden soll.

  5. Klicken Sie im Editor für die Datei launch.json, bearbeiten oder bestätigen Sie Werte für die folgenden Konfigurationseigenschaften:

    • "name" – Geben Sie einen leserfreundlichen Namen ein, der in der im Dropdown-Feld Configuration (Konfiguration) der Ansicht Run (Ausführen) angezeigt wird.

    • "target"— Stellen Sie sicher, dass der Wert "code" ist, sodass ein Lambda Funktionshandler direkt aufgerufen wird.

    • "lambdaHandler" – Geben Sie den Namen der Methode innerhalb Ihres Codes ein, die die Lambda-Funktion zum Ausführen Ihrer Funktion aufruft. Für Anwendungen in JavaScript ist die Standardeinstellung beispielsweiseapp.lambdaHandler.

    • "projectRoot"— Geben Sie den Pfad zur Anwendungsdatei ein, die die Lambda -Funktion enthält.

    • "runtime" – Geben Sie eine gültige Laufzeit für die Lambda Ausführungsumgebung ein oder bestätigen Sie diese, z. B. "nodejs.12x".

    • "payload"— Wählen Sie eine der folgenden Optionen zum Definieren der Ereignis-Nutzlast aus, die Sie Ihrer Lambda -Funktion als Eingabe bereitstellen möchten:

      • "json": JSON-formatierte Schlüssel-Wert-Paare, welche die Ereignisnutzlast definieren.

      • "path": Ein Pfad zu der Datei, die als Ereignisnutzlast verwendet wird.

      Im folgenden Beispiel definiert die "json" Option die Nutzlast.

    Konfiguration der launch.json Datei für den direkten Aufruf von Lambda-Funktionen.

    Weitere Informationen zu diesen und anderen Einträgen in launch.json finden Sie in Konfigurationsoptionen für das Debuggen von serverless Anwendungen.

  6. Wenn Sie mit der Debug-Konfiguration zufrieden sind, klicken Sie auf den grünen Play-Pfeil neben RUN, um mit dem Debuggen zu beginnen.

    Wenn die Debugging-Sitzungen gestartet werden, zeigt das Bedienfeld DEBUG CONSOLE die Debugging-Ausgabe und alle Werte an, die die Lambda-Funktion zurückgibt. (Beim Debuggen von AWS SAM Anwendungen wird AWSToolkit im Bedienfeld „Ausgabe“ als Ausgabekanal ausgewählt.)