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.
Extraits de modèle généraux
Les exemples suivants illustrent différentes fonctions d’un modèle CloudFormation qui ne sont pas spécifiques à un service AWS.
Rubriques
Propriété UserData encodée en Base64 avec AccessKey et SecretKey
Section Parameters avec le paramètre String et une contrainte d’expression régulière
Section Parameters avec paramètre numérique et contraintes MinValue et MaxValue
Section Parameters avec le paramètre Number et la contrainte AllowedValues
Section Parameters avec un seul paramètre de type CommaDelimitedList
Section Parameters avec une valeur de paramètre basée sur un pseudo-paramètre
Section Outputs avec une seule référence de ressource et une seule pseudo-référence
Propriété UserData encodée en Base64
Cet exemple montre l’assemblage d’une propriété UserData à l’aide des fonctions Fn::Base64 et Fn::Join. Les références MyValue et MyName sont des paramètres qui doivent être définis dans la section Parameters du modèle. La chaîne littérale Hello World n'est qu'une autre valeur que cet exemple transmet dans le cadre du paramètre UserData.
JSON
"UserData" : { "Fn::Base64" : { "Fn::Join" : [ ",", [ { "Ref" : "MyValue" }, { "Ref" : "MyName" }, "Hello World" ] ] } }
YAML
UserData: Fn::Base64: !Sub | Ref: MyValue Ref: MyName Hello World
Propriété UserData encodée en Base64 avec AccessKey et SecretKey
Cet exemple montre l’assemblage d’une propriété UserData à l’aide des fonctions Fn::Base64 et Fn::Join. Il inclut les informations AccessKey et SecretKey. Les références AccessKey et SecretKey sont des paramètres qui doivent être définis dans la section Parameters du modèle.
JSON
"UserData" : { "Fn::Base64" : { "Fn::Join" : [ "", [ "ACCESS_KEY=", { "Ref" : "AccessKey" }, "SECRET_KEY=", { "Ref" : "SecretKey" } ] ] } }
YAML
UserData: Fn::Base64: !Sub | ACCESS_KEY=${AccessKey} SECRET_KEY=${SecretKey}
Section Parameters avec un seul paramètre de type String
L'exemple suivant illustre la déclaration d'une section Parameters valide dans laquelle un seul paramètre de type String est déclaré.
JSON
"Parameters" : { "UserName" : { "Type" : "String", "Default" : "nonadmin", "Description" : "Assume a vanilla user if no command-line spec provided" } }
YAML
Parameters: UserName: Type: String Default: nonadmin Description: Assume a vanilla user if no command-line spec provided
Section Parameters avec le paramètre String et une contrainte d’expression régulière
L'exemple suivant illustre la déclaration d'une section Parameters valide dans laquelle un seul paramètre de type String est déclaré. La valeur AdminUserAccount par défaut du paramètre est de admin. La valeur de ce paramètre doit comprendre entre 1 et 16 caractères alphabétiques ou numériques, mais doit commencer par un caractère alphabétique.
JSON
"Parameters" : { "AdminUserAccount": { "Default": "admin", "NoEcho": "true", "Description" : "The admin account user name", "Type": "String", "MinLength": "1", "MaxLength": "16", "AllowedPattern" : "[a-zA-Z][a-zA-Z0-9]*" } }
YAML
Parameters: AdminUserAccount: Default: admin NoEcho: true Description: The admin account user name Type: String MinLength: 1 MaxLength: 16 AllowedPattern: '[a-zA-Z][a-zA-Z0-9]*'
Section Parameters avec paramètre numérique et contraintes MinValue et MaxValue
L'exemple suivant illustre la déclaration d'une section Parameters valide dans laquelle un seul paramètre de type Number est déclaré. Le paramètre WebServerPort possède la valeur par défaut 80. Ses valeurs minimale et maximale s’élèvent respectivement à 1 et 65535.
JSON
"Parameters" : { "WebServerPort": { "Default": "80", "Description" : "TCP/IP port for the web server", "Type": "Number", "MinValue": "1", "MaxValue": "65535" } }
YAML
Parameters: WebServerPort: Default: 80 Description: TCP/IP port for the web server Type: Number MinValue: 1 MaxValue: 65535
Section Parameters avec le paramètre Number et la contrainte AllowedValues
L'exemple suivant illustre la déclaration d'une section Parameters valide dans laquelle un seul paramètre de type Number est déclaré. Le paramètre WebServerPort possède la valeur par défaut 80. Seules les valeurs 80 et 8888 sont autorisées.
JSON
"Parameters" : { "WebServerPortLimited": { "Default": "80", "Description" : "TCP/IP port for the web server", "Type": "Number", "AllowedValues" : ["80", "8888"] } }
YAML
Parameters: WebServerPortLimited: Default: 80 Description: TCP/IP port for the web server Type: Number AllowedValues: - 80 - 8888
Section Parameters avec un seul paramètre de type CommaDelimitedList
L’exemple suivant illustre une déclaration de section Parameters valide dans laquelle un seul paramètre de type CommaDelimitedList est déclaré. La propriété NoEcho est définie sur TRUE, ce qui masquera sa valeur par des astérisques (*****) dans la sortie describe-stacks, à l’exception des informations stockées aux emplacements spécifiés ci-dessous.
Important
L'utilisation de l'attribut NoEcho ne masque aucune information stockée dans les lieux suivants :
-
La section de modèle
MetadataCloudFormation ne transforme pas, ne modifie pas, ne rédige aucune information que vous incluez dans la sectionMetadata. Pour de plus amples informations, veuillez consulter Métadonnées. -
La section de modèle
OutputsPour de plus amples informations, veuillez consulter Sorties -
L’attribut
Metadatad'une définition de ressource. Pour plus d'informations, voir la section consécrée à l'AttributMetadata.
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 modèles CloudFormation, nous vous recommandons d’utiliser des paramètres dynamiques dans le modèle de pile pour faire référence aux informations sensibles stockées et gérées en dehors de CloudFormation, par exemple dans AWS Systems Manager Parameter Store ou AWS Secrets Manager.
Pour de plus amples informations, veuillez consulter la bonne pratique N'incorporez pas d'informations d'identification dans vos modèles.
JSON
"Parameters" : { "UserRoles" : { "Type" : "CommaDelimitedList", "Default" : "guest,newhire", "NoEcho" : "TRUE" } }
YAML
Parameters: UserRoles: Type: CommaDelimitedList Default: "guest,newhire" NoEcho: true
Section Parameters avec une valeur de paramètre basée sur un pseudo-paramètre
L'exemple suivant illustre les commandes qui utilisent les pseudo-paramètres AWS::StackName et AWS::Region dans les données utilisateur EC2. Pour plus d'informations sur les pseudo-paramètres, consultez Obtenir des AWS valeurs à l'aide de pseudo-paramètres.
JSON
"UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [ "#!/bin/bash -xe\n", "yum install -y aws-cfn-bootstrap\n", "/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref" : "AWS::StackName" }, " --resource LaunchConfig ", " --region ", { "Ref" : "AWS::Region" }, "\n", "/opt/aws/bin/cfn-signal -e $? ", " --stack ", { "Ref" : "AWS::StackName" }, " --resource WebServerGroup ", " --region ", { "Ref" : "AWS::Region" }, "\n" ]]}} }
YAML
UserData: Fn::Base64: !Sub | #!/bin/bash -xe yum update -y aws-cfn-bootstrap /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource LaunchConfig --region ${AWS::Region} /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource WebServerGroup --region ${AWS::Region}
Section Mapping avec trois mappages
L’exemple suivant illustre une déclaration de section Mapping valide qui contient trois mappages. Lorsque ce mappage est associé à une clé de mappage Stop, SlowDown, ou Go, il fournit les valeurs RVB assignées à l'attribut RGBColor correspondant.
JSON
"Mappings" : { "LightColor" : { "Stop" : { "Description" : "red", "RGBColor" : "RED 255 GREEN 0 BLUE 0" }, "SlowDown" : { "Description" : "yellow", "RGBColor" : "RED 255 GREEN 255 BLUE 0" }, "Go" : { "Description" : "green", "RGBColor" : "RED 0 GREEN 128 BLUE 0" } } }
YAML
Mappings: LightColor: Stop: Description: red RGBColor: "RED 255 GREEN 0 BLUE 0" SlowDown: Description: yellow RGBColor: "RED 255 GREEN 255 BLUE 0" Go: Description: green RGBColor: "RED 0 GREEN 128 BLUE 0"
Description basé sur une chaîne littérale
L’exemple suivant illustre une déclaration de section Description valide dans laquelle la valeur est basée sur une chaîne littérale. Cet extrait peut s'appliquer à des modèles, des paramètres, des ressources, des propriétés ou des sorties.
JSON
"Description" : "Replace this value"
YAML
Description: "Replace this value"
Section Outputs avec une seule sortie de chaîne littérale
Cet exemple illustre une affectation de sortie basée sur une chaîne littérale.
JSON
"Outputs" : { "MyPhone" : { "Value" : "Please call 555-5555", "Description" : "A random message for aws cloudformation describe-stacks" } }
YAML
Outputs: MyPhone: Value: Please call 555-5555 Description: A random message for aws cloudformation describe-stacks
Section Outputs avec une seule référence de ressource et une seule pseudo-référence
Cet exemple illustre une section Outputs avec deux affectations de sortie. L'une est basée sur une ressource, et l'autre sur une pseudo-référence.
JSON
"Outputs" : { "SNSTopic" : { "Value" : { "Ref" : "MyNotificationTopic" } }, "StackName" : { "Value" : { "Ref" : "AWS::StackName" } } }
YAML
Outputs: SNSTopic: Value: !Ref MyNotificationTopic StackName: Value: !Ref AWS::StackName
Section Outputs avec une sortie basée sur une fonction, une chaîne littérale, une référence et un pseudo-paramètre
Cet exemple illustre une section Outputs avec une seule affectation de sortie. La fonction Join est utilisée pour concaténer la valeur, à l'aide d'un signe pour cent comme délimiteur.
JSON
"Outputs" : { "MyOutput" : { "Value" : { "Fn::Join" : [ "%", [ "A-string", {"Ref" : "AWS::StackName" } ] ] } } }
YAML
Outputs: MyOutput: Value: !Join [ %, [ 'A-string', !Ref 'AWS::StackName' ]]
Version de format de modèle
L’extrait suivant illustre une déclaration de section AWSTemplateFormatVersion valide.
JSON
"AWSTemplateFormatVersion" : "2010-09-09"
YAML
AWSTemplateFormatVersion: '2010-09-09'
propriété AWSTags
Cet exemple illustre une propriété AWS Tags. Vous devez spécifier cette propriété dans la section Propriétés d'une ressource. Lorsque la ressource est créée, les balises que vous déclarez lui sont ajoutées.
JSON
"Tags" : [ { "Key" : "keyname1", "Value" : "value1" }, { "Key" : "keyname2", "Value" : "value2" } ]
YAML
Tags: - Key: "keyname1" Value: "value1" - Key: "keyname2" Value: "value2"