

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Introdução aos testes com sam local start-lambda
<a name="using-sam-cli-local-start-lambda"></a>

Use o AWS SAMCLI subcomando `sam local start-lambda` para invocar sua função Lambda por meio do e. AWS CLI SDKs Esse comando inicia um endpoint local que emula o Lambda.
+ Para obter uma introdução ao AWS SAMCLI, consulte [O que é o AWS SAMCLI?](what-is-sam-overview.md#what-is-sam-cli)
+ Para obter uma lista de opções de comando `sam local start-lambda`, consulte [sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md).

**nota**  
`sam local start-lambda`suporta funções duráveis com recursos automáticos de verificação e repetição. As funções duráveis funcionam perfeitamente com o endpoint Lambda local.

## Pré-requisitos
<a name="using-sam-cli-local-start-api-prerequisites"></a>

Para usar o `sam local start-lambda`, instale o AWS SAM CLI fazendo o seguinte:
+ [AWS SAM pré-requisitos](prerequisites.md).
+ [Instale o AWS SAM CLI](install-sam-cli.md).

Antes de usar `sam local start-lambda`, recomendamos uma compreensão básica do seguinte:
+ [Configurando o AWS SAM CLI](using-sam-cli-configure.md).
+ [Crie seu aplicativo em AWS SAM](using-sam-cli-init.md).
+ [Introdução à construção com AWS SAM](using-sam-cli-build.md).
+ [Introdução à implantação com AWS SAM](using-sam-cli-deploy.md).

## Usando o Local do SAM start-lambda
<a name="using-sam-cli-local-start-lambda-use"></a>

Quando você executa `sam local start-lambda`, AWS SAMCLI pressupõe que seu diretório de trabalho atual seja o diretório raiz do seu projeto. O AWS SAM CLI, primeiro procurará um arquivo `template.[yaml|yml]` dentro de uma subpasta `.aws-sam`. Se não for encontrado, o AWS SAMCLI procurará um `template.[yaml|yml]` arquivo em seu diretório de trabalho atual.

**Para usar o Local do SAM start-lambda**

1. No diretório raiz do seu projeto, execute o seguinte:

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

1. O AWS SAMCLI cria suas funções do Lambda em um contêiner Docker local. Em seguida, ele envia o endereço local para o endpoint do servidor HTTP. Este é um exemplo:

   ```
   $ 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. Use o AWS CLI ou SDKs para invocar sua função Lambda localmente.

   Veja a seguir um exemplo de como usar a AWS CLI:

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

   Veja a seguir um exemplo usando o AWS SDK forPython:

   ```
   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")
   ```

## Opções
<a name="using-sam-cli-local-start-lambda-options"></a>

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

Para especificar um modelo para o AWS SAMCLI para referência, use a opção `--template`. Eles AWS SAMCLI carregarão apenas esse AWS SAM modelo e os recursos para os quais ele aponta. Este é um exemplo:

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

Para obter mais informações sobre AWS SAM modelos, consulte[AWS SAM anatomia do modelo](sam-specification-template-anatomy.md).

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

Se seu aplicativo tiver um diretório `.aws-sam` executando `sam build`, certifique-se de executar o `sam build` sempre que atualizar o código da função. Em seguida, execute o `sam local start-lambda` para testar localmente seu código de função atualizado.

O teste local é uma ótima solução para desenvolvimento e teste rápidos antes da implantação na nuvem. No entanto, os testes locais não validam tudo, como permissões entre seus recursos na nuvem. Tanto quanto possível, teste seus aplicativos na nuvem. Recomendamos [usar o `sam sync`](using-sam-cli-sync.md) para acelerar seus fluxos de trabalho de testes na nuvem.

## Saiba mais
<a name="using-sam-cli-local-start-lambda-learn"></a>

Para obter uma lista de todas as opções `sam local start-lambda`, consulte [sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md).