sam local invoke - AWS Serverless Application Model

sam local invoke

Esta página proporciona información de referencia para el subcomando sam local invoke de la Interfaz de línea de comando de AWS Serverless Application Model (AWS SAMCLI).

El subcomando sam local invoke inicia una invocación única de una función AWS Lambda de forma local.

Uso

$ sam local invoke <arguments> <options>
nota

Si tiene más de una función definida en la plantilla AWS SAM, proporciones el identificador lógico de la función que desee invocar.

Argumentos

ID de recursos

El ID de la función de Lambda que se invocará.

Este argumento es opcional. Si la aplicación contiene una sola función de Lambda, la CLI de AWS SAM la invocará. Si la aplicación contiene varias funciones, proporciones el ID de la función que se va a invocar.

Valores válidos: el identificador lógico o el ARN del recurso.

Opciones

--add-host LIST

Pasa una asignación de nombre de host a dirección IP al archivo de host del contenedor de Docker. Este parámetro se puede pasar varias veces.

Ejemplo:: --add-host example.com:127.0.0.1

--beta-features | --no-beta-features

Permitir o denegar las características beta.

--config-env TEXT

El nombre del entorno que especifica los valores de los parámetros predeterminados del archivo de configuración que se va a utilizar. El valor por defecto es «predeterminado». Para obtener más información sobre los archivos de configuración, consulta Archivo de configuración de la CLI de AWS SAM.

--config-file PATH

La ruta y el nombre del archivo de configuración que contiene los valores de parámetros predeterminados que se van a utilizar. El valor por defecto es «samconfig.toml» en la raíz del directorio del proyecto. Para obtener más información sobre los archivos de configuración, consulta Archivo de configuración de la CLI de AWS SAM.

--container-env-vars

(Opcional) Pase las variables de entorno al contenedor de imágenes de la función de Lambda al depurar localmente.

--container-host TEXT

Host del contenedor Lambda emulado localmente. El valor predeterminado es localhost. Si quiere ejecutar la CLI de AWS SAM en un contenedor Docker en macOS, puede especificar host.docker.internal. Si quiere ejecutar el contenedor en un host diferente al de la CLI de AWS SAM, puede especificar la dirección IP del host remoto.

--container-host-interface TEXT

La dirección IP de la interfaz de red del host a la que deben enlazarse los puertos del contenedor. El valor predeterminado es 127.0.0.1. Utiliza 0.0.0.0 para enlazarse a todas las interfaces.

--debug

Activa el registro de depuración para imprimir los mensajes de depuración que genera la CLI de AWS SAM y para mostrar las marcas horarias.

--debug-args TEXT

Argumentos opcionales que se pasan al depurador.

--debug-port, -d TEXT

Cuando se especifica, inicia el contenedor de funciones de Lambda en modo de depuración y expone este puerto en el host local.

--debugger-path TEXT

La ruta del host a un depurador montado en el contenedor de Lambda.

--docker-network TEXT

El nombre o el ID de una red de Docker existente a la que deben conectarse los contenedores de Lambda y Docker, junto con la red en modo puente predeterminada. Si esto no se especifica, los contenedores de Lambda se conectan únicamente a la red Docker en modo puente predeterminada.

--docker-volume-basedir, -v TEXT

La ubicación del directorio base en el que se encuentra el archivo AWS SAM. Si Docker se ejecuta en una máquina remota, debe montar la ruta en la que se encuentra el archivo AWS SAM en la máquina Docker y modificar este valor para que coincida con la máquina remota.

--env-vars, -n PATH

Archivo JSON que contiene valores para las variables de entorno de la función de Lambda. Para obtener más información sobre los archivos de variable de entorno, consulta Archivo de variables de entorno.

--event, -e PATH

El archivo JSON que contiene los datos de eventos que se pasan a la función de Lambda cuando se invoca. Si no especifica esta opción, no se asume ningún evento. Para introducir JSON desde stdin, debe introducir el valor «-». Para obtener más información sobre los formatos de los mensajes de eventos de los distintos servicios de AWS, consulta Cómo trabajar con otros servicios en la Guía para desarrolladores de AWS Lambda.

--force-image-build

Especifica si la CLI de AWS SAM debe reconstruir la imagen utilizada para invocar funciones de Lambda con capas.

