Chamada de funções do Lambda localmente - AWS Serverless Application Model

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

Chamada de funções do Lambda localmente

Você pode invocar sua função AWS Lambda localmente usando o comando sam local invoke AWS SAM CLI e fornecendo o ID lógico da função e um arquivo de eventos. Como alternativa, sam local invoke também aceita stdin como evento. Para obter mais informações eventos, consulte Eventos no Guia do desenvolvedor do AWS Lambda. Para obter informações sobre formatos de mensagens de eventos de diferentes serviços AWS, consulte Usando AWS Lambda com outros serviços no AWS LambdaGuia do desenvolvedor.

nota

O comando sam local invoke corresponde ao comando AWS Command Line Interface (AWS CLI) aws lambda invoke. Você pode usar qualquer um dos comandos para invocar uma função do Lambda.

Você deve executar o comando sam local invoke no diretório do projeto que contém a função que seja invocar.

Exemplos:

# Invoking function with event file $ sam local invoke "Ratings" -e event.json # Invoking function with event via stdin $ echo '{"message": "Hey, are you there?" }' | sam local invoke --event - "Ratings" # For more options $ sam local invoke --help

Arquivo de variável de ambiente

Para declarar localmente variáveis de ambiente que substituem os valores definidos em seus modelos, faça o seguinte:

  1. Crie um arquivo JSON que contenha as variáveis de ambiente a serem substituídas.

  2. Use o argumento --env-vars para substituir os valores definidos em seus modelos.

Declarar variáveis de ambiente

Para declarar variáveis de ambiente que se aplicam globalmente a todos os recursos, especifique um objeto Parameters como o seguinte:

{ "Parameters": { "TABLE_NAME": "localtable", "BUCKET_NAME": "testBucket", "STAGE": "dev" } }

Para declarar variáveis de ambiente diferentes para cada recurso, especifique objetos para cada recurso da seguinte forma:

{ "MyFunction1": { "TABLE_NAME": "localtable", "BUCKET_NAME": "testBucket", }, "MyFunction2": { "TABLE_NAME": "localtable", "STAGE": "dev" } }

Ao especificar objetos para cada recurso, você pode usar os seguintes identificadores, listados na ordem da maior para a menor precedência:

  1. logical_id

  2. function_id

  3. function_name

  4. Identificador de caminho completo

Você pode usar os dois métodos anteriores para declarar variáveis de ambiente juntos em um único arquivo. Ao fazer isso, as variáveis de ambiente que você forneceu para recursos específicos têm precedência sobre as variáveis de ambiente globais.

Salve suas variáveis de ambiente em um arquivo JSON, como env.json.

Substituindo valores de variáveis de ambiente

Para substituir as variáveis de ambiente pelas definidas em seu arquivo JSON, use o argumento --env-vars com os comandos invoke ou start-api. Por exemplo: .

sam local invoke --env-vars env.json

Camadas

Se seu aplicativo incluir camadas, para obter informações sobre como depurar problemas com camadas em seu host local, consulte Como trabalhar com camadas.

Saiba mais

Para obter um exemplo prático de invocar funções localmente, consulte o Módulo 2 - Executar localmente no AWS SAM Workshop Completo.