Atributo CreationPolicy
Asocie el atributo CreationPolicy
con un recurso para impedir que alcance el estado de creación completada hasta que AWS CloudFormation reciba un número específico de señales o se supere el período de tiempo de espera. Para señalar un recurso, puede utilizar el script auxiliar cfn-signal o la API SignalResource
. CloudFormation publica señales válidas a los eventos de la pila para poder realizar un seguimiento del número de señales enviadas.
La política de creación se invoca solo cuando CloudFormation crea el recurso asociado. En la actualidad, los únicos recursos de CloudFormation compatibles con las políticas de creación son:
Utilice el atributo CreationPolicy
cuando desee esperar acciones de configuración de recursos antes de que la creación de la pila avance. Por ejemplo, si instala y configura aplicaciones de software en una instancia de EC2, es posible que desee que se ejecuten esas aplicaciones antes de continuar. En estos casos, puede agregar un atributo CreationPolicy
a la instancia y, a continuación, enviar una señal de éxito a la instancia una vez que las aplicaciones estén instaladas y configuradas. Para un ejemplo detallado, consulte Implementación de aplicaciones en Amazon EC2.
Política de creación de AppStream 2.0
Configuración de Amazon AppStream para una política de creación.
Sintaxis
JSON
{ "CreationPolicy": { "StartFleet": { "Type": "
Boolean
" } } }
YAML
CreationPolicy: StartFleet: Type:
Boolean
StartFleet
-
Inicia la flota especificada.
Obligatorio: no
Propiedades de creación de Amazon EC2 Auto Scaling
Configuración de Amazon EC2 Auto Scaling para una política de creación.
Sintaxis
JSON
"CreationPolicy" : { "AutoScalingCreationPolicy" : { "MinSuccessfulInstancesPercent" :
Integer
}, "ResourceSignal" : { "Count" :Integer
, "Timeout" :String
} }
YAML
CreationPolicy: AutoScalingCreationPolicy: MinSuccessfulInstancesPercent:
Integer
ResourceSignal: Count:Integer
Timeout:String
Propiedades de creación de Amazon EC2 Auto Scaling
Configuración de Amazon EC2 Auto Scaling para una política de creación.
AutoScalingCreationPolicy
-
Para un nuevo grupo de Amazon EC2 Auto Scaling, especifica el número de instancias que deben indicar que la operación se realizó correctamente antes de establecer el estado del grupo en
CREATE_COMPLETE
.MinSuccessfulInstancesPercent
-
Especifica el porcentaje de instancias en Amazon EC2 Auto Scaling que debe indicar éxito antes de establecer el estado del grupo en
CREATE_COMPLETE
. Puede especificar un valor de0
a100
. CloudFormation redondea a la décima de porcentaje más próxima. Por ejemplo, si crea cinco instancias con un porcentaje de éxito mínimo de50
, tres instancias deben enviar una señal de éxito. Si una instancia no envía una señal en el tiempo que ha especificado la propiedadTimeout
, CloudFormation supone que la instancia no se ha creado.Valor predeterminado:
100
Tipo: entero
Obligatorio: no
ResourceSignal
-
Cuando CloudFormation crea el recurso asociado, configura el número de señales de éxito necesarias y el tiempo durante el cual CloudFormation espera dichas señales.
Count
-
El número de señales de éxito que CloudFormation debe recibir antes de establecer el estado de los recursos como
CREATE_COMPLETE
. Si el recurso recibe una señal de error o no recibe el número especificado de señales antes de que venza el periodo de tiempo de espera, se produce el error de creación del recurso y CloudFormation restaura la pila al estado anterior.Valor predeterminado:
1
Tipo: entero
Obligatorio: no
Timeout
-
El tiempo que CloudFormation espera el número de señales que se ha especificado en la propiedad
Count
. El período de tiempo de espera comienza después de que CloudFormation estabiliza el recurso y expira con posterioridad al momento que especifique, lo que puede ocurrir poco después. El tiempo máximo que puede especificar es de 12 horas.El valor debe estar en el formato de duración ISO8601
, en el formato PT
, donde cada#
H#
M#
S#
corresponde al número de horas, minutos y segundos, respectivamente. Para obtener los mejores resultados, especifique un periodo de tiempo que proporcione a sus instancias suficiente tiempo para estar operativas. Un tiempo de espera más corto puede causar una restauración.Valor predeterminado:
PT5M
(5 minutos)Tipo: cadena
Obligatorio: no
Ejemplos
Grupo de escalado automático
En el siguiente ejemplo se muestra cómo agregar una política de creación a un grupo de Amazon EC2 Auto Scaling. La política de creación requiere tres señales de éxito y agota el tiempo de espera después de 15 minutos.
Para que las instancias esperen una comprobación de estado de Elastic Load Balancing para que envíen una señal de éxito, añada una verificación de comprobación de estado mediante el script auxiliar cfn-init. Para ver un ejemplo, consulte el comando verify_instance_health
en las plantillas de ejemplo para las actualizaciones acumulativas de Amazon EC2 Auto Scaling en nuestro repositorio de 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
El siguiente ejemplo muestra cómo añadir una política de creación a una condición 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