AWS SAMFile di configurazione CLI - 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 SAMFile di configurazione CLI

LaAWS SAMCLI supporta un file di configurazione a livello di progetto che memorizza i parametri predefiniti per i comandi. Questo file di configurazione è presente nella sezioneFormato del file di TOMLe il nome file predefinito èsamconfig.toml. La posizione predefinita del file è la directory principale del progetto, che contiene il progettoAWS SAMfile di modello.

È possibile modificare manualmente questo file per impostare i parametri predefiniti per qualsiasiAWS SAMComando CLI. Inoltre,sam deploy --guidedcommand scrive un sottoinsieme di parametri nel file di configurazione. Per ulteriori informazioni su questo comando, consultaConfigurazioni di scrittura consam deploy --guidedpiù avanti in questo argomento.

Esempio

Ecco un esempio di file di configurazione che contiene tre set di parametri per ildefaultambiente. Un set è per tutti i comandi, uno per ildeploycomando, e uno è per ilbuildcomando.

 version=0.1
 [default.global.parameters]
 stack_name = "common-stack"
 
 [default.deploy.parameters]
 stack_name = "my-app-stack"
 s3_bucket = "my-source-bucket"
 s3_prefix = "my-s3-prefix"
 image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"]
 region = "us-west-2"
 confirm_changeset = true
 capabilities = "CAPABILITY_IAM"
 tags = "project=\"my-application\" stage=\"production\""

 [default.build.parameters]
 container_env_var = ["Function1.GITHUB_TOKEN=TOKEN1", "Function2.GITHUB_TOKEN=TOKEN2"]
 container_env_var_file = "env.json"
 no_beta_features = true

Regole dei file di configurazione

LaAWS SAMCLI applica le seguenti regole ai file di configurazione:

Nome e posizione del file

  • Il file di configurazione predefinito è denominatosamconfig.tomle si trova nella directory principale del progetto.

  • Puoi sostituire il nome e la posizione del file di default utilizzando--config-fileParametro .

Tabelle

  • LaAWS SAMCLI utilizza le tabelle TOML per raggruppare le voci di configurazione per ambiente e comando. Un singolo file di configurazione può contenere tabelle per più ambienti, comandi e sottocomandi.

  • Il nome dell'ambiente predefinito è denominatodefault. Puoi eseguire l'override del nome dell'ambiente di default utilizzando--config-envParametro .

  • Per i comandi, il formato dell'intestazione della tabella è[environment.command.parameters]. Ad esempio, persam deploycomando per ildefaultambiente, l'intestazione della tabella di configurazione è[default.deploy.parameters].

  • Per i sottocomandi, il formato dell'intestazione della tabella è[environment.command_subcommand.parameters]. Cioè, delimita il comando e il sottocomando con_(carattere di sottolineatura). Ad esempio, persam local invokecomando per ildefaultambiente, l'intestazione della tabella di configurazione è[default.local_invoke.parameters].

  • Se un comando o sottocomando contiene un-carattere (trattino), sostituirlo con_(carattere di sottolineatura). Ad esempio, persam local start-apicomando, l'intestazione della tabella di configurazione è[default.local_start_api.parameters].

  • Per specificare i parametri per tutti i comandi, utilizzare ilglobalparola chiave come comando nell'intestazione della tabella ([environment.global.parameters]). Ad esempio, l'intestazione globale della tabella per ildefaultè l'ambiente[default.global.parameters].

