Attribut CreationPolicy - 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.

Attribut CreationPolicy

Associez l'CreationPolicyattribut à une ressource pour éviter que son statut n'atteigne la fin de création tant que vous n'avez pas AWS CloudFormation reçu un nombre spécifié de signaux de réussite ou que le délai d'expiration n'est pas dépassé. Pour signaler une ressource, vous pouvez utiliser le script d'assistance cfn-signal ou l'API. SignalResource CloudFormation publie des signaux valides dans la pile d'événements afin que vous puissiez suivre le nombre de signaux envoyés.

La politique de création n'est invoquée que lors de CloudFormation la création de la ressource associée. À l'heure actuelle, les seules CloudFormation ressources qui prennent en charge les politiques de création sont les suivantes :

Utilisez l'attribut CreationPolicy lorsque vous voulez attendre que les actions de configuration de ressource ne soient terminées avant que la création de la pile ne commence. Par exemple, si vous installez et configurez des applications logicielles dans une instance EC2, vous souhaitez peut-être que ces applications soient exécutées avant de poursuivre. Dans ce cas, vous pouvez ajouter un attribut CreationPolicy à l'instance, puis envoyer un signal de réussite à l'instance une fois que les applications sont installées et configurées. Pour voir un exemple détaillé, veuillez consulter Déploiement d'applications sur Amazon EC2 avec AWS CloudFormation.

AppStream Politique de création 2.0

AppStream Configuration d'Amazon pour une politique de création.

Syntaxe

JSON

{ "CreationPolicy": { "StartFleet": { "Type": "Boolean" } } }

YAML

CreationPolicy: StartFleet: Type: Boolean
StartFleet

Démarre la flotte spécifiée.

Obligatoire : non

Propriétés de création Amazon EC2 Auto Scaling

Configuration d'Amazon EC2 Auto Scaling pour une politique de création.

Syntaxe

JSON

"CreationPolicy" : { "AutoScalingCreationPolicy" : { "MinSuccessfulInstancesPercent" : Integer }, "ResourceSignal" : { "Count" : Integer, "Timeout" : String } }

YAML

CreationPolicy: AutoScalingCreationPolicy: MinSuccessfulInstancesPercent: Integer ResourceSignal: Count: Integer Timeout: String

Propriétés de création Amazon EC2 Auto Scaling

Configuration d'Amazon EC2 Auto Scaling pour une politique de création.

AutoScalingCreationPolicy

Pour un nouveau groupe Amazon EC2 Auto Scaling, cette configuration spécifie le nombre d'instances qui doivent signaler une réussite avant que l'état du groupe ne devienne CREATE_COMPLETE.

MinSuccessfulInstancesPercent

Spécifie le pourcentage d'instances d'un groupe Amazon EC2 Auto Scaling qui doivent signaler une réussite avant que l'état du groupe ne devienne CREATE_COMPLETE. Vous pouvez spécifier une valeur comprise entre 0 et100. CloudFormation arrondit au dixième de pour cent le plus proche. Par exemple, si vous créez cinq instances avec un pourcentage minimum de réussite de 50, trois instances doivent signaler leur réussite. Si une instance n'envoie pas de signal dans le délai spécifié par la Timeout propriété, cela CloudFormation suppose que l'instance n'a pas été créée.

Par défaut : 100

Type : entier

Obligatoire : non

ResourceSignal

Lors CloudFormation de la création de la ressource associée, configure le nombre de signaux de réussite requis et le temps d' CloudFormation attente de ces signaux.

Count

Le nombre de signaux de réussite à CloudFormation recevoir avant que le statut de la ressource ne soit défini commeCREATE_COMPLETE. Si la ressource reçoit un signal d'échec ou ne reçoit pas le nombre de signaux spécifié avant l'expiration du délai d'expiration, la création de la ressource échoue et CloudFormation annule la pile.

Par défaut : 1

Type : entier

Obligatoire : non

Timeout

