Atributo CreationPolicy
Associe o atributo CreationPolicy
a um recurso para impedir que seu status chegue à criação concluída até que o AWS CloudFormation receba um número especificado de sinais de sucesso ou o tempo limite tenha expirado. Para sinalizar um recurso, você pode usar o script de ajuda cfn-signal ou a API SignalResource
. O CloudFormation publica sinais válidos para os eventos de pilha para que você rastreie o número de sinais enviados.
A política de criação é invocada somente quando o CloudFormation cria o recurso associado. No momento, os únicos recursos do CloudFormation que oferecem suporte às políticas de criação são:
Use o atributo CreationPolicy
quando você desejar trabalhar nas ações de configuração de recurso antes da criação da pilha prosseguir. Por exemplo, se você instalar e configurar aplicações de software em uma instância do EC2, você pode querer que essas aplicações sejam executadas antes de prosseguir. Em tais casos, você pode adicionar um atributo CreationPolicy
à instância e, em seguida, enviar um sinal de sucesso para a instância depois que as aplicações estiverem instaladas e configuradas. Para obter um exemplo detalhado, consulte Implantar aplicações no Amazon EC2.
Política de criação do AppStream 2.0
Configuração do Amazon AppStream para uma política de criação.
Sintaxe
JSON
{ "CreationPolicy": { "StartFleet": { "Type": "
Boolean
" } } }
YAML
CreationPolicy: StartFleet: Type:
Boolean
StartFleet
-
Inicia a frota especificada.
Obrigatório: não
Propriedades de criação do Amazon EC2 Auto Scaling
Configuração do Amazon EC2 Auto Scaling para uma política de criação.
Sintaxe
JSON
"CreationPolicy" : { "AutoScalingCreationPolicy" : { "MinSuccessfulInstancesPercent" :
Integer
}, "ResourceSignal" : { "Count" :Integer
, "Timeout" :String
} }
YAML
CreationPolicy: AutoScalingCreationPolicy: MinSuccessfulInstancesPercent:
Integer
ResourceSignal: Count:Integer
Timeout:String
Propriedades de criação do Amazon EC2 Auto Scaling
Configuração do Amazon EC2 Auto Scaling para uma política de criação.
AutoScalingCreationPolicy
-
Para um novo grupo do Amazon EC2 Auto Scaling, especifica o número de instâncias que devem sinalizar sucesso antes que o status do grupo seja definido como
CREATE_COMPLETE
.MinSuccessfulInstancesPercent
-
Especifica a porcentagem de instâncias em um Amazon EC2 Auto Scaling que devem indicar sucesso antes que o status do grupo seja definido como
CREATE_COMPLETE
. É possível especificar um valor de0
a100
. O CloudFormation arredonda para o décimo mais próximo de um percentual. Por exemplo, se você criar cinco instâncias com uma porcentagem mínima de sucesso de50
, três instâncias deverão indicar sucesso. Se uma instância não enviar um sinal no tempo especificado pela propriedadeTimeout
, o CloudFormation entenderá que a instância não foi criada.Padrão:
100
Tipo: inteiro
Obrigatório: não
ResourceSignal
-
Quando o CloudFormation cria o recurso associado, configura o número de sinais de êxito necessários e o tempo em que o CloudFormation aguarda por esses sinais.
Count
-
O número de sinais de sucesso que o CloudFormation deve receber antes que ele defina o status do recurso como
CREATE_COMPLETE
. Se o recurso recebe um sinal de falha ou não recebe o número especificado de sinais antes do tempo de espera expirar, a criação de recursos falha e o CloudFormation reverte a pilha.Padrão:
1
Tipo: inteiro
Obrigatório: não
Timeout
-
O período que o CloudFormation aguarda pelo número de sinais especificado na propriedade
Count
. O período de tempo limite começa depois que o CloudFormation estabiliza o recurso e não expira até a hora especificada, mas pode ocorrer logo depois. O tempo máximo que você pode especificar é 12 horas.O valor deve ser no formato de duração ISO8601
, na forma: PT
onde cada#
H#
M#
S#
é o número de horas, minutos e segundos, respectivamente. Para obter os melhores resultados, especifique um período que oferece a suas instâncias bastante tempo para inicialização e execução. Um tempo de espera mais curto pode causar uma reversão.Padrão:
PT5M
(5 minutos)Tipo: string
Obrigatório: não
Exemplos
Auto Scaling group (Grupo do Auto Scaling)
O exemplo a seguir mostra como adicionar uma política de criação a um grupo do Amazon EC2 Auto Scaling. A política de criação requer três sinais de sucesso e expira depois de 15 minutos.
Para que as instâncias esperem por uma verificação de integridade do Elastic Load Balancing antes de sinalizar sucesso, adicione uma verificação de integridade usando o script de ajuda cfn-init. Para obter um exemplo, consulte o comando verify_instance_health
nos modelos de amostras para atualizações cumulativas do Amazon EC2 Auto Scaling em nosso repositório do GitHub
JSON
"AutoScalingGroup": { "Type": "AWS::AutoScaling::AutoScalingGroup", "Properties": { "VPCZoneIdentifier":[ "
subnetIdAz1
", "subnetIdAz2
", "subnetIdAz3
" ], "LaunchTemplate":{ "LaunchTemplateId":{ "Ref":"logicalName
" }, "Version":{ "Fn::GetAtt":[ "logicalName
", "LatestVersionNumber" ] } }, "MinSize": "1", "MaxSize": "4" }, "CreationPolicy": { "ResourceSignal": { "Count": "3", "Timeout": "PT15M" } } }
YAML
AutoScalingGroup: Type: AWS::AutoScaling::AutoScalingGroup Properties: VPCZoneIdentifier: -
subnetIdAz1
-subnetIdAz2
-subnetIdAz3
LaunchTemplate: LaunchTemplateId: !ReflogicalName
Version: !GetAttlogicalName
.LatestVersionNumber MinSize: '1' MaxSize: '4' CreationPolicy: ResourceSignal: Count: '3' Timeout: PT15M
WaitCondition
O seguinte exemplo mostra como adicionar uma política de criação a uma condição de espera.
JSON
"WaitCondition" : { "Type" : "AWS::CloudFormation::WaitCondition", "CreationPolicy" : { "ResourceSignal" : { "Timeout" : "PT15M", "Count" : "5" } } }
YAML
WaitCondition: Type: AWS::CloudFormation::WaitCondition CreationPolicy: ResourceSignal: Timeout: PT15M Count: 5