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.
Automatice las pruebas de integración local con AWS SAM
Si bien puedes usarlo Introducción a las pruebas con sam local invoke para probar el código manualmente, AWS SAM también te permite probarlo mediante pruebas de integración automatizadas. Las pruebas de integración te ayudan a detectar problemas en las primeras etapas del ciclo de desarrollo, a mejorar la calidad del código y a ahorrar tiempo y, al mismo tiempo, a reducir los costes.
Con AWS SAM, puedes crear fácilmente testeos de integración automatizadas ejecutando primero las pruebas en las funciones de Lambda locales antes de implementarlas en la nube AWS. 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 Lambda invocado. Puedes invocarlo desde sus pruebas automatizadas. Debido a que este punto de conexión emula el punto de conexión de invocación 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 de conexión local de Lambda ejecutando el comando siguiente en el directorio que contiene su plantilla de 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. Cuando envía una invocación a este punto de conexión usando la AWS CLI o el SDK, ejecutará localmente la función de Lambda especificada en la solicitud y devolverá una respuesta. -
Ejecute una prueba de integración en el punto de conexión Lambda local.
En sus pruebas de integración, puede utilizar el SDK de AWS para invocar su función de Lambda con datos de prueba, esperar una respuesta y confirmar que la respuesta es la que espera. 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.
A continuación, se muestra un ejemplo de Python (los SDK de AWS para otros idiomas 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 SDK AWS para que se conecte a AWS Lambda en la nube AWS.