Lambda-Funktionen mit Visual Studio Code remote debuggen - 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.

Lambda-Funktionen mit Visual Studio Code remote debuggen

Mit der Remote-Debugging-Funktion in der können Sie Ihre Lambda-Funktionen debuggen AWS Toolkit for Visual Studio Code, die direkt in der Cloud ausgeführt werden. AWS Dies ist nützlich, wenn Sie Probleme untersuchen, die sich nur schwer lokal replizieren lassen oder die nur anhand von Protokollen diagnostiziert werden können.

Mit Remote-Debugging können Sie:

  • Setzen Sie Breakpoints in Ihrem Lambda-Funktionscode.

  • Führen Sie die Codeausführung Schritt für Schritt in Echtzeit durch.

  • Untersuchen Sie Variablen und Status während der Laufzeit.

  • Debuggen Sie Lambda-Funktionen AWS, die bereitgestellt wurden, einschließlich solcher, die in VPCs oder mit bestimmten IAM-Berechtigungen bereitgestellt wurden.

Unterstützte Laufzeiten

Remote-Debugging wird für die folgenden Laufzeiten unterstützt:

  • Python (AL2023)

  • Java

  • JavaScript/Node.js (AL2023)

Anmerkung

Remote-Debugging wird sowohl für x86_64- als auch für arm64-Architekturen unterstützt.

Sicherheit und Remote-Debugging

Das Remote-Debugging erfolgt innerhalb der bestehenden Lambda-Sicherheitsgrenzen. Benutzer können mithilfe der UpdateFunctionConfiguration Berechtigung Ebenen an eine Funktion anhängen, die bereits über die Möglichkeit verfügt, auf Funktionsumgebungsvariablen und -konfigurationen zuzugreifen. Das Remote-Debugging geht nicht über diese vorhandenen Berechtigungen hinaus. Stattdessen werden zusätzliche Sicherheitskontrollen durch sicheres Tunneling und automatische Sitzungsverwaltung hinzugefügt. Darüber hinaus ist das Remote-Debugging eine vollständig vom Kunden gesteuerte Funktion, für die ausdrückliche Berechtigungen und Aktionen erforderlich sind:

  • Erstellung eines sicheren IoT-Tunnels: Das AWS Toolkit muss einen sicheren IoT-Tunnel erstellen. Dies erfolgt nur mit ausdrücklicher Genehmigung des Benutzers. iot:OpenTunnel

  • Verwaltung von Anhängen und Tokens auf Debug-Ebene: Der Debugging-Prozess gewährleistet die Sicherheit durch folgende Kontrollen:

    • Die Debugging-Schicht muss an die Lambda-Funktion angehängt werden, und für diesen Vorgang sind die folgenden Berechtigungen erforderlich: lambda:UpdateFunctionConfiguration und. lambda:GetLayerVersion

    • Ein Sicherheitstoken (generiert überiot:OpenTunnel) muss vor jeder Debug-Sitzung in der Funktionsumgebungsvariablen aktualisiert werden, was ebenfalls erforderlich ist. lambda:UpdateFunctionConfiguration

    • Aus Sicherheitsgründen wird dieses Token automatisch rotiert und die Debug-Ebene wird am Ende jeder Debug-Sitzung automatisch entfernt und kann nicht wiederverwendet werden.

Anmerkung

Remote-Debugging wird sowohl für x86_64- als auch für arm64-Architekturen unterstützt.

Voraussetzungen

Bevor Sie mit dem Remote-Debuggen beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  1. Eine Lambda-Funktion, die für Ihr AWS Konto bereitgestellt wurde.

  2. AWS Toolkit for Visual Studio Code. Installationsanweisungen finden Sie unter Einrichten des AWS Toolkit for Visual Studio Code.

  3. Die Version des AWS Toolkits, die Sie installiert haben, ist 3.69.0 oder höher.

  4. AWS Die Anmeldeinformationen sind in konfiguriert. AWS Toolkit for Visual Studio Code Weitere Informationen finden Sie unter Authentifizierung und Zugriffskontrolle.

Lambda-Funktionen aus der Ferne debuggen

Gehen Sie wie folgt vor, um eine Remote-Debugging-Sitzung zu starten:

  1. Öffnen Sie den AWS Explorer in VS Code, indem Sie das AWS Symbol in der linken Seitenleiste auswählen.

  2. Erweitern Sie den Abschnitt Lambda, um Ihre Funktionen zu sehen.

  3. Klicken Sie mit der rechten Maustaste auf die Funktion, die Sie debuggen möchten.

  4. Wählen Sie im Kontextmenü die Option Ferngesteuert aufrufen aus.

  5. Aktivieren Sie im sich öffnenden Aufruffenster das Kontrollkästchen Debugging aktivieren.

  6. Klicken Sie auf Invoke, um die Remote-Debugging-Sitzung zu starten.

Anmerkung

Lambda-Funktionen haben ein kombiniertes Limit von 250 MB für den Funktionscode und alle angehängten Ebenen. Die Remote-Debugging-Schicht erhöht die Größe Ihrer Funktion um etwa 40 MB.

Eine Remote-Debugging-Sitzung endet, wenn Sie:

  • Wählen Sie im Konfigurationsbildschirm für den Fernaufruf die Option Debug-Setup entfernen aus.

  • Wählen Sie in den VS Code-Debugging-Steuerelementen das Symbol zum Trennen der Verbindung aus.

  • Wählen Sie die Handler-Datei im VS Code-Editor aus.

Anmerkung

Die Debug-Ebene wird nach 60 Sekunden Inaktivität nach Ihrem letzten Aufruf automatisch entfernt.

Deaktivieren Sie das Remote-Debugging

Es gibt drei Möglichkeiten, diese Funktion zu deaktivieren:

  • Funktionsupdates verweigern: Auf lambda:UpdateFunctionConfiguration einstellendeny.

  • IoT-Berechtigungen einschränken: IoT-bezogene Berechtigungen verweigern

  • Debug-Ebenen blockieren: Aus folgenden lambda:GetLayerVersion Gründen ablehnen: ARNs

    • arn:aws:lambda:*:*:layer:LDKLayerX86:*

    • arn:aws:lambda:*:*:layer:LDKLayerArm64:*

    Anmerkung

    Wenn Sie diese Funktion deaktivieren, wird verhindert, dass die Debugging-Ebene bei Aktualisierungen der Funktionskonfiguration hinzugefügt wird.

Weitere Informationen zur Verwendung von Lambda in VS Code finden Sie unter Lokales Entwickeln von Lambda-Funktionen mit VS Code.

Ausführliche Anweisungen zur Fehlerbehebung, zu erweiterten Anwendungsfällen und zur regionalen Verfügbarkeit finden Sie unter Lambda-Funktionen per Fernzugriff im AWS Toolkit for Visual Studio Code Benutzerhandbuch.