Executar e depurar funções do Lambda diretamente do código - AWS Kit de ferramentas para VS Code

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Executar e depurar funções do Lambda diretamente do código

Ao testar o AWS SAM aplicativo, você pode optar por executar e depurar apenas a função Lambda e excluir outros recursos definidos AWS SAM pelo modelo. Essa abordagem envolve o uso do CodeLensrecurso para identificar manipuladores de funções Lambda no código-fonte que você pode invocar diretamente.

Os manipuladores Lambda que são detectados por CodeLens dependem da linguagem e do tempo de execução que você está usando para seu aplicativo.

Idioma/tempo de execução Critérios para que as funções Lambda sejam identificadas por indicadores CodeLens

C# (dotnetcore2.1, 3.1;. NET5,0)

A função de pesquisa também tem os seguintes recursos:
  • É uma função pública de uma classe pública.

  • Tem um ou dois parâmetros. Com dois parâmetros, o segundo parâmetro deve implementar a interface ILambdaContext.

  • Um arquivo *.csproj está na pasta principal dentro da pasta do espaço de trabalho do VS Code.

A extensão ms-dotnettools.csharp (ou qualquer extensão que forneça símbolos de linguagem para C#) está instalada e habilitada.

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

A função de pesquisa também tem os seguintes recursos:
  • É uma função exportada com até três parâmetros.

  • Um arquivo package.json está na pasta principal dentro da pasta do espaço de trabalho do VS Code.

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

A função de pesquisa também tem os seguintes recursos:
  • É uma função de nível superior.

  • Um arquivo requirements.txt está na pasta principal dentro da pasta do espaço de trabalho do VS Code.

A extensão ms-python.python (ou qualquer extensão que forneça símbolos de linguagem para Python) está instalada e habilitada.

Java (8, 8.al2, 11)

A função de pesquisa também tem os seguintes recursos:
  • É uma função pública de uma classe pública e não abstrata.

  • Tem um, dois ou três parâmetros:

    • Um parâmetro: o parâmetro pode ser qualquer coisa.

    • Dois parâmetros: os parâmetros devem ser java.io.InputStream e java.io.OutputStream OU o último parâmetro deve ser com.amazonaws.services.lambda.runtime.Context.

    • Três parâmetros: Os parâmetros devem ser a java.io.InputStream e java.io.OutputStream AND a o último parâmetro deve ser com.amazonaws.services.lambda.runtime.Context a.

  • Um arquivo build.gradle (Gradle) ou pom.xml (Maven) está em sua pasta principal, na pasta do espaço de trabalho do VS Code.

A extensão redhat.java (ou qualquer extensão que forneça símbolos de linguagem para Java) está instalada e habilitada. Essa extensão requer o Java 11, independentemente de qual runtime Java você estiver usando.

O vscjava. vscode-java-debugA extensão (ou qualquer extensão que forneça um depurador Java) está instalada e habilitada.

Go (1.x)

A função de pesquisa também tem os seguintes recursos:
  • É uma função de nível superior.

  • Requer entre 0 e 2 argumentos. Se houver dois argumentos, o primeiro argumento deverá implementar context.Context.

  • Retorna entre 0 e 2 argumentos. Se houver mais de 0 argumentos, o último argumento deverá implementar error.

  • Ele tem um arquivo go.mod na pasta do espaço de trabalho do VS Code.

A extensão golang.go está instalada, configurada e habilitada.

Como executar e depurar uma aplicação sem servidor diretamente do código da aplicação

  1. Para visualizar os arquivos da aplicação no explorador de arquivos do VS Code, selecione Exibir, Explorer.

  2. Na pasta do aplicativo (por exemplo, my-sample-app), expanda a pasta de funções (nesse caso, hello-world) e abra o app.js arquivo.

  3. No CodeLens indicador que identifica um manipulador de funções Lambda elegível, escolha. Add Debug Configuration

    Acesse a opção Adicionar configuração de depuração no CodeLens indicador de um manipulador de funções Lambda.
  4. Na paleta de comandos, selecione o runtime em que a aplicação do AWS SAM será executada.

  5. No editor para o arquivo launch.json, edite ou confirme valores para as seguintes propriedades de configuração:

    • "name": insira um nome de leitura fácil para aparecer no campo suspenso Configuration (Configuração) na exibição Run (Executar).

    • "target" – Verifique se o valor é "code" para que um manipulador de função do Lambda seja diretamente chamado.

    • "lambdaHandler" –Insira nome do método no código que o Lambda chama para executar a função. Por exemplo, para aplicativos em JavaScript, o padrão éapp.lambdaHandler.

    • "projectRoot" – Insira o caminho para o arquivo da aplicação que contém a função do Lambda.

    • "runtime" – Insira ou confirme um tempo de execução válido para o ambiente de execução do Lambda, por exemplo, "nodejs.12x".

    • "payload" – Escolha uma das seguintes opções para definir a carga útil do evento que você quer fornecer para a função Lambda como entrada:

      • "json": pares JSON de valores-chave formatados que definem a carga útil do evento.

      • "path": Um caminho para o arquivo que é usado como a carga útil do evento.

      No exemplo abaixo, a opção "json" define a carga útil.

    Configure o arquivo launch.json para invocar diretamente as funções do Lambda.

    Para obter mais informações sobre essas e outras entradas no arquivo launch.json, consulte Opções de configuração para depurar aplicações sem servidor.

  6. Se você estiver satisfeito com a configuração de depuração, para iniciar a depuração, escolha a seta de reprodução verde ao lado de. RUN

    Quando as sessões de depuração começam, o DEBUGCONSOLEpainel mostra a saída da depuração e exibe todos os valores retornados pela função Lambda. (Ao depurar AWS SAM aplicativos, o AWS Toolkit é selecionado como o canal de saída no painel Saída.)