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à.
AWS Lambda debug remoto
Ti AWS Toolkit for Visual Studio Code consente di eseguire il debug AWS Lambda delle funzioni in esecuzione nel cloud, direttamente in VS Code. Con il debug AWS Lambda remoto è possibile ispezionare le funzioni in esecuzione, impostare punti di interruzione, esaminare le variabili e eseguire il debug dettagliato senza modificare il flusso di lavoro di sviluppo esistente.
Le sezioni seguenti descrivono come utilizzare il debug remoto Lambda in. AWS Toolkit for Visual Studio Code
Come funziona il debug remoto Lambda
Il AWS Toolkit consente il debug remoto modificando temporaneamente le funzioni Lambda con un livello di debug Lambda aggiuntivo ed estendendo il limite di timeout di chiamata Lambda a 900 secondi. Viene stabilita una connessione sicura tra il debugger locale e l'ambiente di runtime Lambda utilizzando Secure Tunneling. AWS IoT Questa connessione consente di utilizzare i punti di interruzione del codice locale per eseguire la funzione in modalità remota. Al termine della sessione di debug, tutte le modifiche temporanee vengono ripristinate automaticamente alle impostazioni originali.
Nozioni di base
Runtime supportati
I seguenti runtime sono supportati dal debug remoto Lambda.
-
Python (Amazon Linux 2023)
-
Java
-
JavaScript/Node.js (Amazon Linux 2023)
Prerequisiti
Prima di iniziare, è necessario soddisfare i seguenti prerequisiti.
-
È necessario disporre di AWS credenziali valide configurate nel Toolkit. AWS Per ulteriori dettagli sull'installazione del AWS Toolkit e sulla configurazione delle credenziali, consulta l'argomento Guida introduttiva di questa guida per l'utente.
-
Una funzione Lambda è stata implementata nel tuo account. AWS Per i dettagli sulla distribuzione di una funzione Lambda, consulta l'argomento Crea la tua prima funzione Lambda nella Guida per gli sviluppatori. AWS Lambda
-
È necessario disporre di policy e autorizzazioni AWS Identity and Access Management (IAM) appropriate per eseguire il debug della funzione. Per ulteriori dettagli sulle autorizzazioni Lambda, consulta l' AWS Lambda argomento relativo alle politiche AWS gestite nella Guida per gli AWS Lambdasviluppatori. Di seguito è riportato un esempio di policy che contiene le autorizzazioni minime richieste per lavorare con il debug remoto Lambda nel Toolkit. AWS
Nota
Il debug remoto è abilitato tramite Secure Tunneling. AWS AWS IoT Ciò consente al debugger locale di stabilire una connessione sicura all'ambiente di runtime Lambda.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:ListFunctions", "lambda:GetFunction", "lambda:GetFunctionConfiguration", "lambda:GetLayerVersion", "lambda:UpdateFunctionConfiguration", "lambda:InvokeFunction", "lambda:PublishVersion", "lambda:DeleteFunction", "iot:CloseTunnel", "iot:OpenTunnel", "iot:RotateTunnelAccessToken", "iot:ListTunnels" ], "Resource": "*" } ] }
Accesso al debug remoto Lambda
Esistono due percorsi principali per accedere al debug remoto Lambda nel AWS Toolkit: l'explorer o l'Application Builder AWS explorer. Dall' AWS explorer, puoi accedere al debug remoto Lambda tramite i tuoi nodi. AWS Lambda Da Application Builder explorer, puoi accedere al debug remoto Lambda tramite i tuoi progetti locali. AWS SAM
Accesso al debug remoto Lambda dall'explorer AWS
-
Da VS Code, apri l'estensione Toolkit. AWS
-
Dal AWS Toolkit, espandi l' AWS explorer.
-
Dall'explorer, espandi il nodo Lambda.
-
Passa alla funzione di cui desideri eseguire il debug, quindi scegli l'icona Invoke remotely dal menu contestuale per aprire la schermata di configurazione di Remote invoke.
Accesso al debug remoto Lambda dall'esploratore di Application Builder.
-
Da VS Code, apri l'estensione Toolkit. AWS
-
Dal AWS Toolkit, espandi l'application builder explorer.
-
Dall'explorer espandi il
AWS SAM
progetto che contiene il progetto Lambda di cui desideri eseguire il debug. -
Espandi la
Lambda
funzione distribuita di cui desideri eseguire il debug. -
Vai alla funzione remota, quindi scegli l'icona Invoke remotely dal menu contestuale per aprire la schermata di configurazione di Remote Invoke.
Utilizzo del debug remoto Lambda
Le sezioni seguenti descrivono come utilizzare il debug remoto Lambda in. AWS Toolkit for Visual Studio Code
Nota
Le funzioni Lambda hanno un limite di 5 livelli e un limite combinato di 250 MB per il codice funzione e tutti i livelli collegati. Il debug remoto Lambda richiede almeno 1 layer libero per essere eseguito.
Configurazione di una sessione di debug
Prima di iniziare, configurate la sessione di debug completando la procedura seguente.
-
Apri il menu di configurazione Remote invoke completando la procedura Accessing Lambda remote debug dall'explorer o AWS la procedura Accessing Lambda remote debug from the Application Builder explorer, che si trova nella sezione precedente.
-
Dal menu di configurazione Remote Invoke, selezionate la casella di controllo Remote Debugging per visualizzare le proprietà di debug remoto.
-
Specificate il percorso root locale del file del gestore locale.
Nota
Il percorso root locale è la posizione del codice sorgente che corrisponde alla funzione Lambda distribuita. Se stai lavorando da una funzione distribuita nell'Application Builder explorer, il percorso root locale viene rilevato automaticamente.
Se il codice sorgente non è memorizzato localmente, scegli il pulsante Scarica codice remoto per recuperare il codice sorgente della funzione Lambda. Questo ti aprirà
handler file
nell'editor VS Code. -
Dalla sezione Payload, specifica dove vengono ottenuti i dati degli eventi di test.
Impostazione dei punti di interruzione e debug
Impostate i punti di interruzione e iniziate il debug completando la procedura seguente.
-
Dall'editor VS Code, fai clic sul margine laterale per impostare i punti di interruzione nei numeri di riga in cui desideri sospendere il debug.
handler file
-
Quando sei soddisfatto dei punti di interruzione, torna al menu di configurazione di Remote invoke per verificare che le impostazioni siano configurate correttamente, quindi scegli il pulsante Remote invoke per avviare il debug.
-
Il AWS Toolkit aggiorna la funzione Lambda con funzionalità di debug, stabilisce un tunnel sicuro per la sessione di debug, richiama la funzione con il payload specificato, quindi sospende il processo quando raggiunge un punto di interruzione.
-
Durante una pausa, usa il pannello RUN AND DEBUG per visualizzare le variabili, lo stack di chiamate e i punti di interruzione.
Aggiornamento e test della funzione
Per modificare il codice e testare le modifiche con una distribuzione rapida, completa la procedura seguente.
-
Con la sessione di debug attiva, apporta modifiche all'editor VS
handler file
Code. -
Salva le modifiche (,)
Command+S on macOS
Ctrl+S on Windows
-
Quando richiesto, confermate che desiderate procedere con la distribuzione delle modifiche. Il AWS Toolkit aggiornerà la funzione Lambda con il codice modificato.
-
Continua a eseguire il debug e a testare le modifiche impostando nuovi punti di interruzione e selezionando nuovamente il pulsante Remote invoke.
Nota
In alternativa, puoi deselezionare l'opzione Attach debugger nei controlli di debug di VS Code e scegliere il pulsante Remote invoke per eseguire la funzione senza eseguire il debug.
Terminare una sessione di debug
Ciascuna delle seguenti opzioni termina la sessione di debug remota e rimuove il livello di debug dal progetto.
-
Scegliendo l'opzione Remove Debug Setup dalla schermata di configurazione Remote Invoke.
-
Scelta dell'icona di disconnessione dai controlli di debug di VS Code.
-
Chiusura dell'editor VS
handler file
Code.
Nota
Prendi nota di quanto segue:
Il livello di debug Lambda viene rimosso automaticamente dopo 60 secondi di inattività. Il conteggio inizia quando l'ultima chiamata è completa.
-
Se hai apportato modifiche al codice alle funzioni gestite da infrastructure-as-code (IAc) (AWS SAM AWS CDK, Terraform) durante il processo di debug, salvale nel progetto locale e valuta la possibilità di aggiornare il tuo repository di controllo del codice sorgente. Le modifiche non salvate vengono sovrascritte quando la funzione IAc viene ridistribuita.
Se hai apportato modifiche temporanee solo a scopo di debug, potresti voler ridistribuire la funzione dal controllo del codice sorgente per assicurarti che corrisponda al codice di produzione.
Risoluzione dei problemi e casi d'uso avanzati
Se la sessione di debug fallisce, avvia la procedura di risoluzione dei problemi completando questi passaggi.
Aggiorna il AWS Toolkit alla versione più recente.
Aggiorna la visualizzazione Web chiudendo la visualizzazione Web di configurazione di Remote Invoke e riaprendola.
Riavvia VS Code chiudendolo completamente e riaprendolo.
Apri la palette dei comandi VS Code e inserisci il comando
AWS: Reset Lambda Remote Debugging Snapshot
, selezionalo quando viene inserito nei risultati per reimpostare l'istantanea di debug remoto Lambda.
Caso d'uso avanzato: configurazione della firma del codice
Il debug remoto richiede il collegamento di un livello di debug alla funzione Lambda. Se la funzione ha la configurazione della firma del codice abilitata e applicata, il AWS Toolkit non può collegare automaticamente il livello di debug alla funzione.
Esistono due opzioni per risolvere il problema di configurazione della firma del codice.
Rimuovi temporaneamente la firma del codice.
Usa un livello di debug firmato.
Rimuovere temporaneamente la firma del codice
Aggiorna la configurazione della firma del codice impostandolaUntrustedArtifactOnDeployment : Warn
, quindi riattivala al Enforced
termine del processo di debug.
Per ulteriori informazioni, consulta il riferimento nell'UpdateCodeSigningConfigAPI Reference.AWS Lambda
Utilizzo di un livello di debug firmato
Dal debug remoto Lambda nel AWS Toolkit, espandi la sezione Configurazione aggiuntiva per il debug remoto.
Dalla sezione Configurazione aggiuntiva di debug remoto, copia l'ARN del livello regionale dal campo Layer override.
Da AWS CLI, usa il seguente comando per scaricare la versione del layer
aws lambda get-layer-version-by-arn --arn
, sostituendo layer-arn con il tuo layer ARN. Per istruzioni dettagliate su come scaricare il layer di debug firmato, vedete il riferimento get-layer-version-by-arn nel Command Reference.AWS CLIlayer-arn
Firma il layer con la tua configurazione di firma del codice e pubblicalo sul tuo account. Per istruzioni sulla firma e sulla pubblicazione, consulta l'argomento Configurazione della firma a codice per l' AWS SAM applicazione nella Guida per gli AWS Serverless Application Model sviluppatori.
Dopo che il layer è stato firmato e pubblicato sul tuo account, torna alla sezione di configurazione aggiuntiva per il debug remoto di Lambda remote debugging, quindi inserisci l'ARN del nuovo livello nel campo Layer override. Una volta completato il processo, il debug remoto Lambda utilizza il livello firmato anziché il livello predefinito.
Regioni supportate
Il seguente errore si verifica quando una regione non supporta il debug remoto.
Region ${region} doesn't support remote debugging yet
Di seguito è riportato un elenco delle regioni supportate.
ap-east-1
ap-northeast-1
ap-northeast-2
ap-south-1
ap-southeast-1
ap-southeast-2
ca-central-1
eu-central-1
eu-north-1
eu-west-1
eu-west-2
eu-west-3
me-central-1
me-south-1
sa-east-1
us-east-1
us-east-2
us-west-1
us-west-2
Lambda RequestEntityTooLargeException
Le funzioni Lambda hanno un limite di 5 livelli e un limite combinato di 250 MB per il codice funzione e tutti i livelli collegati. Il livello di debug remoto è di circa 40 MB, il che potrebbe far sì che la funzione superi questo limite se si dispone di un pacchetto di funzioni di grandi dimensioni o di più livelli. Per ulteriori dettagli, consulta la sezione Lambda: InvalidParameterValueException or RequestEntityTooLargeException topic nella AWS Lambda Developer Guide.
L'elenco seguente descrive i modi per risolvere e correggere questo errore.
Riduzione delle dimensioni della funzione: ottimizza il codice della funzione e rimuovi le dipendenze non necessarie.
Rimuovi i livelli non utilizzati: rimuovi temporaneamente i livelli non essenziali durante il debug.
Usa dipendenze esterne: sposta le dipendenze di grandi dimensioni su uno storage esterno, come Amazon S3, e caricale in fase di esecuzione.
Quota di tunneling sicuro IoT superata
Di seguito è riportato un esempio dell'errore di superamento della quota del tunnel che si verifica quando si raggiunge il limite giornaliero per le connessioni di tunneling AWS IoT sicure nel debug remoto Lambda.
Error creating/reusing tunnel: LimitExceededException: Exceeded quota of Lambda debugging tunnels
AWS IoT Le connessioni Secure Tunneling hanno le seguenti quote:
Al tunneling sicuro IoT di livello gratuito sono assegnate 10 connessioni al giorno.
Ogni tunnel supporta un'istanza VS Code per un massimo di 12 ore.
La quota si applica per AWS account, al giorno.
Se riscontri l'errore di tunneling AWS IoT sicuro, attendi il ripristino della quota giornaliera o contatta l' AWS assistenza per richiedere un aumento del limite di quota. Per informazioni di contatto per l' AWS assistenza, consulta il portale di contatto dell'AWS assistenza.
Debug delle funzioni TypeScript Lambda con mappe di origine
Le sezioni seguenti descrivono come eseguire il debug delle funzioni TypeScript Lambda con le mappe di origine.
Prerequisiti
Per eseguire il debug delle funzioni TypeScript Lambda, devono essere soddisfatti i seguenti prerequisiti.
TypeScript È necessario rispettare l'opzione della mappa di origine abilitata. Per ulteriori informazioni, consulta l'argomento relativo al supporto delle mappe di JavaScript origine
nella documentazione di VS Code. Per lavorare con le mappe sorgente in linea, tutte le modifiche devono essere ridistribuite nel cloud.
Configurazione
Per configurare il debug remoto Lambda per le funzioni TypeScript Lambda nel Toolkit, completa AWS i seguenti passaggi.
-
Dal Toolkit, espandi l'explorer. AWS AWS
-
Dall'explorer, espandi il nodo Lambda.
-
Passa alla funzione per cui desideri configurare TypeScript, quindi scegli l'icona Invoke remotely dal menu contestuale per aprire la schermata di configurazione di Remote invoke.
Abilita il debug remoto selezionando la casella di controllo Debug remoto.
Configura il tuo Local Root Path puntando alla directory contenente il tuo.
TypeScript handler file
Nota
TypeScript handler file
È dove imposti i punti di interruzione del debug.Espandi le impostazioni di configurazione aggiuntive di Remote debug.
Abilita la mappatura delle sorgenti selezionando la casella di controllo Mappa sorgente.
Imposta il campo Out files nella directory locale della copia della funzione Lambda.
Se
app.js
eapp.map
sono inseriti.aws-sam/build/HelloWorldFunction
, crea la posizione/Users/
dei file Out.user
/project
/aws-sam/build/HelloWorldFunction
/*Nota
Il percorso del file Out deve essere un percorso assoluto.
Quando sei soddisfatto delle impostazioni, scegli il pulsante Remote invoke per iniziare il debug della funzione. TypeScript