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.
Si bien puede usarlo Introducción a las pruebas con sam local invoke para probar el código manualmente, AWS SAM también le permite probar su código mediante pruebas de integración automatizadas. Las pruebas de integración le ayudan a detectar problemas en las primeras etapas del ciclo de desarrollo, a mejorar la calidad del código, a ahorrar tiempo y, al mismo tiempo, a reducir los costos.
Para crear pruebas de integración automatizadas AWS SAM, primero debe ejecutar pruebas con funciones Lambda locales antes de implementarlas en la AWS nube. El comando Introducción a las pruebas con sam local start-lambda inicia un punto de conexión local que emula el punto de conexión de invocación de Lambda. Puedes invocarlo desde sus pruebas automatizadas. Debido a que este punto de conexión emula el punto de conexión de invocación de Lambda, puede escribir pruebas una vez y ejecutarlas (sin ninguna modificación) en la función de Lambda local o en una función de Lambda implementada. También puede ejecutar las mismas pruebas en una pila de AWS SAM implementada en su canalización de CI/CD.
Así es como funciona el proceso:
-
Inicie el punto de conexión Lambda local.
Inicie el punto final Lambda local ejecutando el siguiente comando en el directorio que contiene la plantilla AWS SAM :
sam local start-lambda
Este comando inicia un punto de conexión local en
http://127.0.0.1:3001
que emula AWS Lambda. Puede ejecutar las pruebas automatizadas en este punto de conexión Lambda local. Al invocar este punto final mediante el SDK AWS CLI o el SDK, ejecuta localmente la función Lambda que se especifica en la solicitud y devuelve una respuesta. -
Ejecute una prueba de integración en el punto de conexión Lambda local.
En la prueba de integración, puede usar el AWS SDK para invocar la función Lambda con los datos de la prueba, esperar la respuesta y comprobar que la respuesta es la esperada. Para ejecutar la prueba de integración localmente, debe configurar el SDK de AWS para que envía la llamada a la API invocación de Lambda al punto de conexión local de Lambda iniciado en el paso anterior.
El siguiente es un ejemplo de Python ( AWS SDKs los otros lenguajes tienen configuraciones similares):
import boto3 import botocore # Set "running_locally" flag if you are running the integration test locally running_locally = True if running_locally: # Create Lambda SDK client to connect to appropriate Lambda endpoint lambda_client = boto3.client('lambda', region_name="us-west-2", endpoint_url="http://127.0.0.1:3001", use_ssl=False, verify=False, config=botocore.client.Config( signature_version=botocore.UNSIGNED, read_timeout=15, retries={'max_attempts': 0}, ) ) else: lambda_client = boto3.client('lambda') # Invoke your Lambda function as you normally usually do. The function will run # locally if it is configured to do so response = lambda_client.invoke(FunctionName="HelloWorldFunction") # Verify the response assert response == "Hello World"
Puede usar este código para probar las funciones de Lambda implementadas configurando
running_locally
enFalse
. Esto configura el AWS SDK al que se debe conectar AWS Lambda en la AWS nube.