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.
Uso de AWS SAM CLI with Terraform para la depuración y las pruebas locales
En este tema se explica cómo utilizar las compatibles AWS Serverless Application Model Interfaz de línea de comandos (AWS SAM CLI) comandos con su Terraform proyectos y Terraform Cloud.
Para proporcionar comentarios y enviar solicitudes de funciones, cree un GitHub Problema
Temas
Pruebas locales con sam local invoke
nota
Para utilizar el AWS SAM CLI para realizar pruebas a nivel local, debe tener Docker instalado y configurado. Para obtener instrucciones, consulte Instalación de Docker para usarlo con la CLI de AWS SAM.
El siguiente es un ejemplo de prueba local de la función de Lambda mediante la transmisión de un evento:
$
sam local invoke --hook-name terraform
hello_world_function
-eevents/event.json
-
Para obtener más información acerca de este comando, consulte Introducción a las pruebas con sam local invoke.
Pruebas locales con sam local start-api
Para usar sam local start-api
con Terraform, ejecute lo siguiente:
$
sam local start-api --hook-name terraform
A continuación, se muestra un ejemplo:
$
sam local start-api --hook-name terraform
Running Prepare Hook to prepare the current application Executing prepare hook of hook "terraform" Initializing Terraform application ... Creating terraform plan and getting JSON output .... Generating metadata file Unresolvable attributes discovered in project, run terraform apply to resolve them. Finished generating metadata file. Storing in... Prepare hook completed and metadata file generated at: ... Mounting HelloWorldFunction at http://127.0.0.1:3000/hello [GET] Mounting None at http://127.0.0.1:3000/hello [POST] You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically. If you used sam build before running local commands, you will need to re-run sam build for the changes to be picked up. You only need to restart SAM CLI if you update your AWS SAM template 2023-06-26 13:21:20 * Running on http://127.0.0.1:3000/ (Press CTRL+C to quit)
Para obtener más información acerca de este comando, consulte Introducción a las pruebas con sam local start-api.
Funciones de Lambda que utilizan autorizadores de Lambda
En el caso de las funciones Lambda configuradas para utilizar autorizadores Lambda, AWS SAM CLI invocará automáticamente el autorizador de Lambda antes de invocar el punto final de la función de Lambda.
-
Para obtener más información sobre esta función, consulte AWS SAM CLI, consulte Funciones de Lambda que utilizan autorizadores de Lambda.
-
Para obtener más información sobre el uso de autorizadores Lambda en Terraform, consulte Resource: aws_api_gateway_authorizer
en la Terraform registro.
Pruebas locales con sam local start-lambda
A continuación se muestra un ejemplo de cómo probar la función Lambda localmente con el AWS Command Line Interface (AWS CLI):
-
Use la AWS SAM CLI para crear un entorno de pruebas local:
$
sam local start-lambda --hook-name terraform
hello_world_function
-
Use la AWS CLI para invocar su función localmente:
$
aws lambda invoke --function-name
hello_world_function
--endpoint-urlhttp://127.0.0.1:3001/ response.json --cli-binary-format raw-in-base64-out --payload file://events/event.json
Para obtener más información acerca de este comando, consulte Introducción a las pruebas con sam local start-lambda.
Terraform limitaciones
Las siguientes son las limitaciones a la hora de utilizar el AWS SAM CLI with Terraform:
-
Funciones de Lambda vinculadas a varias capas.
-
Terraform variables locales que definen los vínculos entre los recursos.
-
Referencia a una función de Lambda que aún no se ha creado. Esto incluye las funciones que se definen en el atributo de cuerpo del REST API recurso.
Para evitar estas limitaciones, puede ejecutar terraform apply
cuando se agrega un nuevo recurso.