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.
Integración con pruebas automatizadas
Puede usar el comando sam local invoke
para probar manualmente el código mediante la ejecución local de las funciones de Lambda. Con él AWS SAMCLI, puede crear fácilmente pruebas de integración automatizadas ejecutando primero las pruebas en las funciones Lambda locales antes de implementarlas en la AWS nube.
El sam local start-lambda
comando inicia un punto final local que emula el punto final AWS Lambda invocado. Puede invocarlo desde sus pruebas automatizadas. Como este punto final emula el punto final de AWS Lambda invocación, puede escribir pruebas una vez y, a continuación, ejecutarlas (sin modificaciones) en la función Lambda local o en una función Lambda implementada. También puede ejecutar las mismas pruebas en una AWS SAM pila 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íe 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 (los AWS SDK para 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.