Voci di configurazione

  • Ogni voce di configurazione è una coppia chiave-valore TOML.

  • La chiave di configurazione è il nome del parametro di forma lunga con il-carattere (trattino) sostituito con_(carattere di sottolineatura). Per l'elenco dei parametri disponibili per ciascun comando, vedere ilAWS SAMRiferimento ai comandi CLI, oppure eseguisam command --help.

  • Il valore di configurazione può assumere le forme seguenti:

    • Per i parametri di commutazione, il valore può esseretrueofalse(senza virgolette). Ad esempio, confirm_changeset = true.

    • Per i parametri che richiedono un singolo argomento, il valore è l'argomento circondato da" "(virgolette). Ad esempio, region = "us-west-2".

    • Per i parametri che richiedono un elenco di argomenti, gli argomenti sono delimitati dallo spazio all'interno" "(virgolette). Ad esempio, capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM".

      • Per specificare un elenco di coppie chiave-valore, le coppie sono delimitate dallo spazio e il valore di ciascuna coppia è circondato da codificati" "(virgolette). Ad esempio, tags = "project=\"my-application\" stage=\"production\"".

    • Per i parametri che è possibile specificare più volte, il valore è una matrice di argomenti. Ad esempio, image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"].

Priorità

  • I valori dei parametri forniti nella riga di comando hanno la precedenza sulle voci corrispondenti nel file di configurazione. Ad esempio, se il file di configurazione contiene la vocestack_name = "DefaultStack"ed esegui il comandosam deploy --stack-name MyCustomStack, quindi il nome dello stack distribuito èMyCustomStack.

  • Per ilparameter_overridesentry, sia i valori dei parametri forniti dalla riga di comando che le voci nel file di configurazione hanno la precedenza sugli oggetti corrispondenti dichiarati nelParameterssezione del file di modello.

  • Le voci fornite in una tabella di comandi specifica hanno la precedenza sulle voci di unglobalsezione comando. Ad esempio, supponiamo che il tuo file di configurazione contenga le tabelle e le voci seguenti:

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

    In questo caso, il camposam deploycomando utilizza il nome dello stackmy-app-stacke qualsiasi altro comando (ad esempio,sam logs) utilizza il nome dello stackcommon-stack.

Configurazioni di scrittura consam deploy --guided

Quando esegui ilsam deploy --guidedcomando, ilAWS SAMCLI ti guida attraverso la distribuzione con una serie di richieste.

Questi suggerimenti includono la domanda"Save arguments to samconfig.toml [Y/n]:". Se rispondiYa questo prompt, ilAWS SAMCLI aggiorna il file di configurazione con i valori per ildeploycomando. Ad esempio, perdefaultambiente,AWS SAMaggiorna[default.deploy.parameters]tavolo.

L'elenco delle voci neldeploytabella dei comandi cheAWS SAMpuò aggiornare includere quanto segue:

  • stack_name

  • s3_bucket

  • s3_prefix

  • image_repository

  • region

  • confirm_changeset

  • capabilities

  • signing_profiles

  • disable_rollback

  • parameter_overrides

    Nota

    C'è un caso speciale per un file di configurazione che contiene voci per lo stesso parametro in entrambi ideployeglobaltabelle di comando. In questo caso, se eseguisam deploy --guidede fornire lo stesso valore per quel parametro delglobalvoce della tabella dei comandi, quindi ildeployLa voce della tabella dei comandi viene rimossa.

    Specificando alsam deploy --guidedrichiedi lo stesso valore già specificato nelglobaltabella dei comandi,AWS SAMpresuppone che si desideri impostare per impostazione predefinita il valore nelglobaltabella dei comandi.

Regole per i valori predefiniti del prompt guidato

Per controllare i valori predefiniti per le richieste diAWS SAMViene visualizzata la CLI quando si eseguesam deploy --guided, è possibile specificare i parametri sulla riga di comando o le voci in un file di configurazione esistente.

Le regole per queste richieste sono le seguenti:

  • Se si specificano valori nella riga di comando,AWS SAMCLI utilizza tali valori della riga di comando come valori predefiniti per i prompt corrispondenti.

  • Se esiste un file di configurazione esistente,AWS SAMCLI utilizza le voci della tabella corrispondente in quel file come valori predefiniti per i prompt corrispondenti.

Le regole di precedenza tra la riga di comando e il file di configurazione sono le stesse indicate nellaPrioritàsezione riportata in precedenza in questo argomento.