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 file di configurazione
L'interfaccia AWS Serverless Application Model a riga di comando (AWS SAM CLI) supporta un file di configurazione a livello di progetto che è possibile utilizzare per configurare AWS SAM CLI valori dei parametri di comando.
Per la documentazione sulla creazione e l'utilizzo dei file di configurazione, vedereConfigurazione del AWS SAMCLI.
Argomenti
Impostazioni predefinite del file di configurazione
AWS SAM utilizza le seguenti impostazioni predefinite del file di configurazione:
-
Nome:
samconfig
. -
Ubicazione: alla base del progetto. Questa è la stessa posizione
template.yaml
del file. -
Formato:
TOML
. Per saperne di più, TOMLconsulta TOML documentazione.
Di seguito è riportato un esempio di struttura di progetto che include il nome e la posizione del file di configurazione di default:
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
TOML
e [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:
-
File di configurazione personalizzato: se si utilizza l'
--config-file
opzione per specificare un nome e una posizione di file, AWS SAM CLI cerca prima questo file. -
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 specificate un file di configurazione personalizzato, AWS SAM CLI cerca successivamente questo file. -
samconfig.[yaml|yml]
file — Sesamconfig.toml
non esiste alla 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-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 SAM CLI deve determinare il contesto in cui viene applicata la configurazione. Il samconfig.toml
file gestisce le impostazioni di configurazione per la versione in uso di AWS SAM CLIe CLI cerca il samconfig.toml
file (o il parametro del file di configurazione sovrascritto) nella relativa cartella del file. template.yaml
Nozioni di base sui file di configurazione
Ambiente
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
.
Usa il AWS SAM CLI --config-env
opzione per specificare l'ambiente da utilizzare.
Comando
Il comando è AWS SAM CLI comando per specificare i valori dei parametri.
Per specificare i valori dei parametri per tutti i comandi, utilizzate l'global
identificatore.
Quando si fa riferimento a un AWS SAM CLI comando, sostituisci 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 è AWS SAM CLI nome dell'opzione 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 esempioconfirm_changeset = true
. -
Per i valori di stringa, utilizzare le virgolette ().
""
Ad esempioregion = "us-west-2"
. -
Per i valori degli elenchi, utilizzate le virgolette (
""
) e separate ogni valore utilizzando uno spazio (capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM"
. -
Per i valori che contengono un elenco di coppie chiave-valore, le coppie sono delimitate da spazi (
\" \"
Ad esempiotags = "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 esempioconfirm_changeset: true
. -
Per le voci che contengono un solo valore di stringa, le virgolette (
""
) sono facoltative. Ad esempioregion: 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
Quando si configurano i 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 laparameter_overrides
chiave, i suoi valori hanno la precedenza sui valori nellaParameters
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
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 AWS SAM CLI flusso interattivo, i valori configurati verranno visualizzati tra parentesi ([ ]
). Se modificate questi valori, AWS SAM CLI aggiornerà il 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 sia nella sezione
global
di comando che in quella specifica, AWS SAM CLI elimina la voce specifica a favore del valore globale.