Esecuzione e debug di funzioni Lambda direttamente dal codice - AWSToolkit per 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 di funzioni Lambda direttamente dal codice

Durante il test AWS SAM dell'applicazione, puoi scegliere di eseguire ed eseguire il debug solo della funzione Lambda ed escludere altre risorse definite AWS SAM dal modello. Questo approccio prevede l'utilizzo della CodeLensfunzionalità per identificare i gestori di funzioni Lambda nel codice sorgente che è possibile richiamare direttamente.

I gestori Lambda rilevati da CodeLens dipendono dal linguaggio e dal runtime utilizzati per l'applicazione.

Linguaggio/tempo di esecuzione Criteri per le funzioni Lambda da identificare mediante 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 l'ILambdaContextinterfaccia.

  • Ha un *.csproj file nella cartella principale all'interno della cartella Workspace VS Code.

L'estensione ms-dotnettools.csharp (o qualsiasi estensione che fornisca simboli linguistici per C#) è installata e abilitata.

JavaScriptTypeScript /(Node.js 12.x, 14.x)

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

  • Ha un package.json file nella cartella principale all'interno della cartella dell'area di lavoro VS Code.

Python (3.7, 3.8, 3.9, 3.10, 3.11, 3.12)

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

  • Ha un requirements.txt file nella cartella principale all'interno della cartella Workspace VS Code.

L'estensione ms-python.python (o qualsiasi estensione che fornisca 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 non astratta.

  • Ha uno, due o tre parametri:

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

    • Due parametri: i parametri devono essere a java.io.InputStream e un java.io.OutputStream OR l'ultimo parametro deve essere uncom.amazonaws.services.lambda.runtime.Context.

    • Tre parametri: i parametri devono essere a java.io.InputStream e un java.io.OutputStream E l'ultimo parametro deve essere uncom.amazonaws.services.lambda.runtime.Context.

  • Ha un file build.gradle (Gradle) o pom.xml (Maven) nella cartella principale all'interno della cartella dell'area di lavoro VS Code.

L'estensione redhat.java (o qualsiasi estensione che fornisca simboli linguistici per Java) è installata e abilitata. Questa estensione richiede Java 11, indipendentemente dal runtime Java in uso.

Il vscjava. vscode-java-debugl'estensione (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 tra 0 e 2 argomenti. Nel caso di due argomenti, il primo argomento deve implementare context.Context.

  • Restituisce tra 0 e 2 argomenti. Se ci sono più di 0 argomenti, deve essere implementato l'ultimo argomentoerror.

  • Ha un go.mod file all'interno della cartella dell'area di lavoro VS Code.

L'estensione golang.go è installata, configurata e abilitata.

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, scegli Visualizza, Esplora.

  2. Dalla cartella dell'applicazione (ad esempio, my-sample-app), espandi la cartella delle funzioni (in questo caso, hello-world) e apri il app.js file.

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

    
                    Accedere all'opzione Aggiungi configurazione di debug nell' CodeLens indicatore per un gestore di funzioni Lambda.
  4. Nella palette dei comandi, seleziona il runtime in cui verrà eseguita l'AWS SAMapplicazione.

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

    • "name": inserisci un nome facilmente leggibile da visualizzare nel campo a tendina Configuration (Configurazione) nella vista Run (Esegui).

    • "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, l'impostazione predefinita è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, l'"json"opzione definisce il payload.

    
                    Configurazione del launch.json file per 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 verde di riproduzione accanto a RUN.

    All'avvio delle sessioni di debug, il pannello DEBUG CONSOLE mostra l'output di debug e visualizza tutti i valori restituiti dalla funzione Lambda. (Durante il debug delle AWS SAM applicazioni, AWSToolkit viene selezionato come canale di output nel pannello Output.)