Paramètres - AWS CloudFormation

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.

Paramètres

Utilisez la section Parameters facultative pour personnaliser vos modèles. Les paramètres vous permettent de saisir des valeurs personnalisées dans votre modèle à chaque fois que vous créez ou mettez à jour une pile.

Définir un paramètre dans un modèle

L'exemple suivant crée un paramètre nommé InstanceTypeParameter. Ce paramètre vous permet de spécifier le type d'instance Amazon EC2 pour la pile à utiliser lorsque vous créez ou mettez à jour la pile.

Notez que InstanceTypeParameter dispose d'une valeur de t2.micro par défaut. Il s'agit de la valeur AWS CloudFormation utilisée pour approvisionner la pile à moins qu'une autre valeur ne soit fournie.

JSON

"Parameters" : { "InstanceTypeParameter" : { "Type" : "String", "Default" : "t2.micro", "AllowedValues" : ["t2.micro", "m1.small", "m1.large"], "Description" : "Enter t2.micro, m1.small, or m1.large. Default is t2.micro." } }

YAML

Parameters: InstanceTypeParameter: Type: String Default: t2.micro AllowedValues: - t2.micro - m1.small - m1.large Description: Enter t2.micro, m1.small, or m1.large. Default is t2.micro.

Référencement d'un paramètre au sein d'un modèle

Vous utilisez la fonction Ref intrinsèque pour référencer un paramètre, et AWS 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 propriété InstanceType de l'instance EC2 ressource fait référence à la valeur du paramètre InstanceTypeParameter :

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

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 AWS CloudFormation modèle.

  • Vous devez donner un nom logique à chaque paramètre (également appelé ID logique). Il doit être alphanumérique et unique parmi tous les noms logiques présents dans le modèle.

  • Chaque paramètre doit être associé à un type de paramètre pris en charge par AWS CloudFormation. Pour plus d'informations, consultez Type.

  • Une valeur doit être affectée à chaque paramètre au moment de l'exécution AWS CloudFormation pour approvisionner correctement la pile. Vous pouvez éventuellement spécifier une valeur par défaut AWS 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 et Outputs du modèle.

JSON

"Parameters" : { "ParameterLogicalID" : { "Type" : "DataType", "ParameterProperty" : "value" } }

YAML

Parameters: ParameterLogicalID: Type: DataType ParameterProperty: value

Propriétés

AllowedPattern

Une expression régulière qui représente les modèles que vous voulez autoriser pour String ou les types CommaDelimitedList. Lorsqu'il est appliqué à un paramètre de type String, le modèle doit correspondre à la valeur entière du paramètre fournie. Lorsqu'il est appliqué à un paramètre de type CommaDelimitedList, 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 type CommaDelimitedList, chaque valeur de la liste doit être l'une des valeurs autorisées spécifiées.

Obligatoire : non

Note

Si vous utilisez le format YAML et que vous souhaitez utiliser des chaînes Yes et No pour AllowedValues, utilisez des guillemets simples pour empêcher l'analyseur YAML 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

Pour masquer la valeur du paramètre et éviter qu’elle ne s’affiche dans la console, les outils de ligne de commande ou l’API. Si vous définissez l'NoEchoattribut 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 dans Metadata cette section. Pour plus d’informations, consultez Metadonnées.

  • La section de modèle Outputs Pour plus d’informations, consultez Outputs.

  • L’attribut Metadata d'une définition de ressource. Pour plus d’informations, consultez 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 les propriétés de ressource qui comprennent l'identifiant principal d'un type de ressource, veuillez consulter la documentation de référence de la ressource pour cette ressource. 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

AWS CloudFormation prend en charge les types de paramètres suivants :

String

Chaîne littérale.

Par exemple, les utilisateurs peuvent spécifier "MyUserName".

Number

Nombre entier ou valeur flottante. AWS 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.

Par exemple, les utilisateurs peuvent spécifier "8888".

List<Number>

Tableau d'entiers ou de nombres flottants séparés par des virgules. AWS CloudFormation valide 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 fonction Ref 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 fonction Ref générera ["test","dev","prod"].

Types de paramètres spécifiques àAWS

AWS des valeurs telles que les noms de paires de clés Amazon EC2 et les identifiants VPC. Pour plus d’informations, consultez Types de paramètres spécifiques àAWS.

SSM Types de paramètres

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 SSM paramètre et vous AWS CloudFormation récupérez la dernière valeur dans Parameter Store pour l'utiliser pour la pile. Pour plus d’informations, consultez Types de paramètres SSM.

