AWS CloudFormation में सशर्त गुण


10

हमें कुछ EC2 इंस्टेंस बनाने के लिए AWS CloudFormation टेम्प्लेट मिला है। हालांकि उनमें से कुछ को एक विशिष्ट की आवश्यकता होती है PrivateIpAddressऔर मैं यह पता लगाने के लिए संघर्ष कर रहा हूं कि इसे टेम्पलेट में कैसे शामिल किया जाए।

अभी के लिए मुझे एक टेम्प्लेट पैरामीटर मिला है PrivateIPऔर एक कंडीशन बनानी है RequestedPrivateIP। अब तक सब ठीक है। हालाँकि मैं यह पता नहीं लगा सकता कि इसे AWS::EC2::Instanceसंसाधन विनिर्देश में कैसे शामिल किया जाए । मैंने यह कोशिश की:

    "PrivateIpAddress": {
        "Fn::If": [ "RequestedPrivateIP",
            { "Ref": "PrivateIP" },
            ""                            <-- This doesn't work
        ]
    },

लेकिन वह तब विफल हो जाता है जब RequestedPrivateIPउसके साथ गलत होता है

CREATE_FAILED    AWS::EC2::Instance    NodeInstance    Invalid addresses: []

किसी भी विचार को वैकल्पिक रूप से एक स्थिर निजी आईपी कैसे निर्दिष्ट किया जाए और यदि यह निर्दिष्ट न किया जाए कि डायनामिक सेट करने के लिए इसे एडब्ल्यूएस पर कैसे छोड़ा जाए?

जवाबों:



0

चूंकि ऐसा लगता है जैसे PrivateIpAddressसंपत्ति एक रिक्त स्ट्रिंग का समर्थन नहीं करती है क्योंकि यह मूल्य है, मैं आपके दो अलग संसाधन बनाने का सुझाव दूंगा AWS::EC2::Instance। उनमें से एक में आपकी स्थिति होगी, RequestedPrivateIPजबकि दूसरे की स्थिति एक ही होनी चाहिए लेकिन नकारात्मक, उदा DidNotRequestPrivateIP

"InstanceWithPrivateIp": {
    "Type": "AWS::EC2::Instance",
    "Condition": "RequestedPrivateIP",
    "Properties": {
        [...]
    }
},

"InstanceWithoutPrivateIp": {
    "Type": "AWS::EC2::Instance",
    "Condition": "DidNotRequestPrivateIP",
    "Properties": {
        [...]
    }
}

1
यह वास्तव में एक विकल्प है, लेकिन DRY (अपने आप को दोहराएं नहीं) सिद्धांत को गंभीर रूप से तोड़ता है जो मैं करने के लिए उत्सुक नहीं हूं। इसके अलावा - अक्सर अन्य गुण होते हैं जो सेट हो सकते हैं या नहीं हो सकते हैं, उदाहरण के लिए कि क्या एसएसएल प्रमाणपत्र सेट किया गया है या नहीं, इसके आधार पर ईएलटी HTTPS पर सुनता है या नहीं। थोड़े से बदलाव के साथ सभी घोषणाओं को दोहराते हुए इन सभी छोटी-छोटी विविधताओं को पकड़ने की कोशिश करने से जल्दी से बड़े पैमाने पर अप्राप्य टेम्पलेट को बढ़ावा मिलेगा। लेकिन फिर भी सुझाव के लिए धन्यवाद।
MLU

1
मैं पूरी तरह से आपसे सहमत हूं @MLu, दोहराना कभी मजेदार नहीं होता है। हालांकि, CloudFormation के साथ मेरे अनुभव से आप कभी-कभी खुद को दोहराने के लिए मजबूर हो जाते हैं। मेरे द्वारा देखा गया दूसरा समाधान इसके बजाय विकल्प बनाने के लिए है कि आप उन शर्तों के साथ शामिल हैं जिनके बारे में मैंने ऊपर उल्लेख किया है और फिर उन विकल्पों में आप उस स्थिति के लिए विशिष्ट है जो सामान करते हैं।
बजाज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.