Invocación de funciones de Lambda de forma local - AWS Serverless Application Model

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Invocación de funciones de Lambda de forma local

Puede invocar la función de AWS Lambda de forma local mediante el comando sam local invoke de la CLI de AWS SAM y proporcionando el ID lógico de la función y un archivo de eventos. Como alternativa, sam local invoke también acepta stdin como evento. Para más información, consulte Evento en la Guía para desarrolladores de AWS Lambda. Para obtener información sobre los formatos de los mensajes de eventos de los distintos servicios de AWS, consulte Uso de AWS Lambda con otros servicios en la Guía para desarrolladores de AWS Lambda.

nota

El comando sam local invoke corresponde al comando de AWS Command Line Interface (AWS CLI) aws lambda invoke. Puede utilizar cualquiera de los comandos para invocar una función de Lambda.

Debe ejecutar el comando sam local invoke en el directorio del proyecto que contiene la función que desea invocar.

Ejemplos:

# 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

Archivo de variables de entorno

Para declarar localmente las variables de entorno que anulan los valores definidos en las plantillas, haga lo siguiente:

  1. Cree un archivo JSON que contenga las variables de entorno que desee anular.

  2. Use el argumento --env-vars para anular los valores definidos en sus plantillas.

Declaración de variables de entorno

Para declarar variables de entorno que se apliquen globalmente a todos los recursos, especifique un objeto Parameters como el siguiente:

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

Para declarar variables de entorno diferentes para cada recurso, especifique objetos para cada recurso de la siguiente manera:

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

Al especificar objetos para cada recurso, puede utilizar los siguientes identificadores, enumerados en orden de mayor a menor prioridad:

  1. logical_id

  2. function_id

  3. function_name

  4. Identificador de ruta completo

Puede utilizar los dos métodos anteriores para declarar variables de entorno juntos en un único archivo. Al hacerlo, las variables de entorno que haya proporcionado para recursos específicos tienen prioridad sobre las variables de entorno globales.

Guarde las variables de entorno en un archivo JSON, como env.json.

Anulación de valores de variables de entorno

Para anular las variables de entorno por las definidas en el archivo JSON, utilice el argumento --env-vars con los comandos invoke o start-api. Por ejemplo:

sam local invoke --env-vars env.json

Capas

Si su aplicación incluye capas, para obtener información sobre cómo depurar los problemas con las capas de su host local, consulte Trabajar con capas.

Más información

Para ver un ejemplo práctico de cómo invocar funciones de forma local, consulte el Módulo 2: ejecutar localmente en el taller completo de AWS SAM.