Esecuzione e debug delle funzioni Lambda direttamente dal codice - AWSToolkit for VS Code

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 e debug delle funzioni Lambda direttamente dal codice

Durante il test delAWS SAMapplicazione, puoi scegliere di eseguire ed eseguire il debug solo della funzione Lambda ed escludere altre risorse cheAWS SAMdefinisce il modello. Questo approccio prevede l'utilizzo delCodeLensfunzione per identificare i gestori delle funzioni Lambda nel codice sorgente che puoi richiamare direttamente.

I gestori Lambda rilevati da CodeLens dipendono dalla lingua e dal tempo di esecuzione utilizzati per l'applicazione.

Linguaggio/tempo di esecuzione Criteri per le funzioni Lambda da identificare dagli indicatori CodeLens

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

La funzione presenta inoltre le seguenti caratteristiche:
  • È una funzione pubblica di una classe pubblica.

  • Ha uno o due parametri. Con due parametri, il secondo parametro deve implementare ilILambdaContextinterfaccia.

  • Dispone di un*.csprojfile nella rispettive cartella padre all'interno della cartella dell'area di lavoro VS Code.

Lams-dotnettools.csharp?(o qualsiasi estensione che fornisce simboli linguistici per C #) è installata e abilitata.

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

La funzione presenta inoltre le seguenti caratteristiche:
  • È una funzione esportata con un massimo di tre parametri.

  • Ha unpackage.jsonfile nella rispettive cartella padre all'interno della cartella dell'area di lavoro VS Code.

Python (2.7, 3.6, 3.7, 3.8, 3.9)

La funzione presenta inoltre le seguenti caratteristiche:
  • È una funzione di primo livello.

  • Dispone di unrequirements.txtfile nella rispettive cartella padre all'interno della cartella dell'area di lavoro VS Code.

Lams-python.python con estensione(o qualsiasi estensione che fornisce simboli linguistici per Python) è installata e abilitata.

Java (8, 8.al2, 11)

La funzione presenta inoltre le seguenti caratteristiche:
  • È una funzione pubblica di una classe pubblica e non astratta.

  • Ha uno, due o tre parametri:

    • Un parametro: Il parametro può essere qualsiasi cosa.

    • Due parametri: I parametri devono essere ajava.io.InputStreame ajava.io.OutputStreamOPPURE l'ultimo parametro deve essere uncom.amazonaws.services.lambda.runtime.Context.

    • Tre parametri: I parametri devono essere ajava.io.InputStreame ajava.io.OutputStreamE l'ultimo parametro deve essere uncom.amazonaws.services.lambda.runtime.Context.

  • Ha unbuild.gradle(Gradle) opom.xml(Maven) nella rispettive cartella padre all'interno della cartella dell'area di lavoro VS Code.

Laredhat.java con estensione(o qualsiasi estensione che fornisce simboli di lingua per Java) è installata e abilitata. Questa estensione richiede Java 11, indipendentemente dal runtime Java utilizzato.

Lavscjava.vscode-java-debugextension (o qualsiasi estensione che fornisce un debugger Java) è installata e abilitata.

Vai (1.x)

La funzione presenta inoltre le seguenti caratteristiche:
  • È una funzione di primo livello.

  • Richiede da 0 a 2 argomenti. Nel caso di due argomenti, il primo argomento deve implementare context.Context.

  • Restituisce da 0 a 2 argomenti. Se ci sono più di 0 argomenti, l'ultimo argomento deve essere implementatoerror.

  • Ha ungo.modfile all'interno della cartella dell'area di lavoro VS Code.

Lagolang.goè installato, configurato e abilitato.

Per l'esecuzione e il debug di un'applicazione serverless direttamente dal codice dell'applicazione

  1. Per visualizzare i file dell'applicazione in VS Code File Explorer, scegliereVisualizzazione,Esploratore.

  2. Dalla cartella dell'applicazione (ad esempio,my-sample-app), espandere la cartella delle funzioni (in questo caso,hello-world) e apriapp.jsfile.

  3. Nell'indicatore CodeLens che identifica un gestore di funzioni Lambda idoneo, scegliereAdd Debug Configuration.

    
                    Accedi all'opzione Aggiungi configurazione di debug (Aggiungi configurazione di debug) nell'indicatore CodeLens per un gestore della funzione Lambda.
  4. NellaTavolozza dei comandi, seleziona il tempo di esecuzione in cuiAWS SAMverrà eseguita l'applicazione.

  5. Nell'editor del file launch.json, modifica o conferma i valori per le seguenti proprietà di configurazione:

    • "name"— Immettere un nome facilmente leggibile da visualizzare nellaConfigurazionecampo a discesa nelEseguivisualizzazione.

    • "target": assicurarsi che il valore sia "code" in modo che venga richiamato direttamente un gestore della funzione Lambda.

    • "lambdaHandler": inserisci il nome del metodo all'interno del codice sorgente chiamato da Lambda per eseguire la funzione. Ad esempio, per le applicazioni in JavaScript, il valore di default è app.lambdaHandler.

    • "projectRoot": inserisci il percorso del file dell'applicazione che contiene la funzione Lambda.

    • "runtime": inserisci o conferma un tempo di esecuzione valido per l'ambiente di esecuzione Lambda, ad esempio "nodejs.12x".

    • "payload": scegli una delle seguenti opzioni per definire come input il payload dell'evento da fornire alla funzione Lambda:

      • "json": coppie chiave-valore in formato JSON che definiscono il payload dell'evento.

      • "path": un percorso del file utilizzato come payload dell'evento.

      Nell'esempio seguente,"json"opzione definisce il payload.

    
                    Configurazione dellalaunch.jsonper richiamare direttamente le funzioni Lambda.

    Per ulteriori informazioni su questa e altre voci nel file launch.json, consulta Opzioni di configurazione per il debug di applicazioni serverless.

  6. Se sei soddisfatto della configurazione di debug, per iniziare il debug, scegli la freccia di riproduzione verde accanto aCORRERE.

    All'avvio delle sessioni di debug,CONSOLE DI DEBUGIl pannello mostra l'output di debug e visualizza tutti i valori restituiti dalla funzione Lambda. (Durante il debugAWS SAMapplicazioni,AWSKit di strumentiè selezionato comeOutputcanale nelOutputpannello.)