AWS SAMCLIfile di configurazione - AWS Serverless Application Model

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

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 SAM CLI comando.

Per la documentazione sulla creazione e l'utilizzo dei file di configurazione, vedere. Configurazione del AWS SAMCLI

Impostazioni predefinite del file di configurazione

AWS SAMutilizza le seguenti impostazioni predefinite del file di configurazione:

  • Nomesamconfig.

  • Ubicazione: alla base del progetto. Questa è la stessa posizione template.yaml del file.

  • Formato:TOML. Per saperne di più, consulta TOML 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

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

TOML

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

YAML

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

Specificare un file di configurazione

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

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

  2. samconfig.tomlFile 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 SAM CLI cerca successivamente questo file.

  3. samconfig.[yaml|yml]file — Se samconfig.toml non esiste nella radice del progetto, AWS SAM CLI cerca questo file.

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

$ sam deploy --config-file myconfig.yaml

Nozioni di base sui file di configurazione

Ambiente

Un ambiente è un identificatore denominato che contiene un set unico di impostazioni di configurazione. È possibile disporre di più ambienti in un'unica AWS SAM applicazione.

Il nome dell'ambiente predefinito èdefault.

Utilizzate l'AWS SAMCLI--config-envopzione per specificare l'ambiente da utilizzare.

Comando

Il comando è il AWS SAM CLI comando per cui specificare i valori dei parametri.

Per specificare i valori dei parametri per tutti i comandi, utilizzate l'globalidentificatore.

Quando fate riferimento a un AWS SAM CLI comando, sostituite gli spazi ( ) e i trattini () con caratteri di sottolineatura (). _ Fare riferimento agli esempi riportati di seguito:

  • build

  • local_invoke

  • local_start_api

Parametri

I parametri sono specificati come coppie chiave-valore.

  • La chiave è il nome dell'opzione AWS SAM CLI 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

TOML

  • 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

  • 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: parameter: - InvocationType=Event - LogType=None

Precedenza di configurazione

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

Creazione di file di configurazione

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

Modifica dei file di configurazione

È possibile modificare manualmente i file di configurazione. Inoltre, durante qualsiasi flusso AWS SAM CLI interattivo, i valori configurati verranno visualizzati tra parentesi ([ ]). Se modifichi questi valori, AWS SAM CLI 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 SAM CLI gestisce i valori globali come segue:

  • Se il valore del parametro esiste nella global sezione del file di configurazione, AWS SAM CLI 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 SAM CLI elimina la voce specifica a favore del valore globale.