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
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?
-
Para obter uma lista de opções de comando
sam local start-lambda, consulte sam local start-lambda.
nota
sam local start-lambdasuporta 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.
Para usar o sam local start-lambda, instale o AWS SAM CLI fazendo o seguinte:
Antes de usar sam local start-lambda, recomendamos uma compreensão básica do seguinte:
Usando o Local do SAM start-lambda
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
-
No diretório raiz do seu projeto, execute o seguinte:
$sam local start-lambda<options> -
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-lambdaInitializing 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 -
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-nameStatusCode: 200 (END)"HelloWorldFunction"--endpoint-url"http://127.0.0.1:3001"--no-verify-ssl out.txtVeja 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
Especificar um modelo
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 --templatemyTemplate.yaml
Para obter mais informações sobre AWS SAM modelos, consulteAnatomia do modelo AWS SAM.
Práticas recomendadas
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 para acelerar seus fluxos de trabalho de testes na nuvem.
Saiba mais
Para obter uma lista de todas as opções sam local start-lambda, consulte sam local start-lambda.