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.
Parameters référence de syntaxe de section pour les CloudFormation modèles
Utilisez la section Parameters
facultative pour personnaliser vos modèles. Grâce aux paramètres, vous pouvez saisir des valeurs personnalisées dans votre modèle chaque fois que vous créez ou mettez à jour une pile. En utilisant des paramètres dans vos modèles, vous pouvez créer des modèles réutilisables et flexibles qui peuvent être adaptés à des scénarios spécifiques.
En définissant des paramètres du type approprié, vous pouvez choisir parmi une liste d'identifiants de ressources existantes lorsque vous utilisez la console pour créer votre pile. Pour de plus amples informations, veuillez consulter Référencez les ressources existantes et les paramètres de Systems Manager avec les CloudFormation types de paramètres fournis.
Les paramètres sont un moyen courant de spécifier les valeurs des propriétés des ressources de pile. Cependant, certains paramètres peuvent dépendre de la région ou être quelque peu complexes à comprendre pour les utilisateurs en raison d'autres conditions ou dépendances. Dans ces cas, vous souhaiterez peut-être intégrer une certaine logique dans le modèle lui-même afin que les utilisateurs puissent spécifier des valeurs plus simples (ou aucune valeur du tout) pour obtenir les résultats souhaités, par exemple en utilisant un mappage. Pour de plus amples informations, veuillez consulter Mappings référence de syntaxe de section pour les CloudFormation modèles.
Syntaxe
Vous déclarez les paramètres dans la Parameters
section d'un modèle, qui utilise la syntaxe générale suivante :
JSON
"Parameters" : { "
ParameterLogicalID
" : { "Description
": "Information about the parameter
", "Type" : "DataType
", "Default
" : "value
", "AllowedValues
" : ["value1
", "value2
"] } }
YAML
Parameters:
ParameterLogicalID
:Description
:Information about the parameter
Type:DataType
Default
:value
AllowedValues
: -value1
-value2
Un paramètre contient une liste d'attributs qui définissent sa valeur, ainsi que les contraintes de cette valeur. Le seul attribut requis estType
, qui peut être String
Number
, ou un type de paramètre CloudFormation fourni par -. Vous pouvez également ajouter un Description
attribut qui décrit le type de valeur à spécifier. Le nom et la description du paramètre apparaissent sur la page Spécifier les paramètres lorsque vous utilisez le modèle dans l'assistant Create Stack.
Note
Par défaut, la CloudFormation console répertorie les paramètres d'entrée par ordre alphabétique selon leur identifiant logique. Pour annuler cet ordre par défaut et regrouper les paramètres associés, vous pouvez utiliser la clé de AWS::CloudFormation::Interface
métadonnées de votre modèle. Pour de plus amples informations, veuillez consulter AWS::CloudFormation::Interface.
Pour les paramètres avec des valeurs par défaut, CloudFormation utilise les valeurs par défaut sauf si les utilisateurs spécifient une autre valeur. Si vous omettez l'attribut par défaut, les utilisateurs doivent spécifier une valeur pour ce paramètre. Cependant, le fait de demander à l'utilisateur de saisir une valeur ne garantit pas que la valeur est valide. Pour valider la valeur d'un paramètre, vous pouvez déclarer des contraintes ou spécifier un type de paramètre AWS spécifique.
Pour les paramètres sans valeurs par défaut, les utilisateurs doivent spécifier une valeur de nom de clé lors de la création de la pile. S'ils ne le font pas, ils CloudFormation ne parviennent pas à créer la pile et génèrent une exception :
Parameters: [KeyName] must have values
Propriétés
AllowedPattern
-
Une expression régulière qui représente les modèles que vous voulez autoriser pour
String
ou les typesCommaDelimitedList
. Lorsqu'il est appliqué à un paramètre de typeString
, le modèle doit correspondre à la valeur entière du paramètre fournie. Lorsqu'il est appliqué à un paramètre de typeCommaDelimitedList
, le modèle doit correspondre à chaque valeur de la liste.Obligatoire : non
AllowedValues
-
Tableau contenant la liste des valeurs autorisées pour le paramètre. Lorsqu'elle est appliquée à un paramètre de type
String
, la valeur du paramètre doit être l'une des valeurs autorisées. Lorsqu'elle est appliquée à un paramètre de typeCommaDelimitedList
, chaque valeur de la liste doit être l'une des valeurs autorisées spécifiées.Obligatoire : non
Note
Si vous utilisez YAML et que vous souhaitez utiliser des
No
chaînes pourAllowedValues
, utilisezYes
des guillemets simples pour empêcher l'YAMLanalyseur de prendre en compte ces valeurs booléennes. ConstraintDescription
-
Chaîne qui explique la contrainte lorsque celle-ci n'est pas respectée. Par exemple, sans description de contrainte, un paramètre dont le modèle
[A-Za-z0-9]+
est autorisé affiche le message d'erreur suivant lorsque l'utilisateur spécifie une valeur non valide :Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+
En ajoutant une description de contrainte, comme doit uniquement contenir des lettres (minuscules et majuscules) et des chiffres, vous pouvez afficher le message d'erreur personnalisé suivant :
Malformed input-Parameter MyParameter must only contain uppercase and lowercase letters and numbers
Obligatoire : non
Default
-
Valeur correspondant au type approprié de modèle à utiliser si aucune valeur n'est spécifiée lors de la création d'une pile. Si vous avez défini des contraintes pour le paramètre, vous devez spécifier une valeur conforme à ces contraintes.
Obligatoire : non
Description
-
Chaîne de maximum 4000 caractères qui décrit le paramètre.
Obligatoire : non
MaxLength
-
Nombre entier qui détermine le nombre maximal de caractères que vous voulez autoriser pour les types
String
.Obligatoire : non
MaxValue
-
Valeur numérique qui détermine la valeur maximale que vous voulez autoriser pour les types
Number
.Obligatoire : non
MinLength
-
Nombre entier qui détermine le nombre minimal de caractères que vous voulez autoriser pour les types
String
.Obligatoire : non
MinValue
-
Valeur numérique qui détermine la valeur minimale que vous voulez autoriser pour les types
Number
.Obligatoire : non
NoEcho
-
S'il faut masquer la valeur du paramètre pour empêcher son affichage dans la console, les outils de ligne de commande ouAPI. Si vous définissez l'
NoEcho
attribut surtrue
, CloudFormation renvoie la valeur du paramètre masquée sous forme d'astérisques (*****) pour tous les appels décrivant la pile ou les événements de la pile, à l'exception des informations stockées aux emplacements spécifiés ci-dessous.Obligatoire : non
Important
L'utilisation de l'attribut
NoEcho
ne masque aucune information stockée dans les lieux suivants :-
La section des
Metadata
modèles. CloudFormation ne transforme, ne modifie ni n'expédie aucune information que vous incluez dansMetadata
cette section. Pour de plus amples informations, veuillez consulter Metadata référence de syntaxe de section pour les CloudFormation modèles. -
La section de modèle
Outputs
Pour de plus amples informations, veuillez consulter Outputs référence de syntaxe de section pour les CloudFormation modèles. -
L’attribut
Metadata
d'une définition de ressource. Pour de plus amples informations, veuillez consulter Attribut Metadata.
Nous vous recommandons vivement de ne pas utiliser ces mécanismes pour inclure des informations sensibles, telles que des mots de passe ou des secrets.
Important
Plutôt que d'intégrer des informations sensibles directement dans vos CloudFormation modèles, nous vous recommandons d'utiliser des paramètres dynamiques dans le modèle de pile pour référencer les informations sensibles stockées et gérées à l'extérieur CloudFormation, par exemple dans le AWS Systems Manager Parameter Store ou AWS Secrets Manager.
Pour plus d'informations, consultez les N'incorporez pas d'informations d'identification dans vos modèles meilleures pratiques.
Important
Nous vous déconseillons vivement d'inclure des paramètres
NoEcho
, ou toute donnée sensible, dans les propriétés des ressources qui font partie de l'identifiant principal d'une ressource.Lorsqu'un
NoEcho
paramètre est inclus dans une propriété qui constitue un identifiant de ressource principal, il CloudFormation peut utiliser la valeur réelle en texte brut dans l'identifiant de ressource principal. Cet ID de ressource peut apparaître dans toutes les sorties ou destinations dérivées.Pour déterminer quelles propriétés de ressource constituent l'identifiant principal d'un type de ressource, reportez-vous à la documentation de référence de cette ressource dans leAWS référence aux types de ressources et de propriétés. Dans la section Valeurs renvoyées, la valeur de retour de la fonction
Ref
représente les propriétés de la ressource qui constituent l'identifiant principal du type de ressource. -
Type
-
Type de données du paramètre (
DataType
).Obligatoire : oui
CloudFormation prend en charge les types de paramètres suivants :
String
-
Chaîne littérale. Vous pouvez utiliser les attributs suivants pour déclarer des contraintes :
MinLength
MaxLength
,Default
,AllowedValues
, etAllowedPattern
.Par exemple, les utilisateurs peuvent spécifier
"MyUserName"
. Number
-
Nombre entier ou valeur flottante. CloudFormation valide la valeur du paramètre sous forme de nombre ; toutefois, lorsque vous utilisez le paramètre ailleurs dans votre modèle (par exemple, en utilisant la fonction
Ref
intrinsèque), la valeur du paramètre devient une chaîne.Vous pouvez utiliser les attributs suivants pour déclarer des contraintes :
MinValue
MaxValue
,Default
, etAllowedValues
.Par exemple, les utilisateurs peuvent spécifier
"8888"
. List<Number>
-
Tableau d'entiers ou de nombres flottants séparés par des virgules. CloudFormationvalide la valeur du paramètre sous forme de nombres ; toutefois, lorsque vous utilisez le paramètre ailleurs dans votre modèle (par exemple, en utilisant la fonction
Ref
intrinsèque), la valeur du paramètre devient une liste de chaînes.Les utilisateurs peuvent par exemple préciser
"80,20"
et la fonctionRef
générera["80","20"]
. CommaDelimitedList
-
Tableau de chaînes littérales séparées par des virgules. Le nombre total de chaînes doit correspondre au nombre total de virgules, plus un. En outre, les espaces de chaque chaîne de membre sont coupés.
Les utilisateurs peuvent par exemple préciser
"test,dev,prod"
et la fonctionRef
générera["test","dev","prod"]
. - Types de paramètres spécifiques àAWS
-
AWS des valeurs telles que les noms EC2 des paires de clés Amazon et VPCIDs. Pour de plus amples informations, veuillez consulter Utiliser les CloudFormation types de paramètres fournis.
- Types de paramètres de Systems Manager
-
Paramètres correspondant aux paramètres existants dans Systems Manager Parameter Store. Vous spécifiez une clé de paramètre Systems Manager comme valeur du type de paramètre Systems Manager et vous CloudFormation récupérez la dernière valeur du Parameter Store à utiliser pour la pile. Pour de plus amples informations, veuillez consulter Utiliser les CloudFormation types de paramètres fournis.
Consignes générales pour les paramètres
Les critères suivants s'appliquent lors de l'utilisation des paramètres :
-
Vous pouvez avoir un maximum de 200 paramètres dans un CloudFormation modèle.
-
Chaque paramètre doit recevoir un nom logique (également appelé ID logique) qui doit être alphanumérique et unique parmi tous les noms logiques du modèle.
-
Chaque paramètre doit être associé à un type de paramètre pris en charge par CloudFormation. Pour plus d'informations, consultez Type.
-
Une valeur doit être affectée à chaque paramètre au moment de l'exécution CloudFormation pour approvisionner correctement la pile. Vous pouvez éventuellement spécifier une valeur par défaut CloudFormation à utiliser à moins qu'une autre valeur ne soit fournie.
-
Les paramètres doivent être déclarés et référencés à partir du même modèle. Vous pouvez référencer des paramètres dans les sections
Resources
etOutputs
du modèle.
Exemples
Rubriques
Paramètre de chaîne simple
L'exemple suivant déclare un paramètre nommé InstanceTypeParameter
de typeString
. Ce paramètre vous permet de spécifier le type d'EC2instance Amazon pour la pile. Si aucune valeur n'est fournie lors de la création ou de la mise à jour de la pile, CloudFormation utilise la valeur par défaut det2.micro
.
JSON
"Parameters" : { "InstanceTypeParameter" : { "Description" : "Enter t2.micro, m1.small, or m1.large. Default is t2.micro.", "Type" : "String", "Default" : "t2.micro", "AllowedValues" : ["t2.micro", "m1.small", "m1.large"] } }
YAML
Parameters: InstanceTypeParameter: Description: Enter t2.micro, m1.small, or m1.large. Default is t2.micro. Type: String Default: t2.micro AllowedValues: - t2.micro - m1.small - m1.large
paramètre de mot de passe
L'exemple suivant déclare un paramètre nommé DBPwd
de type String
sans valeur par défaut. La NoEcho
propriété est définie true
pour empêcher l'affichage de la valeur du paramètre dans les descriptions des piles. La longueur minimale qui peut être spécifiée s'élève à 1
, et la longueur maximale à 41
. Le modèle accepte les chiffres et les lettres minuscules et majuscules. Cet exemple illustre également l'utilisation d'une expression régulière pour la AllowedPattern
propriété.
JSON
"Parameters" : { "DBPwd" : { "NoEcho" : "true", "Description" : "The database admin account password", "Type" : "String", "MinLength" : "1", "MaxLength" : "41", "AllowedPattern" : "^[a-zA-Z0-9]*$" } }
YAML
Parameters: DBPwd: NoEcho: true Description: The database admin account password Type: String MinLength: 1 MaxLength: 41 AllowedPattern: ^[a-zA-Z0-9]*$
Paramètres de référencement
Vous utilisez la fonction Ref
intrinsèque pour référencer un paramètre, et CloudFormation vous utilisez la valeur du paramètre pour approvisionner la pile. Vous pouvez faire référence à des paramètres dans les sections Resources
et Outputs
du même modèle.
Dans l'exemple suivant, la InstanceType
propriété de la ressource d'EC2instance fait référence à la valeur du InstanceTypeParameter
paramètre :
JSON
"Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : { "Ref" : "InstanceTypeParameter" }, "ImageId" : "ami-0ff8a91507f77f867" } }
YAML
Ec2Instance: Type: AWS::EC2::Instance Properties: InstanceType: Ref: InstanceTypeParameter ImageId: ami-0ff8a91507f77f867
Paramètre de liste délimité par des virgules
Le type de CommaDelimitedList
paramètre peut être utile lorsque vous devez fournir plusieurs valeurs pour une seule propriété. L'exemple suivant déclare un paramètre nommé DbSubnetIpBlocks
avec une valeur par défaut de trois CIDR blocs séparés par des virgules.
JSON
"Parameters" : { "DbSubnetIpBlocks": { "Description": "Comma-delimited list of three CIDR blocks", "Type": "CommaDelimitedList", "Default": "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24" } }
YAML
Parameters: DbSubnetIpBlocks: Description: "Comma-delimited list of three CIDR blocks" Type: CommaDelimitedList Default: "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24"
Renvoi d'une valeur de paramètre de liste séparée par des virgules
Pour faire référence à une valeur spécifique dans la liste séparée par des virgules d'un paramètre, utilisez la fonction Fn::Select
intrinsèque dans la Resources
section de votre modèle. Transmettez la valeur d'index de l'objet souhaité et une liste d'objets, comme indiqué dans l'exemple suivant.
JSON
{ "Parameters": { "VPC": { "Type": "String", "Default": "vpc-123456" }, "VpcAzs": { "Type": "CommaDelimitedList", "Default": "us-west-2a, us-west-2b, us-west-2c" }, "DbSubnetIpBlocks": { "Type": "CommaDelimitedList", "Default": "172.16.0.0/26, 172.16.0.64/26, 172.16.0.128/26" } }, "Resources": { "DbSubnet1": { "Type": "AWS::EC2::Subnet", "Properties": { "AvailabilityZone": { "Fn::Sub": [ "${AWS::Region}${AZ}", { "AZ": { "Fn::Select": [ 0, { "Ref": "VpcAzs" } ] } } ] }, "VpcId": { "Ref": "VPC" }, "CidrBlock": { "Fn::Select": [ 0, { "Ref": "DbSubnetIpBlocks" } ] } } }, "DbSubnet2": { "Type": "AWS::EC2::Subnet", "Properties": { "AvailabilityZone": { "Fn::Sub": [ "${AWS::Region}${AZ}", { "AZ": { "Fn::Select": [ 1, { "Ref": "VpcAzs" } ] } } ] }, "VpcId": { "Ref": "VPC" }, "CidrBlock": { "Fn::Select": [ 1, { "Ref": "DbSubnetIpBlocks" } ] } } }, "DbSubnet3": { "Type": "AWS::EC2::Subnet", "Properties": { "AvailabilityZone": { "Fn::Sub": [ "${AWS::Region}${AZ}", { "AZ": { "Fn::Select": [ 2, { "Ref": "VpcAzs" } ] } } ] }, "VpcId": { "Ref": "VPC" }, "CidrBlock": { "Fn::Select": [ 2, { "Ref": "DbSubnetIpBlocks" } ] } } } } }
YAML
Parameters: VPC: Type: String Default: vpc-123456 VpcAzs: Type: CommaDelimitedList Default: us-west-2a, us-west-2b, us-west-2c DbSubnetIpBlocks: Type: CommaDelimitedList Default: 172.16.0.0/26, 172.16.0.64/26, 172.16.0.128/26 Resources: DbSubnet1: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - ${AWS::Region}${AZ} - AZ: !Select - 0 - !Ref VpcAzs VpcId: !Ref VPC CidrBlock: !Select - 0 - !Ref DbSubnetIpBlocks DbSubnet2: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - ${AWS::Region}${AZ} - AZ: !Select - 1 - !Ref VpcAzs VpcId: !Ref VPC CidrBlock: !Select - 1 - !Ref DbSubnetIpBlocks DbSubnet3: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - ${AWS::Region}${AZ} - AZ: !Select - 2 - !Ref VpcAzs VpcId: !Ref VPC CidrBlock: !Select - 2 - !Ref DbSubnetIpBlocks
Ressources connexes
CloudFormation prend également en charge l'utilisation de références dynamiques pour spécifier les valeurs des propriétés de manière dynamique. Par exemple, vous devrez peut-être référencer des chaînes sécurisées stockées dans le magasin de paramètres de Systems Manager. Pour de plus amples informations, veuillez consulter Obtenez des valeurs stockées dans d'autres services à l'aide de références dynamiques.
Vous pouvez également utiliser des pseudo-paramètres au sein d'une fonction Ref
ou d'une Sub
fonction pour renseigner des valeurs de manière dynamique. Pour de plus amples informations, veuillez consulter Référence des pseudo-paramètres.