

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à.

# AWS SAM CLI
<a name="using-sam-cli"></a>

AWS Serverless Application Model Command Line Interface (AWS SAMCLI) è uno strumento a riga di comando per lo sviluppo e il test locali di applicazioni serverless. Ti AWS SAMCLI consente di creare, trasformare, distribuire, eseguire il debug, impacchettare, inizializzare e sincronizzare le tue applicazioni serverless localmente prima di distribuirle nel cloud.

AWS SAMCLIfunziona con applicazioni serverless definite utilizzando diversi framework e strumenti Infrastructure as Code (IaC), con diversi livelli di supporto:
+ **AWS SAM modelli**: fornisce supporto nativo con il set completo di funzionalità, tra cui funzionalità locali di test, debug, creazione di pacchetti e implementazione.
+ **AWS Applicazioni CDK**: supporta il test locale delle funzioni Lambda dopo aver sintetizzato l'applicazione CloudFormation CDK in modelli AWS utilizzando il comando cdk synth.
+ **CloudFormation modelli** — Offre una compatibilità diretta perché AWS SAM estende CloudFormation, supporta risorse serverless definite nei modelli standard. CloudFormation 
+ **Applicazioni Terraform**: forniscono un supporto limitato per la creazione e il test locale delle funzioni Lambda. Richiede la generazione di artefatti AWS SAM modello che rappresentino le funzioni Lambda definite da Terraform.

Per il supporto più completo delle funzionalità e un'esperienza di sviluppo semplificata, consigliamo di utilizzare modelli nativi. AWS SAM 

