2017-01-11 8 views
8

Я пытаюсь указать булеву параметр в шаблоне CloudFormation, так что я могу условно создать ресурсы на основе параметра, переданного вAWS: Как указать булеву параметр в шаблоне CloudFormation

Глядя на документацию here. и here, казалось бы, существует заметный недостаток булевского типа данных.

Что такое наилучшая практика для указания булева? возможно Number с 0 или 1 или String с AllowedValues 'true' и 'false'?

+0

Почему бы не использовать пары ключей вместо этого? Каков ваш прецедент? –

+0

Как работает ключ-пара? Вариант использования указан в вопросе - условное создание ресурсов в шаблоне на основе входного параметра. –

ответ

11

The Quick Start шаблонов является хорошей, полуофициальной точкой отсчета, как сложными шаблоны/должно быть созданы, и они реализуют логические значения для условных ресурсов точно так, как вы описали, используя String с AllowedValuestrue и 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 ключ к ресурсу.

Вот полный, минимальный пример шаблона:

Launch Stack

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 

 Смежные вопросы

  • Нет связанных вопросов^_^