--help

Muestra este mensaje y sale.

--hook-name TEXT

El nombre del enlace que se utiliza para ampliar la funcionalidad de la CLI de AWS SAM.

Valores aceptados: terraform.

--invoke-image TEXT

El URI de la imagen del contenedor que quieres usar para la invocación de la función local. De forma predeterminada, AWS SAM extrae la imagen del contenedor de Amazon ECR Public (que están listadas en Repositorios de imágenes para AWS SAM). Utiliza esta opción para extraer la imagen desde otra ubicación.

Por ejemplo, sam local invoke MyFunction --invoke-image amazon/aws-sam-cli-emulation-image-python3.8.

--layer-cache-basedir DIRECTORY

Especifica la ubicación del directorio base en el que se descargan las capas que utiliza la plantilla.

--log-file, -l TEXT

El archivo de registro al que se van a enviar los registros de tiempo de ejecución.

Garantiza que la CLI de AWS SAM siempre monte los enlaces simbólicos que están presentes en los archivos para compilarlos o invocarlos. Esto solo se aplica a los enlaces simbólicos del directorio de nivel superior (es decir, los que se encuentran directamente en la raíz de la función). Por defecto, los enlaces simbólicos no se montan, excepto los necesarios para utilizar build-in-source para node_modules en NodeJS.

--no-event

Invoca la función con un evento vacío.

--no-memory-limit

Elimina la limitación de memoria en el contenedor durante la invocación local, incluso cuando la memoria está configurada en la plantilla de AWS SAM.

--parameter-overrides

Una cadena que contiene anulaciones de parámetros CloudFormation codificadas como pares de clave-valor. Usa el mismo formato que AWS Command Line Interface (AWS CLI). El formato de la CLI de AWS SAM es de palabras clave y de valor explícitas, y cada modificación está separada por un espacio. A continuación, se incluyen dos ejemplos:

  • --parameter-overrides ParameterKey=hello,ParameterValue=world

  • --parameter-overrides ParameterKey=hello,ParameterValue=world ParameterKey=example1,ParameterValue=example2 ParameterKey=apple,ParameterValue=banana

--profile TEXT

El perfil específico del archivo de credenciales que recibe las credenciales de AWS.

--region TEXT

La región de AWS en la que se va a realizar la implementación. Por ejemplo, us-east-1.

--runtime TEXT

Utiliza el tiempo de ejecución especificado para invocar una función de Lambda de forma local. Esto anula el tiempo de ejecución definido en el archivo template.yml. Esto también permite probar funciones de Lambda con diferentes tiempos de ejecución sin modificar la configuración original de la función.

--save-params

Guarda los parámetros que proporciones en la línea de comandos en el archivo de configuración de AWS SAM.

--shutdown

Emula un evento de apagado una vez finalizada la invocación, para probar la forma en que la extensión gestiona el comportamiento del apagado.

--skip-prepare-infra

Omite la fase de preparación si no se ha realizado ningún cambio en la infraestructura. Ejecuta con la opción --hook-name.

--skip-pull-image

De forma predeterminada, la CLI de AWS SAM comprueba el tiempo de ejecución remoto más reciente de Lambda y actualiza la imagen local automáticamente para mantenerla sincronizada.

Especifica esta opción para omitir la extracción de la imagen de Docker más reciente de su tiempo de ejecución de Lambda.

--template, -t PATH

El archivo de la plantilla AWS SAM.

Esta opción no es compatible con --hook-name.

nota

Si especificas esta opción, AWS SAM carga solo la plantilla y los recursos locales a los que apunta.

--terraform-plan-file

La ruta relativa o absoluta al archivo del plan local Terraform cuando se utiliza la CLI de AWS SAM con Terraform Cloud. Esta opción requiere que --hook-name esté configurado en terraform.

Ejemplos

En el siguiente ejemplo, se utiliza un evento generado para realizar pruebas locales mediante un evento s3.json para invocar una función de Lambda de forma local.

$ sam local invoke --event events/s3.json S3JsonLoggerFunction

El siguiente ejemplo prueba la función HelloWorldFunction con el tiempo de ejecución de Python 3.11

$ sam local invoke --runtime python3.11 HelloWorldFunction