Introducción a las pruebas con sam local start-lambda - AWS Serverless Application Model

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.

Introducción a las pruebas con sam local start-lambda

Usa el AWS Serverless Application Model sam local start-lambda subcomando Command Line Interface (AWS SAMCLI) para invocar tu AWS Lambda función a través de AWS Command Line Interface (AWS CLI) o los SDK. Este comando inicia un punto de conexión local que emula AWS Lambda.

Para usar sam local start-lambda, complete lo siguiente para instalar la CLI de AWS SAM:

Antes de usar sam local start-lambda, se recomienda tener conocimientos básicos de lo siguiente:

Utilizando sam local start-lambda

De forma predeterminada, cuando ejecuta sam local start-lambda, la CLI de AWS SAM asume que su directorio de trabajo actual es el directorio raíz del proyecto. Primero la CLI de AWS SAM buscará un archivo template.[yaml|yml] dentro de una subcarpeta .aws-sam. Si no lo encuentra, la CLI de AWS SAM buscará un archivo template.[yaml|yml] en su directorio de trabajo actual.

Para usar sam local start-lambda
  1. Desde el directorio raíz del proyecto, ejecute lo siguiente:

    $ sam local start-lambda <options>
  2. La CLI de AWS SAM compila las funciones de Lambda en un contenedor local Docker. A continuación, envía la dirección local al punto de conexión de su servidor HTTP. A continuación, se muestra un ejemplo:

    $ sam local start-lambda Initializing the lambda functions containers. Local image is up-to-date Using local image: public.ecr.aws/lambda/python:3.9-rapid-x86_64. Mounting /Users/.../sam-app/hello_world as /var/task:ro,delegated, inside runtime container Containers Initialization is done. Starting the Local Lambda Service. You can now invoke your Lambda Functions defined in your template through the endpoint. 2023-04-13 07:25:43 WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Running on http://127.0.0.1:3001 2023-04-13 07:25:43 Press CTRL+C to quit
  3. Utilice los AWS CLI o los SDK para invocar la función Lambda de forma local.

    A continuación, se muestra un ejemplo mediante la AWS CLI:

    $ aws lambda invoke --function-name "HelloWorldFunction" --endpoint-url "http://127.0.0.1:3001" --no-verify-ssl out.txt StatusCode: 200 (END)

    A continuación, se muestra un ejemplo en el que se utiliza el for: AWS SDK Python

    import boto3 from botocore.config import Config from botocore import UNSIGNED lambda_client = boto3.client('lambda', endpoint_url="http://127.0.0.1:3001", use_ssl=False, verify=False, config=Config(signature_version=UNSIGNED, read_timeout=1, retries={'max_attempts': 0} ) ) lambda_client.invoke(FunctionName="HelloWorldFunction")

Opciones

Especificar plantilla

Para especificar una plantilla a la que CLI de AWS SAM haga referencia, utilice la opción --template. AWS SAMCLICargará solo esa AWS SAM plantilla y los recursos a los que apunta. A continuación, se muestra un ejemplo:

$ sam local start-lambda --template myTemplate.yaml

Prácticas recomendadas

Si la aplicación tiene un directorio .aws-sam desde el que se ejecuta sam build, asegúrese de ejecutar sam build cada vez que actualice el código de la función. A continuación, ejecute sam local start-lambda para probar localmente el código de función actualizado.

Las pruebas locales son una excelente solución para desarrollar y probar rápidamente antes de implementarlas en la nube. Sin embargo, las pruebas locales no lo validan todo, como los permisos entre los recursos de la nube. En la medida de lo posible, pruebe sus aplicaciones en la nube. Le recomendamos que utilice sam sync para acelerar los flujos de trabajo de pruebas en la nube.

Más información

Para obtener una lista de todas las opciones sam local start-lambda, consulte sam local start-lambda.