The Quick Start шаблонов является хорошей, полуофициальной точкой отсчета, как сложными шаблоны/должно быть созданы, и они реализуют логические значения для условных ресурсов точно так, как вы описали, используя String
с AllowedValues
true
и false
. Вот конкретный example:
"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"
}
Аналогичный пример можно найти в Conditionally use an existing resource пример из документации CloudFormation, где AllowedValues
являются default
или NONE
(по умолчанию).
Чтобы условно создать ресурс, основанный на такой логический параметр, можно добавить Condition заявление, содержащее Fn::Equals
внутреннюю функцию, соответствующую true
, затем добавьте Condition
ключ к ресурсу.
Вот полный, минимальный пример шаблона:
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
Почему бы не использовать пары ключей вместо этого? Каков ваш прецедент? –
Как работает ключ-пара? Вариант использования указан в вопросе - условное создание ресурсов в шаблоне на основе входного параметра. –