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.
CloudFormation extraits de modèles
Rubriques
Piles imbriquées
Imbrication d’une pile dans un modèle
Cet exemple de modèle contient une ressource de pile imbriquée appelée myStack. Lorsqu'il CloudFormation crée une pile à partir du modèle, il crée lemyStack, dont le modèle est spécifié dans la TemplateURL propriété. La valeur de sortie StackRef renvoie l’ID de pile pour myStack et la valeur OutputFromNestedStack renvoie la valeur de sortie BucketName à partir de la ressource myStack. Le format Outputs. est réservé pour spécifier les valeurs de sortie des piles imbriquées et peut être utilisé n’importe où dans le modèle.nestedstackoutputname
Pour de plus amples informations, veuillez consulter AWS::CloudFormation::Stack.
JSON
{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "myStack" : { "Type" : "AWS::CloudFormation::Stack", "Properties" : { "TemplateURL" : "https://s3.amazonaws.com/cloudformation-templates-us-east-1/S3_Bucket.template", "TimeoutInMinutes" : "60" } } }, "Outputs": { "StackRef": {"Value": { "Ref" : "myStack"}}, "OutputFromNestedStack" : { "Value" : { "Fn::GetAtt" : [ "myStack", "Outputs.BucketName" ] } } } }
YAML
AWSTemplateFormatVersion: '2010-09-09' Resources: myStack: Type: AWS::CloudFormation::Stack Properties: TemplateURL: https://s3.amazonaws.com/cloudformation-templates-us-east-1/S3_Bucket.template TimeoutInMinutes: '60' Outputs: StackRef: Value: !Ref myStack OutputFromNestedStack: Value: !GetAtt myStack.Outputs.BucketName
Imbrication d’une pile avec des paramètres d’entrée dans un modèle
Cet exemple de modèle contient une ressource de pile qui spécifie les paramètres d’entrée. Lors de la CloudFormation création d'une pile à partir de ce modèle, il utilise les paires de valeurs déclarées dans la Parameters propriété comme paramètres d'entrée pour le modèle utilisé pour créer la myStackWithParams pile. Dans cet exemple, les paramètres InstanceType et KeyName sont spécifiés.
Pour de plus amples informations, veuillez consulter AWS::CloudFormation::Stack.
JSON
{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "myStackWithParams" : { "Type" : "AWS::CloudFormation::Stack", "Properties" : { "TemplateURL" : "https://s3.amazonaws.com/cloudformation-templates-us-east-1/EC2ChooseAMI.template", "Parameters" : { "InstanceType" : "t2.micro", "KeyName" : "mykey" } } } } }
YAML
AWSTemplateFormatVersion: '2010-09-09' Resources: myStackWithParams: Type: AWS::CloudFormation::Stack Properties: TemplateURL: https://s3.amazonaws.com/cloudformation-templates-us-east-1/EC2ChooseAMI.template Parameters: InstanceType: t2.micro KeyName: mykey
Condition d'attente
Utilisation d'une condition d'attente avec une instance Amazon EC2
Important
Pour les ressources Amazon EC2 et Auto Scaling, nous vous recommandons d'utiliser un CreationPolicy attribut plutôt que des conditions d'attente. Ajoutez un CreationPolicy attribut à ces ressources et utilisez le script d'assistance cfn-signal pour signaler qu'un processus de création d'instance s'est terminé avec succès.
Si vous ne pouvez pas utiliser une politique de création, affichez l'exemple de modèle suivant, qui déclare une instance Amazon EC2 avec une condition d'attente. La condition d’attente myWaitCondition utilise myWaitConditionHandle pour la signalisation, utilise l’attribut DependsOn pour spécifier que la condition d’attente se déclenchera après la création de la ressource d’instance Amazon EC2, et utilise la propriété Timeout pour spécifier une durée de 4 500 secondes pour la condition d’attente. De plus, l’URL pré-signée qui signale la condition d’attente est transmise à l’instance Amazon EC2 avec la propriété UserData de la ressource Ec2Instance, permettant ainsi à une application ou à un script s’exécutant sur cette instance Amazon EC2 de récupérer l’URL pré-signée et de l’utiliser pour signaler la réussite ou l’échec de la condition d’attente. Vous devez utiliser cfn-signal ou créer l’application ou le script qui signale la condition d’attente. La valeur de sortie ApplicationData contient les données renvoyées par le signal de condition d’attente.
Pour de plus amples informations, veuillez consulter Création de conditions d'attente dans un CloudFormation modèle.
JSON
{ "AWSTemplateFormatVersion" : "2010-09-09", "Mappings" : { "RegionMap" : { "us-east-1" : { "AMI" : "ami-0123456789abcdef0" }, "us-west-1" : { "AMI" : "ami-0987654321fedcba0" }, "eu-west-1" : { "AMI" : "ami-0abcdef123456789a" }, "ap-northeast-1" : { "AMI" : "ami-0fedcba987654321b" }, "ap-southeast-1" : { "AMI" : "ami-0c1d2e3f4a5b6c7d8" } } }, "Resources" : { "Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "UserData" : { "Fn::Base64" : {"Ref" : "myWaitHandle"}}, "ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "AMI" ]} } }, "myWaitHandle" : { "Type" : "AWS::CloudFormation::WaitConditionHandle", "Properties" : { } }, "myWaitCondition" : { "Type" : "AWS::CloudFormation::WaitCondition", "DependsOn" : "Ec2Instance", "Properties" : { "Handle" : { "Ref" : "myWaitHandle" }, "Timeout" : "4500" } } }, "Outputs" : { "ApplicationData" : { "Value" : { "Fn::GetAtt" : [ "myWaitCondition", "Data" ]}, "Description" : "The data passed back as part of signalling the WaitCondition." } } }
YAML
AWSTemplateFormatVersion: '2010-09-09' Mappings: RegionMap: us-east-1: AMI: ami-0123456789abcdef0 us-west-1: AMI: ami-0987654321fedcba0 eu-west-1: AMI: ami-0abcdef123456789a ap-northeast-1: AMI: ami-0fedcba987654321b ap-southeast-1: AMI: ami-0c1d2e3f4a5b6c7d8 Resources: Ec2Instance: Type: AWS::EC2::Instance Properties: UserData: Fn::Base64: !Ref myWaitHandle ImageId: Fn::FindInMap: - RegionMap - Ref: AWS::Region - AMI myWaitHandle: Type: AWS::CloudFormation::WaitConditionHandle Properties: {} myWaitCondition: Type: AWS::CloudFormation::WaitCondition DependsOn: Ec2Instance Properties: Handle: !Ref myWaitHandle Timeout: '4500' Outputs: ApplicationData: Value: !GetAtt myWaitCondition.Data Description: The data passed back as part of signalling the WaitCondition.
Utilisation du script d'assistant cfn-signal pour envoyer des signaux à une condition d'attente
Cet exemple montre une ligne de commande cfn-signal qui signale la réussite d’une condition d’attente. Vous devez définir la ligne de commande dans la propriété UserData de l'instance EC2.
JSON
"UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "#!/bin/bash -xe\n", "/opt/aws/bin/cfn-signal --exit-code 0 '", { "Ref": "myWaitHandle" }, "'\n" ] ] } }
YAML
UserData: 'Fn::Base64': 'Fn::Join': - '' - - | #!/bin/bash -xe - /opt/aws/bin/cfn-signal --exit-code 0 ' - Ref: myWaitHandle - | '
Utilisation de Curl pour envoyer des signaux à une condition d'attente
Cet exemple présente une ligne de commande Curl qui envoie un signal de réussite à une condition d'attente.
curl -T /tmp/a "https://cloudformation-waitcondition-test.s3.amazonaws.com/arn%3Aaws%3Acloudformation%3Aus-east-1%3A034017226601%3Astack%2Fstack-gosar-20110427004224-test-stack-with-WaitCondition--VEYW%2Fe498ce60-70a1-11e0-81a7-5081d0136786%2FmyWaitConditionHandle?Expires=1303976584&AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Signature=ik1twT6hpS4cgNAw7wyOoRejVoo%3D"
Où le fichier/tmp/a contient la structure JSON suivante :
{ "Status" : "SUCCESS", "Reason" : "Configuration Complete", "UniqueId" : "ID1234", "Data" : "Application has completed configuration." }
Cet exemple montre une ligne de commande Curl qui envoie le même signal de réussite, sauf qu'il envoie le code JSON comme paramètre dans la ligne de commande.
curl -X PUT -H 'Content-Type:' --data-binary '{"Status" : "SUCCESS","Reason" : "Configuration Complete","UniqueId" : "ID1234","Data" : "Application has completed configuration."}' "https://cloudformation-waitcondition-test.s3.amazonaws.com/arn%3Aaws%3Acloudformation%3Aus-east-1%3A034017226601%3Astack%2Fstack-gosar-20110427004224-test-stack-with-WaitCondition--VEYW%2Fe498ce60-70a1-11e0-81a7-5081d0136786%2FmyWaitConditionHandle?Expires=1303976584&AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Signature=ik1twT6hpS4cgNAw7wyOoRejVoo%3D"