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 a aplicação do AWS SAM, você pode executar e depurar apenas a função do Lambda e excluir outros recursos definidos pelo modelo do AWS SAM. Essa abordagem requer o uso do recurso CodeLens para identificar manipuladores de função do Lambda no código-fonte que você pode invocar diretamente.

Os manipuladores do Lambda detectados pelo CodeLens dependem da linguagem e do runtime que você está usando para a aplicação.

Idioma/tempo de execução Critérios para funções do Lambda a serem identificadas por indicadores do CodeLens

C# (dotnetcore2.1, 3.1; .NET 5.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)

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 java.io.InputStream e java.io.OutputStream E o último parâmetro deve ser com.amazonaws.services.lambda.runtime.Context.

  • 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.

A extensão vscjava.vscode-java-debug (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 de aplicação (my-sample-app, por exemplo), expanda a pasta da função (hello-world, neste caso) e abra o arquivo app.js.

  3. No indicador do CodeLens que identifica um manipulador de função do Lambda qualificado, escolha Add Debug Configuration.

    Acesse a opção Adicionar configuração de depuração no indicador do CodeLens para um manipulador de função do 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 aplicações 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 de chave/valor formatados em JSON 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 a configuração de depuração estiver adequada para você, selecione a seta verde ao lado de EXECUTAR para iniciar a depuração.

    Quando as sessões de depuração forem iniciadas, o painel CONSOLE DE DEPURAÇÃO mostrará a saída de depuração e todos os valores gerados pela função do Lambda. (Ao depurar aplicações do AWS SAM, o kit de ferramentas da AWS é selecionado como canal de saída no painel Saída.)