Types de paramètres spécifiques àAWS

Les types de paramètres spécifiques àAWS sont utiles pour détecter des valeurs non valides dès le début de la création ou de la mise à jour d'une pile. Pour spécifier des paramètres avec AWS des types spécifiques, un utilisateur du modèle doit saisir les AWS valeurs existantes qui se trouvent dans son AWS compte. AWS CloudFormation valide ces valeurs d'entrée par rapport aux valeurs existantes dans le compte. Par exemple, avec le type de paramètre AWS::EC2::VPC::Id, un utilisateur doit entrer un ID de VPC existant qui est dans le compte et dans la région où il crée la pile.

Si vous souhaitez autoriser les utilisateurs du modèle à saisir des valeurs d'entrée provenant de différents AWS comptes, ne définissez pas de paramètres avec AWS des types spécifiques ; définissez plutôt des paramètres de type String ouCommaDelimitedList.

Types de paramètres AWS spécifiques pris en charge

AWS CloudFormation prend en charge les types AWS spécifiques suivants :

AWS::EC2::AvailabilityZone::Name

Zone de disponibilité (us-west-2a, par exemple).

AWS::EC2::Image::Id

ID d'image Amazon EC2 tel que ami-0ff8a91507f77f867. Notez que la console AWS CloudFormation n'affiche pas une liste déroulante de valeurs pour ce type de paramètre.

AWS::EC2::Instance::Id

ID d'instance Amazon EC2, tel que i-1e731a32.

AWS::EC2::KeyPair::KeyName

Nom de paire de clés Amazon EC2.

AWS::EC2::SecurityGroup::GroupName

Nom d'un groupe de sécurité VPC par défaut ou EC2-Classic (my-sg-abc, par exemple).

AWS::EC2::SecurityGroup::Id

ID de groupe de sécurité (sg-a123fd85, par exemple).

AWS::EC2::Subnet::Id

ID de sous-réseau (subnet-123a351e, par exemple).

AWS::EC2::Volume::Id

ID de volume Amazon EBS, tel que vol-3cdd3f56.

AWS::EC2::VPC::Id

ID d'un VPC (vpc-a123baa3, par exemple).

AWS::Route53::HostedZone::Id

ID de zone hébergée Amazon Route 53, tel que Z23YXV4OVPL04A.

List<AWS::EC2::AvailabilityZone::Name>

Tableau de zones de disponibilité d'une région (us-west-2a, us-west-2b, par exemple).

List<AWS::EC2::Image::Id>

Tableau d'ID d'images Amazon EC2, tel que ami-0ff8a91507f77f867, ami-0a584ac55a7631c0c. Notez que la AWS CloudFormation console n'affiche pas de liste déroulante de valeurs pour ce type de paramètre.

List<AWS::EC2::Instance::Id>

Tableau d'ID d'instances Amazon EC2, tel que i-1e731a32, i-1e731a34.

List<AWS::EC2::SecurityGroup::GroupName>

Tableau de noms de groupes de sécurité VPC par défaut ou EC2-Classic (my-sg-abc, my-sg-def, par exemple).

List<AWS::EC2::SecurityGroup::Id>

Tableau d'ID de groupe de sécurité (sg-a123fd85, sg-b456fd85, par exemple).

List<AWS::EC2::Subnet::Id>

Tableau d'ID de sous-réseau (subnet-123a351e, subnet-456b351e, par exemple).

List<AWS::EC2::Volume::Id>

Tableau d'ID de volumes Amazon EBS, tel que vol-3cdd3f56, vol-4cdd3f56.

List<AWS::EC2::VPC::Id>

Tableau d'ID de VPC (vpc-a123baa3, vpc-b456baa3, par exemple).

List<AWS::Route53::HostedZone::Id>

Tableau d'ID de zones hébergées Amazon Route 53, tel que Z23YXV4OVPL04A, Z23YXV4OVPL04B.

Types de paramètres SSM

Les types de paramètres SSM correspondent aux paramètres existants dans Systems Manager Parameter Store. Vous spécifiez une clé de paramètre Systems Manager comme valeur du SSM paramètre et vous AWS CloudFormation récupérez la dernière valeur dans Parameter Store pour l'utiliser pour la pile. Pour les paramètres SSM qui y sont stockés Compte AWS, entrez le nom du paramètre. Pour les paramètres SSM partagés par un autre Compte AWS, entrez le paramètre ARN complet. Pour plus d'informations sur les paramètres de Systems Manager, consultez Systems Manager Parameter Store et Working with shared parameters dans le Guide de AWS Systems Manager l'utilisateur.

