Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
AWS SAM CLI Fichier de configuration
L'interface AWS Serverless Application Model de ligne de commande (AWS SAM CLI) prend en charge un fichier de configuration au niveau du projet que vous pouvez utiliser pour configurer AWS SAM CLI valeurs des paramètres de commande.
Pour obtenir de la documentation sur la création et l'utilisation de fichiers de configuration, veuillez consulter la section Configuration de la CLI AWS SAM.
Rubriques
- Paramètres du fichier de configuration par défaut
- Formats de fichiers de configuration pris en charge
- Spécifier un fichier de configuration
- Principes de base relatifs au fichier de configuration
- Règles de valeur des paramètres
- Ordre de priorité de configuration
- Création et modification de fichiers de configuration
Paramètres du fichier de configuration par défaut
AWS SAM utilise les paramètres de fichier de configuration par défaut suivants :
-
Nom :
samconfig
. -
Emplacement : à la racine de votre projet. Il s'agit du même emplacement que celui de votre fichier
template.yaml
. -
Format :
TOML
. Pour en savoir plus, consultez TOMLle TOML documentation.
Voici un exemple de structure de projet qui inclut le nom et l'emplacement du fichier de configuration par défaut :
sam-app ├── README.md ├── __init__.py ├── events ├── hello_world ├── samconfig.toml ├── template.yaml └── tests
Voici un exemple de fichier de 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
Formats de fichiers de configuration pris en charge
Les formats TOML
et [YAML|YML]
sont pris en charge. Consultez la syntaxe de base suivante :
TOML
version = 0.1 [
environment
] [environment
.command
] [environment
.command
.parameters]option
=parameter value
YAML
version: 0.1
environment
:command
: parameters:option
:parameter value
Spécifier un fichier de configuration
Par défaut, le AWS SAM CLI recherche un fichier de configuration dans l'ordre suivant :
-
Fichier de configuration personnalisé : si vous utilisez l'
--config-file
option permettant de spécifier un nom et un emplacement de fichier, AWS SAM CLI recherche d'abord ce fichier. -
Fichier
samconfig.toml
par défaut : il s'agit du nom et du format du fichier de configuration par défaut, situé à la racine de votre projet. Si vous ne spécifiez aucun fichier de configuration personnalisé, AWS SAM CLI recherche ensuite ce fichier. -
samconfig.[yaml|yml]
file — Si lesamconfig.toml
n'existe pas à la racine de votre projet, le AWS SAM CLI recherche ce fichier.
Voici un exemple de spécification d'un fichier de configuration personnalisé à l'aide de l'option --config-file
:
$
sam deploy --config-file myconfig.yaml
Note
Le --config-file
paramètre doit être relatif à l'emplacement du fichier AWS SAM modèle car AWS SAM CLI doit déterminer le contexte dans lequel la configuration est appliquée. Le samconfig.toml
fichier gère les paramètres de configuration pour votre version du AWS SAM CLI, puis CLI recherche le samconfig.toml
fichier (ou le paramètre du fichier de configuration remplacé) dans le dossier relatif du template.yaml
fichier.
Principes de base relatifs au fichier de configuration
Environnement
Un environnement est un identifiant nommé qui contient un ensemble unique de paramètres de configuration. Vous pouvez avoir plusieurs environnements dans une seule AWS SAM application.
Le nom de l'environnement par défaut est default
.
Utilisez le AWS SAM CLI --config-env
option pour spécifier l'environnement à utiliser.
Command
La commande est AWS SAM CLI commande pour spécifier les valeurs des paramètres pour.
Pour spécifier les valeurs des paramètres pour toutes les commandes, utilisez l'identificateur global
.
Lorsque vous faites référence à un AWS SAM CLI commande, remplacez les espaces (
) et les traits d'union (–
) par des traits de soulignement (). _
Voir les exemples suivants :
-
build
-
local_invoke
-
local_start_api
Paramètres
Les paramètres sont spécifiés sous forme de paires clé-valeur.
-
La clé, c'est AWS SAM CLI nom de l'option de commande.
-
La valeur est celle à spécifier.
Lorsque vous spécifiez des clés, utilisez le nom complet de l'option de commande et remplacez les traits d'union (–
) par des traits de soulignement (_
). Voici quelques exemples :
-
region
-
stack_name
-
template_file
Règles de valeur des paramètres
TOML
-
Les valeurs booléennes peuvent être
true
oufalse
. Par exemple,confirm_changeset = true
. -
Pour les valeurs de chaîne de caractères, utilisez des guillemets (
""
). Par exemple,region = "us-west-2"
. -
Pour les valeurs de liste, utilisez des guillemets (
""
) et séparez chaque valeur par une espace (capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM"
. -
Pour la valeur contenant une liste de paires clé-valeur, les paires sont délimitées par des espaces (
\" \"
) encodés. Par exemple,tags = "project=\"my-application\" stage=\"production\""
. -
Pour les valeurs de paramètres qui peuvent être spécifiés plusieurs fois, la valeur est un tableau d'arguments. olpPar exemple :
image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"]
.
YAML
-
Les valeurs booléennes peuvent être
true
oufalse
. Par exemple,confirm_changeset: true
. -
Pour les entrées contenant une seule valeur de chaîne de caractères, les guillemets (
""
) sont facultatifs. Par exemple,region: us-west-2
. Cela inclut les entrées qui contiennent plusieurs paires clé-valeur fournies sous la forme d'une seule chaîne de caractères. Voici un exemple :$
sam deploy --tags "foo=bar hello=world"
default: deploy: parameters: tags: foo=bar hello=world
-
Pour les entrées qui contiennent une liste de valeurs ou pour les entrées qui peuvent être utilisées plusieurs fois au sein d'une même commande, spécifiez-les sous forme de liste de chaînes de caractères.
Voici un exemple :
$
sam remote invoke --parameter "InvocationType=Event" --parameter "LogType=None"
default: remote_invoke: parameter: - InvocationType=Event - LogType=None
Ordre de priorité de configuration
Lors de la configuration des valeurs, l'ordre de priorité est le suivant :
-
Les valeurs des paramètres que vous fournissez à la ligne de commande ont la priorité sur les valeurs correspondantes dans le fichier de configuration et la section
Parameters
du fichier modèle. -
Si l'option
--parameter-overrides
est utilisée sur la ligne de commande ou dans votre fichier de configuration avec la cléparameter_overrides
, ses valeurs ont la priorité sur les valeurs de la sectionParameters
du fichier modèle. -
Dans votre fichier de configuration, les entrées fournies pour une commande spécifique sont prioritaires sur les entrées globales. Dans l'exemple suivant, la commande
sam deploy
utilisera le nom de pilemy-app-stack
.
Création et modification de fichiers de configuration
Création de fichiers de configuration
Lorsque vous créez une application à l'aide de sam init
, un fichier samconfig.toml
par défaut est créé. Vous pouvez également créer manuellement votre fichier de configuration.
Modification des fichiers de configuration
Vous pouvez modifier manuellement vos fichiers de configuration. De plus, au cours de n'importe quel AWS SAM CLI flux interactif, les valeurs configurées seront affichées entre crochets ([ ]
). Si vous modifiez ces valeurs, AWS SAM CLI mettra à jour votre fichier de configuration.
Vous trouverez ci-dessous un exemple du flux interactif utilisant la commande sam deploy --guided
:
$
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
Lorsque vous modifiez votre fichier de configuration, AWS SAM CLI gère les valeurs globales comme suit :
-
Si la valeur du paramètre existe dans la
global
section de votre fichier de configuration, AWS SAM CLI n'écrit pas la valeur dans la section de commande spécifique. -
Si la valeur du paramètre existe à la fois dans les sections de commande
global
et dans les sections de commande spécifiques, AWS SAM CLI supprime l'entrée spécifique en faveur de la valeur globale.