Introdução aos testes com sam local start-lambda - AWS Serverless Application Model

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 SAM CLI 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 usarsam local start-lambda, instale o AWS SAM CLI preenchendo 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ê corresam local start-lambda, o AWS SAM CLI presume que seu diretório de trabalho atual seja o diretório raiz do seu projeto. O AWS SAM CLI primeiro procurará um template.[yaml|yml] arquivo dentro de uma .aws-sam subpasta. Se não for encontrado, o AWS SAM CLI 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>
  2. O AWS SAM CLI constrói suas funções Lambda em um local Docker recipiente. Em seguida, ele envia o endereço local para o endpoint HTTP do servidor. Veja um exemplo a seguir:

    $ 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. 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 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")

Opções

Especificar um modelo

Para especificar um modelo para o AWS SAM CLI para referenciar, use a --template opção. O AWS SAM CLI carregará apenas esse AWS SAM modelo e os recursos para os quais ele aponta. Veja um exemplo a seguir:

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

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.