Vous pouvez également utiliser le modèle de paramètre dynamique ssm ou ssm-secure pour spécifier les valeurs des paramètres dans votre modèle. Pour plus d’informations, consultez Utilisation de références dynamiques pour spécifier les valeurs de modèle.

Lorsque vous créez ou mettez à jour des piles et que vous créez des ensembles de modifications AWS CloudFormation , utilisez les valeurs existant dans le Parameter Store au moment de l'exécution de l'opération. Si un paramètre spécifié n'existe pas dans le Parameter Store sous le AWS compte de l'appelant, AWS CloudFormation renvoie une erreur de validation.

Lorsque vous exécutez un ensemble de modifications, AWS CloudFormation utilise les valeurs spécifiées dans le jeu de modifications. Vous devriez consulter ces valeurs avant d'exécuter le jeu de modifications, car celles-ci peuvent changer dans Parameter Store entre la création du jeu de modifications et son exécution.

Astuce

Vous pouvez voir les valeurs résolues pour les paramètres SSM dans l'onglet Paramètres de la pile dans la console, ou en exécutant describe-stacks ou describe-change-set. Ce sont les valeurs actuellement utilisées dans la définition de pile correspondant aux clés de paramètres Systems Manager. Notez que ces valeurs sont définies lorsque la pile est créée ou mise à jour, afin qu'elles puissent différer des dernières valeurs dans Parameter Store.

Si vous spécifiez des chaînes sécurisées comme valeurs de paramètres à l'aide du ssm-secure modèle, la valeur de chaîne sécurisée n'est pas stockée et AWS CloudFormation ne l'affiche pas dans la console ou dans les résultats des appels d'API.

Comme la valeur d'un paramètre SSM est une clé de paramètre Systems Manager, vous devez être conscient du comportement suivant :

  • Pour les mises à jour de la pile, l'option Use existing value de la console et l'UsePreviousValueattribut update-stacktell doivent AWS CloudFormation utiliser la clé de paramètre existante de Systems Manager, et non sa valeur. AWS CloudFormation récupère toujours les dernières valeurs depuis le Parameter Store lorsqu'il met à jour les piles.

    Toutefois, si vous utilisez le modèle de paramètre dynamique ssm ou ssm-secure pour spécifier les valeurs des paramètres, vous devez spécifier une version du paramètre Systems Manager qu' AWS CloudFormation doit utiliser.

  • AWS CloudFormation peuvent effectuer une validation sur les clés de paramètres de Systems Manager, mais pas sur leurs valeurs correspondantes. Vous pouvez traiter les clés de paramètres sous forme de chaînes pour la validation. Toute validation de paramètres Systems Manager doit se faire dans Parameter Store.

Consultez la section Types de paramètres SSM pour obtenir des exemples utilisant les types de paramètres SSM.

Types de paramètres SSM pris en charge

AWS CloudFormation prend en charge les types de SSM paramètres suivants :

AWS::SSM::Parameter::Name

Nom d'une clé de paramètre Systems Manager.

Utilisez ce paramètre lorsque vous souhaitez transmettre la clé de paramètre. Vous pouvez par exemple utiliser ce type pour valider l'existence du paramètre.

AWS::SSM::Parameter::Value<String>

Un paramètre Systems Manager dont la valeur est une chaîne. C'est le type de paramètre String dans Parameter Store.

AWS::SSM::Parameter::Value<List<String>> ou AWS::SSM::Parameter::Value<CommaDelimitedList>

Un paramètre Systems Manager dont la valeur est une liste de chaînes. C'est le type de paramètre StringList dans Parameter Store.

AWS::SSM::Parameter::Value<AWS-specific parameter type>

Paramètre Systems Manager dont la valeur est un type de paramètre propre àAWS. L'exemple suivant spécifie le type AWS::EC2::KeyPair::KeyName :

AWS::SSM::Parameter::Value<AWS::EC2::KeyPair::KeyName>

AWS::SSM::Parameter::Value<List<AWS-specific parameter type>>

Paramètre Systems Manager dont la valeur est la liste des types de paramètres propres àAWS. L'exemple suivant spécifie une liste de types AWS::EC2::KeyPair::KeyName :

