

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.