Esecuzione da remoto del debug delle funzioni Lambda con Visual Studio Code - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esecuzione da remoto del debug delle funzioni Lambda con Visual Studio Code

Con la funzionalità di debug remoto nel AWS Toolkit for Visual Studio Code, puoi eseguire il debug delle funzioni Lambda in esecuzione direttamente nel cloud AWS. Ciò è utile quando si esaminano problemi difficili da replicare localmente o da diagnosticare solo con i log.

Con il debug da remoto, puoi:

  • Impostare punti di interruzione nel codice della funzione Lambda.

  • Eseguire il codice in tempo reale.

  • Ispezionare le variabili e lo stato durante il runtime.

  • Funzioni di debug Lambda implementate su AWS, incluse quelle in VPC o con autorizzazioni IAM specifiche.

Runtime supportati

Il debug da remoto è supportato per i seguenti runtime:

  • Python (AL2023)

  • Java

  • JavaScript/Node.js (AL2023)

Nota

Il debug da remoto è supportato per le architetture sia x86_64 sia arm64.

Sicurezza e debug da remoto

Il debug da remoto opera entro i limiti di sicurezza Lambda esistenti. Gli utenti possono collegare livelli a una funzione utilizzando l'autorizzazione UpdateFunctionConfiguration, che ha già la possibilità di accedere alle variabili di ambiente e alla configurazione della funzione. Il debug da remoto non va oltre queste autorizzazioni esistenti. Aggiunge invece ulteriori controlli di sicurezza attraverso il tunneling sicuro e la gestione automatica delle sessioni. Inoltre, il debug da remoto è interamente una funzionalità controllata dal cliente che richiede autorizzazioni e azioni esplicite:

  • Creazione di tunnel IoT sicuri: il Toolkit AWS deve creare un tunnel IoT sicuro, cosa che si verifica solo con l'autorizzazione esplicita dell'utente che usa iot:OpenTunnel.

  • Gestione di allegati e token del livello di debug: il processo di debug mantiene la sicurezza attraverso questi controlli:

    • Il livello di debug deve essere collegato alla funzione Lambda e questo processo richiede le seguenti autorizzazioni: lambda:UpdateFunctionConfiguration e lambda:GetLayerVersion.

    • Un token di sicurezza (generato tramite iot:OpenTunnel) deve essere aggiornato nella variabile di ambiente della funzione prima di ogni sessione di debug, il che richiede anch'esso lambda:UpdateFunctionConfiguration.

    • Per motivi di sicurezza, questo token viene ruotato automaticamente e il livello di debug viene rimosso automaticamente alla fine di ogni sessione di debug e non può essere riutilizzato.

Nota

Il debug da remoto è supportato per le architetture sia x86_64 sia arm64.

Prerequisiti

Prima di iniziare il debug da remoto, assicurati di disporre di quanto riportato di seguito:

  1. Una funzione Lambda implementata sul tuo account AWS.

  2. AWS Toolkit for Visual Studio Code. Consulta Configurazione del AWS Toolkit for Visual Studio Code per le istruzioni di installazione.

  3. La versione del Toolkit AWS installata deve essere la 3.69.0 o successiva.

  4. Credenziali AWS configurate in AWS Toolkit for Visual Studio Code. Per ulteriori informazioni, consulta Autenticazione e controllo degli accessi.

Debug da remoto delle funzioni Lambda

Esegui questi passaggi per avviare una sessione di debug da remoto:

  1. Apri l’Esploratore AWS in VS Code selezionando l'icona AWS nella barra laterale sinistra.

  2. Espandi la sezione Lambda per vedere le tue funzioni.

  3. Fai clic con il pulsante destro del mouse sulla funzione di cui desideri eseguire il debug.

  4. Dal menu contestuale, seleziona Richiama da remoto.

  5. Nella finestra di invocazione che si apre, seleziona la casella Abilita debug.

  6. Fai clic su Richiama per avviare la sessione di debug remota.

Nota

Le funzioni Lambda hanno un limite combinato di 250 MB per il codice della funzione e tutti i livelli collegati. Il livello di debug da remoto aggiunge circa 40 MB alle dimensioni della funzione.

Una sessione di debug da remoto termina quando:

  • Scegliere Rimuovi configurazione debug dalla schermata di configurazione Richiama da remoto.

  • Selezionare l'icona di disconnessione nei controlli di debug di VS Code.

  • Selezionare il file del gestore nell'editor VS Code.

Nota

Il livello di debug viene rimosso automaticamente dopo 60 secondi di inattività dopo l'ultima invocazione.

Disabilitazione de debug da remoto

Puoi disabilitare questa funzionalità in tre modi:

  • Nega aggiornamenti delle funzioni: imposta lambda:UpdateFunctionConfiguration su deny.

  • Limita autorizzazioni IoT: nega le autorizzazioni relative all'IoT.

  • Blocca livelli di debug: nega lambda:GetLayerVersion per i seguenti ARN:

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

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

    Nota

    La disabilitazione di questa funzionalità impedisce l'aggiunta del livello di debug durante gli aggiornamenti della configurazione delle funzioni.

Per ulteriori informazioni sull'utilizzo di Lambda in VS Code, consulta Sviluppo locale di funzioni Lambda con VS Code.

Per istruzioni dettagliate sulla risoluzione dei problemi, sui casi d'uso avanzati e sulla disponibilità delle regioni, consulta Debug remoto delle funzioni Lambda nella Guida per l'utente di AWS Toolkit for Visual Studio Code.