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
Utilizzate il AWS Serverless Application Model sam local start-lambda
sottocomando Command Line Interface (AWS SAMCLI) per richiamare la AWS Lambda funzione tramite () o gli AWS Command Line Interface SDK.AWS CLI Questo comando avvia un endpoint locale che emula. AWS Lambda
-
Per un'introduzione a AWS SAMCLI, vedere. Che cos'è il? AWS SAMCLI
-
Per un elenco delle opzioni di
sam local start-lambda
comando, vederesam local start-lambda.
Per utilizzarlosam local start-lambda
, AWS SAMCLI installate il compilando quanto segue:
Prima dell'usosam local start-lambda
, si consiglia una conoscenza di base di quanto segue:
Usare sam local start-lambda
Quando si eseguesam local start-lambda
, si AWS SAMCLI presuppone che la directory di lavoro corrente sia la directory principale del progetto. AWS SAMCLICercheranno innanzitutto un template.[yaml|yml]
file all'interno di una .aws-sam
sottocartella. Se non viene trovato, AWS SAMCLI cercherà un template.[yaml|yml]
file all'interno della directory di lavoro corrente.
Per usare sam local start-lambda
-
Dalla directory principale del progetto, esegui quanto segue:
$
sam local start-lambda
<options>
-
AWS SAMCLICrea le tue funzioni Lambda in un Docker contenitore locale. Quindi invia l'indirizzo locale all'endpoint del server HTTP. 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 -
Usa gli AWS CLI o SDK per richiamare la tua funzione Lambda localmente.
Di seguito è riportato un esempio di utilizzo di: AWS CLI
$
aws lambda invoke --function-name
StatusCode: 200 (END)"HelloWorldFunction"
--endpoint-url"http://127.0.0.1:3001"
--no-verify-ssl out.txtDi seguito è riportato un esempio di utilizzo del AWS SDK comando 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")
Opzioni
Specificare un modello
Per specificare un modello AWS SAMCLI a cui fare riferimento, utilizzate l'--template
opzione. AWS SAMCLICaricherà 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, consultasam local start-lambda.