

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 SAMCLIfile di configurazione
<a name="serverless-sam-cli-config"></a>

La AWS Serverless Application Model Command Line Interface (AWS SAMCLI) supporta un file di configurazione a livello di progetto che è possibile utilizzare per configurare i valori dei parametri di AWS SAMCLI comando.

Per la documentazione sulla creazione e l'utilizzo dei file di configurazione, vedere. [Configurazione del AWS SAMCLI](using-sam-cli-configure.md)

**Topics**
+ [Impostazioni predefinite del file di configurazione](#serverless-sam-cli-config-default)
+ [Formati di file di configurazione supportati](#serverless-sam-cli-config-formats)
+ [Specificare un file di configurazione](#serverless-sam-cli-config-specify)
+ [Nozioni di base sui file di configurazione](#serverless-sam-cli-config-basics)
+ [Regole relative al valore dei parametri](#serverless-sam-cli-config-rules)
+ [Precedenza di configurazione](#serverless-sam-cli-config-precedence)
+ [Creazione e modifica dei file di configurazione](#serverless-sam-cli-config-using)

## Impostazioni predefinite del file di configurazione
<a name="serverless-sam-cli-config-default"></a>

AWS SAM utilizza le seguenti impostazioni predefinite del file di configurazione:
+ **Nome**: `samconfig`.
+ **Posizione**: alla base del progetto. Questa è la stessa posizione `template.yaml` del file.
+ **Formato**:`TOML`. Per saperne di più, consulta [TOML](https://toml.io/en/) nella *TOMLdocumentazione*.

Di seguito è riportato un esempio di struttura di progetto che include il nome e la posizione del file di configurazione predefiniti:

```
sam-app
├── README.md
├── __init__.py
├── events
├── hello_world
├── samconfig.toml
├── template.yaml
└── tests
```

Di seguito è riportato un esempio del file `samconfig.toml`.

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

## Formati di file di configurazione supportati
<a name="serverless-sam-cli-config-formats"></a>

`TOML`e i `[YAML|YML]` formati sono supportati. Vedi la seguente sintassi di base:

### TOML
<a name="serverless-sam-cli-config-formats-toml"></a>

```
version = 0.1
[environment]
[environment.command]
[environment.command.parameters]
option = parameter value
```

### YAML
<a name="serverless-sam-cli-config-formats-yaml"></a>

```
version: 0.1
environment:
  command:
    parameters:
      option: parameter value
```

## Specificare un file di configurazione
<a name="serverless-sam-cli-config-specify"></a>

Per impostazione predefinita, AWS SAMCLI cerca un file di configurazione nell'ordine seguente:

1. **File di configurazione personalizzato**: se si utilizza l'`--config-file`opzione per specificare il nome e la posizione di un file, AWS SAMCLI cerca prima questo file.

1. **`samconfig.toml`File predefinito**: si tratta del nome e del formato del file di configurazione predefiniti, che si trova alla radice del progetto. Se non specifichi un file di configurazione personalizzato, AWS SAMCLI cerca successivamente questo file.

1. **`samconfig.[yaml|yml]`file** — Se `samconfig.toml` non esiste nella radice del progetto, AWS SAMCLI cerca questo file.

Di seguito è riportato un esempio di specificazione di un file di configurazione personalizzato utilizzando l'`--config-file`opzione:

```
$ sam deploy --config-file myconfig.yaml
```

**Nota**  
Il `--config-file` parametro deve essere relativo alla posizione del file AWS SAM modello perché AWS SAMCLI deve determinare il contesto in cui viene applicata la configurazione. Il `samconfig.toml` file gestisce le impostazioni di configurazione per la versione in AWS SAMCLI uso di e la CLI cerca il `samconfig.toml` file (o il parametro del file di configurazione sovrascritto) nella cartella relativa del file. `template.yaml`

## Nozioni di base sui file di configurazione
<a name="serverless-sam-cli-config-basics"></a>

### Ambiente
<a name="serverless-sam-cli-config-basics-environment"></a>

Un **ambiente** è un identificatore denominato che contiene un set unico di impostazioni di configurazione. È possibile avere più ambienti in una singola AWS SAM applicazione.

Il nome dell'ambiente predefinito è`default`.

Utilizzate l' AWS SAMCLI`--config-env`opzione per specificare l'ambiente da utilizzare.

### Comando
<a name="serverless-sam-cli-config-basics-command"></a>

Il **comando** è il AWS SAMCLI comando per cui specificare i valori dei parametri.

Per specificare i valori dei parametri per tutti i comandi, utilizzate l'`global`identificatore.

Quando fate riferimento a un AWS SAMCLI comando, sostituite gli spazi (` `) e i trattini () con caratteri di sottolineatura (`–`). `_` Fare riferimento agli esempi riportati di seguito:
+ `build`
+ `local_invoke`
+ `local_start_api`

### Parameters
<a name="serverless-sam-cli-config-basics-parameters"></a>

**I parametri** sono specificati come coppie chiave-valore.
+ La **chiave** è il nome dell'opzione AWS SAMCLI di comando.
+ Il **valore** è il valore da specificare.

Quando specificate le chiavi, utilizzate l'opzione di comando in formato lungo name e sostituite i trattini (`–`) con caratteri di sottolineatura (). `_` Di seguito vengono mostrati gli esempi:
+ `region`
+ `stack_name`
+ `template_file`

## Regole relative al valore dei parametri
<a name="serverless-sam-cli-config-rules"></a>

### TOML
<a name="serverless-sam-cli-config-rules-toml"></a>
+ I valori booleani possono essere `true` o. `false` Ad esempio, `confirm_changeset = true`.
+ Per i valori di stringa, utilizzare le virgolette (). `""` Ad esempio, `region = "us-west-2"`.
+ Per i valori degli elenchi, utilizzate le virgolette (`""`) e separate ogni valore utilizzando uno spazio (` `). Ad esempio: `capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM"`.
+ Per i valori che contengono un elenco di coppie chiave-valore, le coppie sono delimitate da spazi (` `) e il valore di ciascuna coppia è racchiuso tra virgolette codificate (). `\" \"` Ad esempio, `tags = "project=\"my-application\" stage=\"production\""`.
+ Per i valori dei parametri che possono essere specificati più volte, il valore è una matrice di argomenti. Ad esempio: `image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"]`.

### YAML
<a name="serverless-sam-cli-config-rules-yaml"></a>
+ I valori booleani possono essere `true` o. `false` Ad esempio, `confirm_changeset: true`.
+ Per le voci che contengono un solo valore di stringa, le virgolette (`""`) sono facoltative. Ad esempio, `region: us-west-2`. Sono incluse le voci che contengono più coppie chiave-valore fornite come singola stringa. Di seguito è riportato un esempio:

  ```
  $ sam deploy --tags "foo=bar hello=world"
  ```

  ```
  default:
    deploy:
      parameters:
        tags: foo=bar hello=world
  ```
+ Per le voci che contengono un elenco di valori o le voci che possono essere utilizzate più volte in un singolo comando, specificale come elenco di stringhe.

  Di seguito è riportato un esempio:

  ```
  $ sam remote invoke --parameter "InvocationType=Event" --parameter "LogType=None"
  ```

  ```
  default:
    remote_invoke:
      parameters:
          parameter:
          - InvocationType=Event
          - LogType=None
  ```

## Precedenza di configurazione
<a name="serverless-sam-cli-config-precedence"></a>

Durante la configurazione dei valori, ha la seguente precedenza:
+ I valori dei parametri forniti nella riga di comando hanno la precedenza sui valori corrispondenti nel file di configurazione e nella `Parameters` sezione del file modello.
+ Se l'`--parameter-overrides`opzione viene utilizzata nella riga di comando o nel file di configurazione con la `parameter_overrides` chiave, i suoi valori hanno la precedenza sui valori nella `Parameters` sezione del file modello.
+ Nel file di configurazione, le voci fornite per un comando specifico hanno la precedenza sulle voci globali. Nell'esempio seguente, il `sam deploy` comando utilizzerà il nome dello stack. `my-app-stack`

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

  ```
  [default.global.parameters]
  stack_name = "common-stack"
  
  [default.deploy.parameters]
  stack_name = "my-app-stack"
  ```

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

  ```
  default:
    global:
      parameters:
        stack_name: common-stack
    deploy:
      parameters:
        stack_name: my-app-stack
  ```

------

## Creazione e modifica dei file di configurazione
<a name="serverless-sam-cli-config-using"></a>

### Creazione di file di configurazione
<a name="serverless-sam-cli-config-using-create"></a>

Quando si crea un'applicazione utilizzando`sam init`, viene creato un `samconfig.toml` file predefinito. È inoltre possibile creare manualmente il file di configurazione.

### Modifica dei file di configurazione
<a name="serverless-sam-cli-config-using-modify"></a>

È possibile modificare manualmente i file di configurazione. Inoltre, durante qualsiasi flusso AWS SAMCLI interattivo, i valori configurati verranno visualizzati tra parentesi (`[ ]`). Se modifichi questi valori, AWS SAMCLI aggiornerà il tuo file di configurazione.

Di seguito è riportato un esempio di flusso interattivo che utilizza il `sam deploy --guided` comando:

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

Quando si modifica il file di configurazione, AWS SAMCLI gestisce i valori globali come segue:
+ Se il valore del parametro esiste nella `global` sezione del file di configurazione, AWS SAMCLI non scrive il valore nella sezione di comando specifica.
+ Se il valore del parametro esiste `global` sia nella sezione di comando che in quella specifica, AWS SAMCLI elimina la voce specifica a favore del valore globale.