Durée d' CloudFormation attente pour le nombre de signaux spécifié dans la Count propriété. Le délai d'expiration commence après la CloudFormation stabilisation de la ressource, et le délai expire au plus tôt à l'heure que vous spécifiez, mais il peut survenir peu de temps après. La durée maximale que vous pouvez spécifier est de 12 heures.

Cette valeur doit respecter le format de durée ISO8601, sous la forme : PT#H#M#S, où chaque # correspond respectivement au nombre d'heures, de minutes et de secondes. Pour optimiser les performances, spécifiez une période qui laisse suffisamment de temps à vos instances pour être opérationnelles. Un délai d'expiration trop court peut entraîner une restauration.

Valeur par défaut : PT5M (5 minutes)

Type : chaîne

Obligatoire : non

Exemples

Groupe Auto Scaling

L'exemple suivant montre comment ajouter une politique de création à un groupe Amazon EC2 Auto Scaling. Cette politique de création nécessite trois signaux de réussite et expire au bout de 15 minutes.

Pour que les instances attendent une vérification de l'état Elastic Load Balancing avant de signaler un succès, ajoutez une vérification de l'état à l'aide du script d'assistant cfn-init. Par exemple, consultez la verify_instance_health commande figurant dans les exemples de modèles pour les mises à jour continues d'Amazon EC2 Auto Scaling dans notre GitHub référentiel.

JSON
"AutoScalingGroup": { "Type": "AWS::AutoScaling::AutoScalingGroup", "Properties": { "AvailabilityZones": { "Fn::GetAZs": "" }, "LaunchConfigurationName": { "Ref": "LaunchConfig" }, "DesiredCapacity": "3", "MinSize": "1", "MaxSize": "4" }, "CreationPolicy": { "ResourceSignal": { "Count": "3", "Timeout": "PT15M" } }, "UpdatePolicy" : { "AutoScalingScheduledAction" : { "IgnoreUnmodifiedGroupSizeProperties" : "true" }, "AutoScalingRollingUpdate" : { "MinInstancesInService" : "1", "MaxBatchSize" : "2", "PauseTime" : "PT1M", "WaitOnResourceSignals" : "true" } } }, "LaunchConfig": { "Type": "AWS::AutoScaling::LaunchConfiguration", "Properties": { "ImageId": "ami-16d18a7e", "InstanceType": "t2.micro", "UserData": { "Fn::Base64": { "Fn::Join" : [ "", [ "#!/bin/bash -xe\n", "yum install -y aws-cfn-bootstrap\n", "/opt/aws/bin/cfn-signal -e 0 --stack ", { "Ref": "AWS::StackName" }, " --resource AutoScalingGroup ", " --region ", { "Ref" : "AWS::Region" }, "\n" ] ] } } } }
YAML
AutoScalingGroup: Type: AWS::AutoScaling::AutoScalingGroup Properties: AvailabilityZones: Fn::GetAZs: '' LaunchConfigurationName: Ref: LaunchConfig DesiredCapacity: '3' MinSize: '1' MaxSize: '4' CreationPolicy: ResourceSignal: Count: '3' Timeout: PT15M UpdatePolicy: AutoScalingScheduledAction: IgnoreUnmodifiedGroupSizeProperties: 'true' AutoScalingRollingUpdate: MinInstancesInService: '1' MaxBatchSize: '2' PauseTime: PT1M WaitOnResourceSignals: 'true' LaunchConfig: Type: AWS::AutoScaling::LaunchConfiguration Properties: ImageId: ami-16d18a7e InstanceType: t2.micro UserData: "Fn::Base64": !Sub | #!/bin/bash -xe yum update -y aws-cfn-bootstrap /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource AutoScalingGroup --region ${AWS::Region}

WaitCondition

L'exemple suivant montre comment ajouter une politique de création à une condition d'attente.

JSON
"WaitCondition" : { "Type" : "AWS::CloudFormation::WaitCondition", "CreationPolicy" : { "ResourceSignal" : { "Timeout" : "PT15M", "Count" : "5" } } }
YAML
WaitCondition: Type: AWS::CloudFormation::WaitCondition CreationPolicy: ResourceSignal: Timeout: PT15M Count: 5