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 présentent différentes fonctionnalités du CloudFormation modèle qui ne sont pas spécifiques à un AWS service.
Rubriques
- Base64UserDatapropriété codée
- Base64UserDatapropriété codée avec AccessKey et SecretKey
- Parameterssection avec un paramètre de chaîne littéral
- Parameterssection avec paramètre de chaîne avec contrainte d'expression régulière
- Parameterssection avec paramètre numérique avec MinValue et MaxValue contraintes
- Parameterssection avec paramètre numérique avec AllowedValues contrainte
- Parameterssection avec un paramètre littéral CommaDelimitedList
- Parameterssection avec valeur de paramètre basée sur un pseudo-paramètre
- Mappingsection avec trois mappages
- Descriptionbasé sur une chaîne littérale
- Outputssection avec une sortie de chaîne littérale
- Outputssection avec une référence de ressource et une sortie de pseudo-référence
- Outputssection avec une sortie basée sur une fonction, une chaîne littérale, une référence et un pseudo paramètre
- Version de format de modèle
- propriétéAWSTags
Base64UserDatapropriété codée
Cet exemple montre l'assemblage d'une UserData
propriété à l'aide des Fn::Join
fonctions Fn::Base64
et. Les références MyValue
et MyName
sont des paramètres qui doivent être définis dans la Parameters
section 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
Base64UserDatapropriété codée avec AccessKey et SecretKey
Cet exemple montre l'assemblage d'une UserData
propriété à l'aide des Fn::Join
fonctions Fn::Base64
et. 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}
Parameterssection avec un paramètre de chaîne littéral
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
Parameterssection avec paramètre de chaîne avec 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 AdminUserAccount
valeur par défaut du paramètre est deadmin
. 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]*'
Parameterssection avec paramètre numérique avec MinValue et MaxValue contraintes
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 WebServerPort
paramètre a une valeur par défaut de 80 et une valeur minimale de 1 et une valeur maximale de 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
Parameterssection avec paramètre numérique avec AllowedValues contrainte
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 WebServerPort
paramètre a une valeur par défaut de 80 et n'autorise que les valeurs 80 et 8888.
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
Parameterssection avec un paramètre littéral CommaDelimitedList
L'exemple suivant illustre une déclaration de Parameters
section valide dans laquelle un seul paramètre CommaDelimitedList
de type est déclaré. La NoEcho
propriété est définie surTRUE
, ce qui masquera sa valeur par des astérisques (*****) dans la describe-stacks sortie, à 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 des
Metadata
modèles. CloudFormation ne transforme, ne modifie ni n'expurge aucune information que vous incluez dansMetadata
cette section. Pour plus d’informations, consultez CloudFormation modèle Metadata syntaxe. -
La section de modèle
Outputs
Pour plus d’informations, consultez CloudFormation modèle Outputs syntaxe. -
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.
JSON
"Parameters" : { "UserRoles" : { "Type" : "CommaDelimitedList", "Default" : "guest,newhire", "NoEcho" : "TRUE" } }
YAML
Parameters: UserRoles: Type: CommaDelimitedList Default: "guest,newhire" NoEcho: true
Parameterssection avec valeur de paramètre basée sur un pseudo-paramètre
L'exemple suivant montre les commandes des données EC2 utilisateur qui utilisent les pseudo-paramètres AWS::StackName
etAWS::Region
. Pour plus d'informations sur les pseudo-paramètres, consultez Référence des 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}
Mappingsection avec trois mappages
L'exemple suivant illustre une déclaration de Mapping
section valide contenant trois mappages. La carte, lorsqu'elle est associée à une clé de mappage de Stop
SlowDown
Go
, ou, fournit les RGB valeurs attribuées à l'RGBColor
attribut 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"
Descriptionbasé sur une chaîne littérale
L'exemple suivant illustre une déclaration de Description
section valide dont 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
"
Outputssection avec une 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
Outputssection avec une référence de ressource et une sortie de pseudo-référence
Cet exemple montre une Outputs
section 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
Outputssection 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 décrit une déclaration de AWSTemplateFormatVersion
section valide.
JSON
"AWSTemplateFormatVersion" : "2010-09-09"
YAML
AWSTemplateFormatVersion: '2010-09-09'
propriétéAWSTags
Cet exemple montre une AWS Tags
propriété. 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"