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).
-
Para obtener una introducción a la CLI de AWS SAM, consulta ¿Qué es la CLI de AWS SAM?.
-
Para obtener documentación sobre el uso del subcomando
sam local invokede la CLI de AWS SAM, consulta Introducción a las pruebas con sam local invoke.
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-hostLIST-
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-hostexample.com:127.0.0.1 --beta-features | --no-beta-features-
Permitir o denegar las características beta.
--config-envTEXT-
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-filePATH-
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-hostTEXT-
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 especificarhost.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-interfaceTEXT-
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. Utiliza0.0.0.0para 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-argsTEXT-
Argumentos opcionales que se pasan al depurador.
--debug-port, -dTEXT-
Cuando se especifica, inicia el contenedor de funciones de Lambda en modo de depuración y expone este puerto en el host local.
--debugger-pathTEXT-
La ruta del host a un depurador montado en el contenedor de Lambda.
--docker-networkTEXT-
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, -vTEXT-
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, -nPATH-
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, -ePATH-
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-imageTEXT-
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-basedirDIRECTORY-
Especifica la ubicación del directorio base en el que se descargan las capas que utiliza la plantilla.
--log-file, -lTEXT-
El archivo de registro al que se van a enviar los registros de tiempo de ejecución.
--mount-symlinks-
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-sourceparanode_modulesen 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
--profileTEXT-
El perfil específico del archivo de credenciales que recibe las credenciales de AWS.
--regionTEXT-
La región de AWS en la que se va a realizar la implementación. Por ejemplo, us-east-1.
--runtimeTEXT-
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, -tPATH-
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-nameesté configurado enterraform.
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 --eventevents/s3.json S3JsonLoggerFunction
El siguiente ejemplo prueba la función HelloWorldFunction con el tiempo de ejecución de Python 3.11
$sam local invoke --runtimepython3.11 HelloWorldFunction