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 do Amazon EC2, 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. Use o script auxiliar cfn-signal para sinalizar quando um processo de criação de instância foi concluído com sucesso.
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 exemplo a seguir mostra como adicionar uma política de criação de uma condição de espera para recursos do CloudFormation além do Amazon EC2.
Para sinalizar o recurso WaitCondition
, use a API SignalResource. Essa API foi criada para funcionar com os recursos do WaitCondition
que você configura usando uma CreationPolicy
.
JSON
"WaitCondition" : { "Type" : "AWS::CloudFormation::WaitCondition", "CreationPolicy" : { "ResourceSignal" : { "Timeout" : "PT15M", "Count" : "5" } } }
YAML
WaitCondition: Type: AWS::CloudFormation::WaitCondition CreationPolicy: ResourceSignal: Timeout: PT15M Count: 5