2017-01-11 33 views
8

Próbuję określić logiczną parametru w szablonie CloudFormation więc mogę warunkowo tworzenia zasobów w oparciu o parametr przekazany wAWS: Jak określić logiczną parametru w szablonie CloudFormation

Patrząc na dokumentacji here. i here wydaje się, że istnieje dostrzegalny brak boolowskiego typu danych.

Co to jest najlepsza praktyka do określania wartości logicznej? prawdopodobnie Number z 0 lub 1 lub String z AllowedValues "prawda" i "fałsz"?

+0

Dlaczego nie używać kluczy parę zamiast? Jaki jest twój przypadek użycia? –

+0

Jak działają pary kluczy? Przypadek użycia jest taki, jak określono w pytaniu - warunkowe tworzenie zasobów w szablonie na podstawie parametru wejściowego. –

Odpowiedz

11

The Quick Start szablony są dobre, pół-oficjalny punkt odniesienia, jak skomplikowane szablony mogą/powinny być tworzone, a ich wdrożenie wartości logiczne dla zasobów warunkowych dokładnie tak, jak to opisano, stosując String z AllowedValuestrue i false. Oto konkretne 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" 
} 

Podobny przykład można znaleźć w przykładzie z dokumentacji CloudFormation, gdzie AllowedValuesdefault lub NONE (domyślnie) Conditionally use an existing resource.

warunkowo utworzyć zasób w oparciu o taką logiczną parametru dodasz Condition oświadczenia zawierającego Fn::Equals wewnętrzną funkcję dopasowania true, a następnie dodać Condition klucz do zasobu.

Oto kompletna, minimalny przykład szablon:

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