

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
<a name="using-sam-cli-local-start-lambda"></a>

Usa il AWS SAMCLI sottocomando `sam local start-lambda` per richiamare la funzione Lambda tramite and. AWS CLI SDKs Questo comando avvia un endpoint locale che emula Lambda.
+ Per un'introduzione a, vedere AWS SAMCLI [Che cos'è il? AWS SAMCLI](what-is-sam-overview.md#what-is-sam-cli)
+ Per un elenco delle opzioni di `sam local start-lambda` comando, vedere[sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md).

**Nota**  
`sam local start-lambda`supporta funzioni durevoli con funzionalità di checkpoint e replay automatici. Le funzioni durevoli funzionano perfettamente con l'endpoint Lambda locale.

## Prerequisiti
<a name="using-sam-cli-local-start-api-prerequisites"></a>

Per utilizzarlo`sam local start-lambda`, installa il AWS SAMCLI completando quanto segue:
+ [AWS SAM prerequisiti](prerequisites.md).
+ [Installa il AWS SAMCLI](install-sam-cli.md).

Prima dell'uso`sam local start-lambda`, si consiglia una conoscenza di base di quanto segue:
+ [Configurazione del AWS SAMCLI](using-sam-cli-configure.md).
+ [Crea la tua candidatura in AWS SAM](using-sam-cli-init.md).
+ [Introduzione alla costruzione con AWS SAM](using-sam-cli-build.md).
+ [Introduzione alla distribuzione con AWS SAM](using-sam-cli-deploy.md).

## Usare sam local start-lambda
<a name="using-sam-cli-local-start-lambda-use"></a>

Quando si esegue`sam 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**

1. Dalla directory principale del progetto, esegui quanto segue:

   ```
   $ sam local start-lambda <options>
   ```

1.  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
   ```

1. 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 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
<a name="using-sam-cli-local-start-lambda-options"></a>

### Specificare un modello
<a name="using-sam-cli-local-start-lambda-options-template"></a>

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
```

Per ulteriori informazioni sui AWS SAM modelli, vedere[AWS SAM anatomia del modello](sam-specification-template-anatomy.md).

## Best practice
<a name="using-sam-cli-local-start-lambda-best"></a>

Se l'applicazione ha una `.aws-sam` directory in esecuzione`sam 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 sync`utilizzarlo](using-sam-cli-sync.md) per velocizzare i flussi di lavoro di test sul cloud.

## Ulteriori informazioni
<a name="using-sam-cli-local-start-lambda-learn"></a>

Per un elenco di tutte le `sam local start-lambda` opzioni, consulta[sam local start-lambda](sam-cli-command-reference-sam-local-start-lambda.md).