amazon web services - management - AWS: cómo especificar un parámetro booleano en una plantilla de CloudFormation
cloudformation tutorial (1)
Estoy tratando de especificar un parámetro booleano en una plantilla de CloudFormation para poder crear condicionalmente recursos basados en un parámetro pasado.
Mirando la documentación here y here parece que hay una falta perceptible de un tipo de datos booleano.
¿Cuál es la mejor práctica para especificar un booleano? posiblemente un Number
con 0 o 1 o una String
con el AllowedValues
los AllowedValues
''true'' y ''false''?
Las plantillas de inicio rápido son un buen punto de referencia semioficial de cómo se pueden / deberían crear las plantillas complejas, e implementan valores booleanos para los recursos condicionales exactamente como lo describió, usando una String
con el valor de AllowedValues
true
y false
. Aquí hay un example específico:
"EnableBanner": {
"AllowedValues": [
"true",
"false"
],
"Default": "false",
"Description": "To include a banner to be displayed when connecting via SSH to the bastion, set this parameter to true",
"Type": "String"
}
Se puede encontrar un ejemplo similar en el Ejemplo de uso condicional de un recurso existente de la documentación de CloudFormation, donde los AllowedValues
son default
o NONE
(el predeterminado).
Para crear condicionalmente un recurso basado en un parámetro booleano, agregue una declaración de Condition que contenga una función intrínseca Fn::Equals
que coincida con true
, luego agregue una clave de Condition
al recurso.
Aquí hay una plantilla de ejemplo completa y mínima:
Parameters:
CreateResource:
Description: Whether I should create a resource.
Default: false
Type: String
AllowedValues: [true, false]
Conditions:
ShouldCreateResource:
!Equals [true, !Ref CreateResource]
Resources:
Resource:
Type: AWS::CloudFormation::WaitConditionHandle
Condition: ShouldCreateResource