2017-01-11 10 views
8

मैं तो मैं सशर्त एक पैरामीटर में पारित के आधार पर संसाधनों बना सकते हैं एक CloudFormation टेम्पलेट में एक बूलियन पैरामीटर निर्दिष्ट करने के लिए कोशिश कर रहा हूँएडब्ल्यूएस:। एक CloudFormation टेम्पलेट

प्रलेखन here को देखते हुए में एक बूलियन पैरामीटर निर्दिष्ट करने के लिए कैसे और here ऐसा लगता है कि एक बुलियन डेटा प्रकार की एक स्पष्ट कमी है।

बुलियन निर्दिष्ट करने के लिए सबसे अच्छा अभ्यास क्या है? संभवतः Number 0 या 1 या StringAllowedValues 'सत्य' और 'झूठी' के साथ?

+0

क्यों बजाय एक प्रमुख-जोड़ी का उपयोग नहीं? आपका उपयोग केस क्या है? –

+0

कुंजी-जोड़ी कैसे काम करती है? उपयोग केस प्रश्न में निर्दिष्ट है - इनपुट पैरामीटर के आधार पर टेम्पलेट में सशर्त रूप से संसाधन बनाना। –

उत्तर

11

Quick Start टेम्पलेट्स कैसे जटिल टेम्पलेट्स/निर्मित किया जाना चाहिए कर सकते हैं का एक अच्छा, अर्द्ध सरकारी संदर्भ बिंदु हैं, और वे बिल्कुल के रूप में आप वर्णित AllowedValuestrue और false के साथ एक String का उपयोग कर, सशर्त संसाधनों के लिए बूलियन मान को लागू। यहाँ एक विशिष्ट 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" 
} 

ऐसा ही एक उदाहरण CloudFormation प्रलेखन, जहां AllowedValuesdefault या NONE (डिफ़ॉल्ट) कर रहे हैं से Conditionally use an existing resource उदाहरण में पाया जा सकता।

सशर्त इस तरह के एक बूलियन पैरामीटर के आधार पर एक संसाधन बनाने के लिए, आप एक Fn::Equals आंतरिक true मिलान समारोह युक्त एक Condition बयान जोड़ें, फिर संसाधन के लिए एक 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 
संबंधित मुद्दे