AWS::SSM::Parameter::Value<List<AWS::EC2::KeyPair::KeyName>>

Types de paramètres SSM non pris en charge

AWS CloudFormation ne prend pas en charge le type de SSM paramètre suivant :

  • Listes des types de paramètres SSM – par exemple : List<AWS::SSM::Parameter::Value<String>>

En outre, AWS CloudFormation ne prend pas en charge la définition de paramètres de modèle en tant que types de paramètres SecureString Systems Manager. Cependant, vous pouvez spécifier des chaînes sécurisées comme valeurs de paramètres pour certaines ressources en utilisant des modèles de paramètres dynamiques. Pour plus d’informations, consultez Utilisation de références dynamiques pour spécifier les valeurs de modèle.

Regroupement et tri des paramètres dans la console AWS CloudFormation

Lorsque vous utilisez la AWS CloudFormation console pour créer ou mettre à jour une pile, elle répertorie les paramètres d'entrée par ordre alphabétique en fonction de leur identifiant logique. Pour remplacer l'ordre par défaut, vous pouvez utiliser la clé de métadonnées AWS::CloudFormation::Interface. Le regroupement et le tri des paramètres permettent aux utilisateurs de spécifier plus facilement des valeurs de paramètre. Par exemple, vous pouvez regrouper tous les paramètres liés au VPC pour éviter qu'ils ne soient dispersés dans une liste alphabétique.

Dans la clé de métadonnées, vous pouvez spécifier les groupes à créer, les paramètres à inclure dans chaque groupe et l'ordre dans lequel la console affiche chaque paramètre au sein de son groupe. Vous pouvez aussi définir des noms descriptifs pour les paramètres pour que la console affiche ces noms au lieu des ID logiques. Tous les paramètres que vous référencez dans la clé de métadonnées doivent être déclarés dans la section Parameters du modèle.

Pour plus d'informations et pour voir un exemple de la clé de métadonnées AWS::CloudFormation::Interface, consultez AWS::CloudFormation::Interface.

Exemples

Paramètres d'entrée de base

L'exemple de section suivant Parameters déclare deux paramètres. Le paramètre DBPort est de type Number avec la valeur par défaut 3306. La valeur minimale qui peut être spécifiée s'élève à 1150, et la valeur maximale à 65535. Le paramètre DBPwd est de type String, sans valeur par défaut. La NoEcho propriété est définie true pour empêcher les appels de description de la pile, tels que la aws cloudformation describe-stacks AWS CLI commande, de renvoyer la valeur du paramètre. 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.

JSON

"Parameters" : { "DBPort" : { "Default" : "3306", "Description" : "TCP/IP port for the database", "Type" : "Number", "MinValue" : "1150", "MaxValue" : "65535" }, "DBPwd" : { "NoEcho" : "true", "Description" : "The database admin account password", "Type" : "String", "MinLength" : "1", "MaxLength" : "41", "AllowedPattern" : "^[a-zA-Z0-9]*$" } }

YAML

Parameters: DBPort: Default: 3306 Description: TCP/IP port for the database Type: Number MinValue: 1150 MaxValue: 65535 DBPwd: NoEcho: true Description: The database admin account password Type: String MinLength: 1 MaxLength: 41 AllowedPattern: ^[a-zA-Z0-9]*$

Types de paramètres spécifiques àAWS

Lorsque vous utilisez des types de paramètres AWS spécifiques, un utilisateur qui utilise votre modèle pour créer ou mettre à jour une pile doit spécifier AWS les valeurs existantes qui se trouvent dans le compte de l'utilisateur et dans la région de la pile actuelle. AWS-les types de paramètres spécifiques permettent de garantir que les valeurs d'entrée pour ces types existent et sont correctes avant de AWS CloudFormation créer ou de mettre à jour des ressources. Par exemple, si vous utilisez le type de paramètre AWS::EC2::KeyPair::KeyName, AWS CloudFormation valide la valeur d'entrée par rapport aux noms des paires de clés existantes des utilisateurs avant de créer des ressources, telles que des instances Amazon EC2.

Si un utilisateur utilise le AWS Management Console, AWS CloudFormation préremplit les types de paramètres AWS spécifiques avec des valeurs valides. De cette façon, l'utilisateur n'a pas à se souvenir ni à entrer de noms ou d'ID spécifiques. Il sélectionnerait simplement une ou plusieurs valeurs dans une liste déroulante. En outre, en fonction du type de paramètre, les utilisateurs peuvent rechercher des valeurs par ID, nom ou valeur de balise. Pour plus d’informations, consultez Spécification du nom de la pile et des paramètres.

