Introduzione ai test con sam local start-lambda - AWS Serverless Application Model

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Introduzione ai test con sam local start-lambda

Usa l'interfaccia a AWS Serverless Application Model riga di comando (AWS SAM CLI) sam local start-lambda per richiamare la AWS Lambda funzione tramite AWS Command Line Interface (AWS CLI) o. SDKs Questo comando avvia un endpoint locale che emula. AWS Lambda

Per utilizzarlosam local start-lambda, installa AWS SAM CLI completando quanto segue:

Prima dell'usosam local start-lambda, si consiglia una conoscenza di base di quanto segue:

Usare sam local start-lambda

Quando corri, il sam local start-lambda AWS SAM CLI presuppone che la directory di lavoro corrente sia la directory principale del progetto. La AWS SAM CLI cercherà innanzitutto un template.[yaml|yml] file all'interno di una .aws-sam sottocartella. Se non viene trovato, il AWS SAM CLI cercherà un template.[yaml|yml] file all'interno della directory di lavoro corrente.

Per usare sam local start-lambda
  1. Dalla directory principale del progetto, esegui quanto segue:

    $ sam local start-lambda <options>
  2. La AWS SAM CLI crea le tue funzioni Lambda in locale Docker contenitore. Quindi invia l'indirizzo locale all'endpoint HTTP del server. Di seguito è riportato un esempio:

    $ 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. Usa AWS CLI o SDKs per richiamare la funzione Lambda localmente.

    Di seguito è riportato un esempio di utilizzo di: AWS CLI

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

    Di seguito è riportato un esempio di utilizzo del 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")

Opzioni

Specificare un modello

Per specificare un modello per AWS SAM CLI per fare riferimento, utilizzate l'--templateopzione. La AWS SAM CLI caricherà solo quel AWS SAM modello e le risorse a cui punta. Di seguito è riportato un esempio:

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

Best practice

Se la tua applicazione ha una .aws-sam directory in esecuzionesam build, assicurati di eseguirla sam build ogni volta che aggiorni il codice della funzione. Quindi, sam local start-lambda esegui per testare localmente il codice funzionale aggiornato.

I test locali sono un'ottima soluzione per lo sviluppo e il test rapidi prima della distribuzione nel cloud. Tuttavia, i test locali non convalidano tutto, come le autorizzazioni tra le risorse nel cloud. Per quanto possibile, testa le tue applicazioni nel cloud. Ti consigliamo di sam syncutilizzarlo per velocizzare i flussi di lavoro di test sul cloud.

Ulteriori informazioni

Per un elenco di tutte le sam local start-lambda opzioni, vedisam local start-lambda.