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 un'introduzione al AWS SAM CLI, vedi Che cos'è il AWS SAM CLI?
-
Per un elenco delle opzioni di
sam local start-lambda
comando, vederesam local start-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
-
Dalla directory principale del progetto, esegui quanto segue:
$
sam local start-lambda
<options>
-
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 -
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
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 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'--template
opzione. 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.