

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
<a name="using-sam-cli-local-start-lambda"></a>

Utilice el AWS SAMCLI subcomando `sam local start-lambda` para invocar la función Lambda mediante y. AWS CLI SDKs Este comando inicia un punto de conexión local que emula Lambda.
+ Para obtener una introducción a la, consulte AWS SAMCLI [¿Qué es el? AWS SAMCLI](what-is-sam-overview.md#what-is-sam-cli)
+ Para ver una lista de opciones de comandos `sam local start-lambda`, consulta [sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md).

**nota**  
`sam local start-lambda`admite funciones duraderas con funciones automáticas de puntos de control y reproducción. Las funciones duraderas funcionan a la perfección con el punto final Lambda local.

## Requisitos previos
<a name="using-sam-cli-local-start-api-prerequisites"></a>

Para usar `sam local start-lambda`, completa lo siguiente para instalar la CLI de AWS SAM:
+ [AWS SAM requisitos previos](prerequisites.md).
+ [Instala la AWS SAM CLI](install-sam-cli.md).

Antes de usar `sam local start-lambda`, se recomienda tener conocimientos básicos de lo siguiente:
+ [Configuración de la AWS SAM de CLI](using-sam-cli-configure.md).
+ [Crea tu aplicación en AWS SAM](using-sam-cli-init.md).
+ [Introducción a la construcción con AWS SAM](using-sam-cli-build.md).
+ [Introducción a la implementación con AWS SAM](using-sam-cli-deploy.md).

## Utilizando sam local start-lambda
<a name="using-sam-cli-local-start-lambda-use"></a>

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, ejecuta lo siguiente:

   ```
   $ sam local start-lambda <options>
   ```

1. 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
   ```

1. 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 "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 para 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
<a name="using-sam-cli-local-start-lambda-options"></a>

### Especificar plantilla
<a name="using-sam-cli-local-start-lambda-options-template"></a>

Para especificar una plantilla a la que CLI de AWS SAM haga referencia, utiliza 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
```

Para obtener más información sobre AWS SAM las plantillas, consulte[AWS SAM anatomía de la plantilla](sam-specification-template-anatomy.md).

## Prácticas recomendadas
<a name="using-sam-cli-local-start-lambda-best"></a>

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, ejecuta `sam local start-lambda` para probar localmente el código de función actualizado.

El testeo local son una excelente solución para desarrollar y probar rápidamente antes de implementarlas en la nube. Sin embargo, las testeo local 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. Te recomendamos que [utiliza `sam sync`](using-sam-cli-sync.md) para acelerar los flujos de trabajo de pruebas en la nube.

## Más información
<a name="using-sam-cli-local-start-lambda-learn"></a>

Para obtener una lista de todas las opciones `sam local start-lambda`, consulta [sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md).