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
Utilice la interfaz de línea de AWS Serverless Application Model comandos (AWS SAM CLI) para invocar la AWS Lambda función mediante el sam local start-lambda
subcomando AWS Command Line Interface (AWS CLI) o. SDKs Este comando inicia un punto de conexión local que emula AWS Lambda.
-
Para una introducción a la AWS SAM CLI, consulte ¿Qué es el AWS SAM CLI?
-
Para ver una lista de opciones de comandos
sam local start-lambda
, consulte sam local start-lambda.
Para usarlosam local start-lambda
, instale el AWS SAM CLI completando lo siguiente:
Antes de usar sam local start-lambda
, se recomienda tener conocimientos básicos de lo siguiente:
Utilizando sam local start-lambda
Cuando corres, el sam local start-lambda
AWS SAM CLI asume que el directorio de trabajo actual es el directorio raíz del proyecto. El AWS SAM CLI buscará primero un template.[yaml|yml]
archivo dentro de una .aws-sam
subcarpeta. Si no lo encuentra, el AWS SAM CLI buscará un template.[yaml|yml]
archivo en su directorio de trabajo actual.
Para usar sam local start-lambda
-
Desde el directorio raíz del proyecto, ejecute lo siguiente:
$
sam local start-lambda
<options>
-
El AWS SAM CLI crea sus funciones Lambda en un entorno local Docker contenedor. A continuación, envía la dirección local al punto final de su HTTP servidor. 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 -
Utilice AWS CLI o SDKs para invocar la función Lambda localmente.
A continuación, se muestra un ejemplo mediante la AWS CLI:
$
aws lambda invoke --function-name
StatusCode: 200 (END)"HelloWorldFunction"
--endpoint-url"http://127.0.0.1:3001"
--no-verify-ssl out.txtA continuación se muestra un ejemplo en el que se utiliza la AWS SDK for 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 para AWS SAM CLI para hacer referencia, utilice la --template
opción. El AWS SAM CLI cargará 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.