**Topics**
+ [Come vengono AWS SAMCLI documentati i comandi](#using-sam-cli-documentation)
+ [Configurazione del AWS SAMCLI](using-sam-cli-configure.md)
+ [AWS SAMCLIcomandi principali](using-sam-cli-corecommands.md)
+ [Test locali con AWS SAMCLI](using-sam-cli-local-testing.md)

## Come vengono AWS SAMCLI documentati i comandi
<a name="using-sam-cli-documentation"></a>

AWS SAMCLIi comandi sono documentati utilizzando il seguente formato:
+ **Richiesta**: per impostazione predefinita, la Linux richiesta è documentata e viene visualizzata come (). `$ ` Per i comandi Windows specifici, (`> `) viene utilizzato come prompt. Non includere il prompt quando digiti i comandi.
+ **Directory**: quando i comandi devono essere eseguiti da una directory specifica, il nome della directory viene visualizzato prima del simbolo del prompt.
+ **Input utente**: il testo del comando da immettere nella riga di comando viene formattato come **user input**.
+ Testo **sostituibile: il testo** variabile, ad esempio i nomi di file e i parametri, viene formattato come. *replaceable text* Nei comandi a più righe o nei comandi in cui è richiesto un input specifico da tastiera, l'input da tastiera può essere visualizzato anche come testo sostituibile. Ad esempio, *ENTER*.
+ **Output**: l'output restituito come risposta al comando viene formattato come. `computer output`

Il `sam deploy` comando e l'output seguenti sono un esempio:

```
$ sam deploy --guided --template template.yaml

Configuring SAM deploy
======================

    Looking for config file [samconfig.toml] :  Found
    Reading default arguments  :  Success

    Setting default arguments for 'sam deploy'
    =========================================
    Stack Name [sam-app]: ENTER
    AWS Region [us-west-2]: ENTER
    #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
    Confirm changes before deploy [y/N]: ENTER
    #SAM needs permission to be able to create roles to connect to the resources in your template
    Allow SAM CLI IAM role creation [Y/n]: ENTER
    #Preserves the state of previously provisioned resources when an operation fails
    Disable rollback [y/N]: ENTER
    HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y
    Save arguments to configuration file [Y/n]: ENTER
    SAM configuration file [samconfig.toml]: ENTER
    SAM configuration environment [default]: ENTER
```

1. `sam deploy --guided --template template.yaml`è il comando immesso nella riga di comando.

1. **sam deploy --guided --template**deve essere fornito così com'è.

1. *template.yaml*può essere sostituito con il nome di file specifico.

1. L'output inizia da`Configuring SAM deploy`.

1. Nell'output, *ENTER* e *y* indica i valori sostituibili che fornisci.

# Configurazione del AWS SAMCLI
<a name="using-sam-cli-configure"></a>

Uno dei vantaggi AWS SAM è che ottimizza il tempo dello sviluppatore eliminando le attività ripetitive. AWS SAMCLIinclude un file di configurazione denominato a questo `samconfig` scopo. Per impostazione predefinita, non AWS SAMCLI è necessaria alcuna configurazione, ma è possibile aggiornare il file di configurazione per consentire di eseguire comandi con un minor numero di parametri, consentendo invece di fare riferimento AWS SAM ai parametri personalizzati nel file di configurazione. Gli esempi nella tabella seguente mostrano come ottimizzare i comandi:


| Originale | Ottimizzato con `samconfig` | 
| --- | --- | 
| **sam build --cached --parallel --use-containers** | **sam build** | 
| **sam local invoke --env-vars locals.json** | **sam local invoke** | 
| **sam local start-api --env-vars locals.json --warm-containers EAGER** | **sam local start-api** | 

 AWS SAMCLIFornisce una serie di comandi per aiutare gli sviluppatori a creare, sviluppare e distribuire applicazioni serverless. Ciascuno di questi comandi è configurabile con flag opzionali in base alle preferenze dell'applicazione e dello sviluppatore. [Per ulteriori informazioni, consulta il contenuto in AWS SAMCLI GitHub](https://github.com/aws/aws-sam-cli)

Gli argomenti di questa sezione mostrano come creare [AWS SAMCLIfile di configurazione](serverless-sam-cli-config.md) e personalizzare le impostazioni predefinite per ottimizzare i tempi di sviluppo dell'applicazione serverless.

**Topics**
+ [Come creare il file di configurazione (il `samconfig` file)](#using-sam-cli-configure-create)
+ [Configura le impostazioni del progetto](#using-sam-cli-configure-project)
+ [Configurare le credenziali e le impostazioni di base](#using-sam-cli-configure-basic)

## Come creare il file di configurazione (il `samconfig` file)
<a name="using-sam-cli-configure-create"></a>

Il file di AWS SAMCLI configurazione (filename`samconfig`) è un file di testo che in genere utilizza la struttura TOML, ma può anche essere in YAML. Quando si utilizza un modello AWS Quick Start, questo file viene creato quando si esegue il comando. **sam init** È possibile aggiornare questo file quando si distribuisce un'applicazione utilizzando il **sam deploy -\$1-guided** comando.

Una volta completata la distribuzione, il `samconfig` file contiene un profilo denominato `default` se sono stati utilizzati i valori predefiniti. Quando si esegue nuovamente il **deploy** comando, AWS SAM applica le impostazioni di configurazione memorizzate da questo profilo.

Il vantaggio del `samconfig` file è che AWS SAM memorizza le impostazioni di configurazione per tutti gli altri comandi disponibili oltre al comando deploy. Oltre a questi valori creati durante una nuova distribuzione, nel `samconfig` file è possibile impostare una serie di attributi che possono semplificare altri aspetti del flusso di lavoro degli sviluppatori. AWS SAMCLI

## Configura le impostazioni del progetto
<a name="using-sam-cli-configure-project"></a>

È possibile specificare impostazioni specifiche del progetto, ad esempio i valori dei parametri dei AWS SAMCLI comandi, in un file di configurazione da utilizzare con. AWS SAMCLI Per ulteriori informazioni su questo file di configurazione, vedere. [AWS SAMCLIfile di configurazione](serverless-sam-cli-config.md)

### Utilizzo dei file di configurazione
<a name="using-sam-cli-configure-project-using"></a>

I file di configurazione sono strutturati per ambiente, comando e valore dei parametri. Per ulteriori informazioni, consulta [Nozioni di base sui file di configurazione](serverless-sam-cli-config.md#serverless-sam-cli-config-basics).

**Per configurare un nuovo ambiente**

1. Specificate il nuovo ambiente nel file di configurazione.

   Di seguito è riportato un esempio di specificazione di un nuovo `prod` ambiente:

------
#### [ TOML ]

   ```
   [prod.global.parameters]
   ```

------
#### [ YAML ]

   ```
   prod:
     global:
       parameters:
   ```

------

1. Specificate i valori dei parametri come coppie chiave-valore nella sezione parametri del file di configurazione.

   Di seguito è riportato un esempio di specificazione del nome dello stack dell'applicazione per l'ambiente. `prod`

------
#### [ TOML ]

   ```
   [prod.global.parameters]
   stack_name = "prod-app"
   ```

------
#### [ YAML ]

   ```
   prod:
     global:
       parameters:
         stack_name: prod-app
   ```

------

1. Usa l'`--config-env`opzione per specificare l'ambiente da usare.

   Di seguito è riportato un esempio:

   ```
   $ sam deploy --config-env "prod"
   ```

**Per configurare i valori dei parametri**

1. Specificate il AWS SAMCLI comando per cui desiderate configurare i valori dei parametri. Per configurare i valori dei parametri per tutti AWS SAMCLI i comandi, usa l'`global`identificatore.

   Di seguito è riportato un esempio di specificazione dei valori dei parametri per il comando `default` dell'ambiente: `sam deploy`

------
#### [ TOML ]

   ```
   [default.deploy.parameters]
   confirm_changeset = true
   ```

------
#### [ YAML ]

   ```
   default:
     deploy:
       parameters:
         confirm_changeset: true
   ```

------

   Di seguito è riportato un esempio di specificazione dei valori dei parametri per tutti i AWS SAMCLI comandi nell'`default`ambiente:

------
#### [ TOML ]

   ```
   [default.global.parameters]
   stack_name = "sam-app"
   ```

------
#### [ YAML ]

   ```
   default:
     global:
       parameters:
         stack_name: sam-app
   ```

------

1. È inoltre possibile specificare i valori dei parametri e modificare il file di configurazione tramite il flusso AWS SAMCLI interattivo.

   Di seguito è riportato un esempio del flusso `sam deploy --guided` interattivo:

   ```
   $ sam deploy --guided
   
   Configuring SAM deploy
   ======================
   
       Looking for config file [samconfig.toml] :  Found
       Reading default arguments  :  Success
   
       Setting default arguments for 'sam deploy'
       =========================================
       Stack Name [sam-app]: ENTER
       AWS Region [us-west-2]: ENTER
       #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
       Confirm changes before deploy [Y/n]: n
       #SAM needs permission to be able to create roles to connect to the resources in your template
       Allow SAM CLI IAM role creation [Y/n]: ENTER
       #Preserves the state of previously provisioned resources when an operation fails
       Disable rollback [y/N]: ENTER
       HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y
       Save arguments to configuration file [Y/n]: ENTER
       SAM configuration file [samconfig.toml]: ENTER
       SAM configuration environment [default]: ENTER
   ```

Per ulteriori informazioni, consulta [Creazione e modifica dei file di configurazione](serverless-sam-cli-config.md#serverless-sam-cli-config-using).

### Esempi
<a name="using-sam-cli-configure-project-examples"></a>

#### TOMLEsempio di base
<a name="using-sam-cli-configure-project-examples-toml"></a>

Di seguito è riportato un esempio di file di `samconfig.toml` configurazione:

```
...
version = 0.1

[default]
[default.global]
[default.global.parameters]
stack_name = "sam-app"

[default.build.parameters]
cached = true
parallel = true

[default.deploy.parameters]
capabilities = "CAPABILITY_IAM"
confirm_changeset = true
resolve_s3 = true

[default.sync.parameters]
watch = true

[default.local_start_api.parameters]
warm_containers = "EAGER"

[prod]
[prod.sync]
[prod.sync.parameters]
watch = false
```

#### YAMLEsempio di base
<a name="using-sam-cli-configure-project-examples-yaml"></a>

Di seguito è riportato un esempio di file di `samconfig.yaml` configurazione:

```
version 0.1
default:
  global:
    parameters:
      stack_name: sam-app
  build:
    parameters:
      cached: true
      parallel: true
  deploy:
    parameters:
      capabilities: CAPABILITY_IAM
      confirm_changeset: true
      resolve_s3: true
  sync:
    parameters:
      watch: true
  local_start_api:
    parameters:
      warm_containers: EAGER
prod:
  sync:
    parameters:
      watch: false
```

## Configurare le credenziali e le impostazioni di base
<a name="using-sam-cli-configure-basic"></a>

Usa AWS Command Line Interface (AWS CLI) per configurare le impostazioni di base come AWS credenziali, nome dell'area predefinita e formato di output predefinito. Una volta configurate, è possibile utilizzare queste impostazioni con. AWS SAMCLI Per ulteriori informazioni, consulta quanto segue nella *Guida AWS Command Line Interface per l'utente*:
+ [Nozioni di base sulla configurazione](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)
+ [Impostazioni dei file di configurazione e credenziali](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
+ [Profili denominati per AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
+ [Utilizzo di un profilo denominato abilitato per IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/sso-using-profile.html)

Per istruzioni di configurazione rapide, consulta[Passaggio 5: Utilizzare AWS CLI per configurare le AWS credenziali](prerequisites.md#prerequisites-configure-credentials).

# AWS SAMCLIcomandi principali
<a name="using-sam-cli-corecommands"></a>

AWS SAMCLIcontiene alcuni comandi di base che puoi utilizzare per creare, compilare, testare, distribuire e sincronizzare le tue applicazioni serverless. La tabella seguente elenca questi comandi e fornisce collegamenti con ulteriori informazioni per ciascuno di essi.

Per un elenco completo dei AWS SAMCLI comandi, vedere[AWS SAMCLIriferimento al comando](serverless-sam-cli-command-reference.md).


| Comando | Cosa fa | Argomenti correlati | 
| --- | --- | --- | 
| **sam build** | Prepara un'applicazione per i passaggi successivi del flusso di lavoro degli sviluppatori, come i test locali o la AWS distribuzione nel cloud. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam deploy** | Distribuisce un'applicazione nel AWS cloud utilizzando. CloudFormation |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam init** | Fornisce opzioni per inizializzare e creare una nuova applicazione serverless. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam local** | Fornisce sottocomandi per testare localmente le applicazioni serverless. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam remote invoke** | Fornisce un modo per interagire con AWS le risorse supportate nel AWS cloud. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam remote test-event** | Fornisce un modo per accedere e gestire eventi di test condivisibili per le funzioni AWS Lambda. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam sync** | Fornisce opzioni per sincronizzare rapidamente le modifiche locali delle applicazioni nel AWS cloud. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 

# Test locali con AWS SAMCLI
<a name="using-sam-cli-local-testing"></a>

 AWS SAMCLIConsente di testare le applicazioni serverless a livello locale su diversi strumenti Infrastructure as Code (IaC). Questa guida spiega come utilizzarlo AWS SAMCLI per i test locali con vari framework IaC.

I vantaggi principali dell'utilizzo AWS SAMCLI per i test locali includono:
+ **Sviluppo rapido**: verifica le modifiche al codice senza distribuirle su AWS
+ **Efficienza in termini di costi**: sviluppo e test senza incorrere in AWS costi
+ **Funzionalità offline**: lavora sulle tue applicazioni senza una connessione Internet
+ **Debug semplificato**: analizza il codice della funzione Lambda localmente utilizzando un debugger
+ **Test realistici**: testa le tue applicazioni utilizzando l'emulazione locale dei servizi AWS 

## Testa le AWS SAM applicazioni localmente
<a name="using-sam-cli-local-testing-sam"></a>

Per informazioni sul test delle applicazioni definite utilizzando AWS SAM modelli, consulta la sezione [Test e debug delle applicazioni serverless](serverless-test-and-debug.md) in questa guida.

## Prova i modelli localmente CloudFormation
<a name="using-sam-cli-local-testing-cfn"></a>

Per utilizzare le funzionalità AWS SAMCLI di test locali con CloudFormation, aggiungi la AWS SAM trasformazione al tuo CloudFormation modello. Per ulteriori informazioni, consulta l'[anatomia AWS SAM del modello](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy.html) per:
+ Aggiungere una AWS SAM trasformazione ai modelli CloudFormation 
+ Comprendere la compatibilità dei modelli
+ Esplorazione della sintassi delle risorse serverless

## Testa le applicazioni AWS CDK localmente
<a name="using-sam-cli-local-testing-cdk"></a>

È possibile utilizzarlo AWS SAMCLI per testare localmente le applicazioni AWS CDK dopo aver sintetizzato l'applicazione CDK in CloudFormation modelli utilizzando il AWS comando cdk synth.

Per ulteriori informazioni, consulta la sezione [Test e creazione di applicazioni CDK a livello locale utilizzando la guida per AWS sviluppatori CDK](https://docs.aws.amazon.com/cdk/v2/guide/testing-locally.html). AWS SAMCLI AWS Questo include:
+ [Guida introduttiva ai test a livello locale](https://docs.aws.amazon.com/cdk/v2/guide/testing-locally.html#testing-locally-getting-started)
+ [Test locali delle applicazioni AWS CDK con AWS SAM](https://docs.aws.amazon.com/cdk/v2/guide/testing-locally.html#testing-locally-sam)

## Testa le applicazioni Terraform localmente
<a name="using-sam-cli-local-testing-terraform"></a>

 AWS SAMCLISupporta i progetti Terraform e Terraform Cloud. Puoi usarlo per eseguire il debug e il test locali di: funzioni e livelli Lambda e Amazon API Gateway HTTP e REST. APIs

Per configurare il tuo ambiente e conoscere tutte le funzionalità disponibili, consulta [Terraform Support](terraform-support.md) in questa guida. Questo include:
+ [Guida introduttiva al supporto Terraform per AWS SAMCLI](gs-terraform-support.md)
+ [Utilizzo di AWS SAMCLI with Terraform per il debug e il test locali](using-samcli-terraform.md)