L'exemple suivant déclare deux paramètres avec les types de AWS::EC2::KeyPair::KeyName et AWS::EC2::Subnet::Id. Ces types limitent les valeurs valides aux noms de paire de clés et aux ID de sous-réseau existants. Etant donné que le paramètre mySubnetIDs est spécifié sous forme de liste, les utilisateurs peuvent définir un ou plusieurs ID de sous-réseau.

JSON

"Parameters" : { "myKeyPair" : { "Description" : "Amazon EC2 Key Pair", "Type" : "AWS::EC2::KeyPair::KeyName" }, "mySubnetIDs" : { "Description" : "Subnet IDs", "Type" : "List<AWS::EC2::Subnet::Id>" } }

YAML

Parameters: myKeyPair: Description: Amazon EC2 Key Pair Type: "AWS::EC2::KeyPair::KeyName" mySubnetIDs: Description: Subnet IDs Type: "List<AWS::EC2::Subnet::Id>"

AWS CLI et support des API

Actuellement, les utilisateurs ne peuvent pas utiliser l' AWS CloudFormation API AWS CLI or pour afficher une liste de valeurs valides pour AWS des paramètres spécifiques. Cependant, ils peuvent afficher des informations sur chaque paramètre, telles que le type de paramètre, avec la commande aws cloudformation get-template-summary ou l'API GetTemplateSummary.

Type de paramètre avec une liste de valeurs séparées par des virgules

Vous pouvez utiliser le type de paramètre CommaDelimitedList pour spécifier plusieurs valeurs de chaîne dans un seul paramètre. De cette façon, vous pouvez utiliser un seul paramètre au lieu de plusieurs pour définir différentes valeurs. Par exemple, si vous créez trois sous-réseaux différents avec leurs propres blocs d'adresses CIDR, vous pouvez utiliser trois paramètres distincts pour spécifier les trois blocs d'adresses CIDR séparés. Toutefois, il est plus simple d'utiliser un seul paramètre qui inclut une liste de trois blocs d'adresses CIDR, comme illustré dans l'extrait suivant :

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 une liste, utilisez la fonction intrinsèque Fn::Select dans la section Resources du modèle. Vous transmettez la valeur d'index de l'objet de votre choix et une liste d'objets, comme illustré dans l'extrait suivant :

JSON
"DbSubnet1" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "0", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "0", {"Ref" : "DbSubnetIpBlocks"} ] } } }, "DbSubnet2" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "1", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "1", {"Ref" : "DbSubnetIpBlocks"} ] } } }, "DbSubnet3" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "2", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "2", {"Ref" : "DbSubnetIpBlocks"} ] } } }
YAML
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]

Types de paramètres SSM

Type AWS::SSM::Parameter::Value<String>

Le modèle suivant crée un type de paramètre AWS::SSM::Parameter::Value<String>.

JSON
{ "Parameters": { "InstanceType": { "Type": "AWS::SSM::Parameter::Value<String>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "InstanceType": { "Ref": "InstanceType" } } } } }
YAML
Parameters: InstanceType: Type: 'AWS::SSM::Parameter::Value<String>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: !Ref InstanceType

La commande suivante crée une pile en utilisant le modèle dans l'exemple. Elle fournit la clé de paramètre Systems Manager (myInstanceType) comme valeur du paramètre de modèle InstanceType. Cela suppose que le paramètre myInstanceType n'existe pas dans Parameter Store sous le compte AWS du mandataire.

aws cloudformation create-stack --stack-name S1 --template-body example template --parameters ParameterKey=InstanceType,ParameterValue=myInstanceType

 

Type AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>

Le modèle suivant crée un type de paramètre AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>.

JSON
{ "Parameters": { "ImageId": { "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Ref": "ImageId" } } } } }
YAML
Parameters: ImageId: Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: !Ref ImageId

La commande suivante crée une pile en utilisant le modèle dans l'exemple. Elle fournit la clé de paramètre Systems Manager (myLatestAMI) comme valeur du paramètre de modèle ImageId. Cela suppose que le myLatestAMI paramètre existe dans le Parameter Store sous le AWS compte de l'appelant.

aws cloudformation create-stack --stack-name S2 --template-body example template --parameters ParameterKey=ImageId,ParameterValue=myLatestAMI