मेरे पास जीथब पर होस्ट किए गए कुछ संसाधनों के साथ एडब्ल्यूएस एसएएम टेम्पलेट फ़ाइल है, रेपो में परिवर्तनों का पता लगाने के लिए एक कोडपाइपलाइन स्थापित की गई है, फिर क्लाउडफॉर्मेशन स्टैक पर परिवर्तन बनाएं/अपडेट करें और निष्पादित करें। सब कुछ ठीक काम कर रहा है। लेकिन अब मुझे एक ही टेम्पलेट में स्टेज और प्रोड वातावरण को कॉन्फ़िगर करने की आवश्यकता है। मुझे यह मुश्किल हो रहा है कि इसे ठीक से कैसे किया जाए।

विभिन्न दृष्टिकोणों का भी स्वागत है।

4
kzrfaisal 27 मार्च 2020, 18:37
इन्हें एक ही टेम्पलेट में परिभाषित करना अच्छा अभ्यास नहीं लगता - क्या ऐसा कोई कारण है कि आपको ऐसा करने की आवश्यकता महसूस होती है? (आप आमतौर पर इसके लिए पैरामीटर जोड़ेंगे चरण विशिष्ट मान और प्रति चरण एक स्टैक परिनियोजित करें।
 – 
Maurice
27 मार्च 2020, 19:05
मैं प्रत्येक वातावरण के लिए अलग-अलग खाते नहीं बनाना चाहता और मैं देव/मंच वातावरण में उचित परीक्षण के बाद उत्पादन वातावरण के लिए समान संसाधनों का उपयोग करना चाहता हूं। हालांकि इसके अलावा सर्वोत्तम अभ्यास के लिए आपका क्या सुझाव है (विभिन्न खातों के दृष्टिकोण को छोड़कर)
 – 
kzrfaisal
27 मार्च 2020, 19:32

2 जवाब

पैरामीटर सबसे अच्छा होगा

आप मैपिंग या शर्तों का भी उपयोग कर सकते हैं। लेकिन उनमें से कोई भी गड़बड़ हो सकता है

1
Tim Bassett 28 मार्च 2020, 11:10

क्या PROD और STAGE एक ही खाते में हैं, या अलग-अलग खाते हैं? मैं वही मान लूंगा

Transform: AWS::Serverless-2016-10-31

Parameters:
  Environment:
    Type: String
    AllowedValues:
      - STAGE
      - PROD

Resources:
  MyLambda:
    Type: AWS::Serverless::Function
    Properties:
      Handler: lambda_function.lambda_handler
      FunctionName: !Sub ${Environment}_my_lambda
      CodeUri: my_lambda

यह पर्यावरण द्वारा आपके लैम्ब्डा को एक अनूठा नाम देगा

फिर जब आप अपना टेम्पलेट परिनियोजित करते हैं, तो --parameter-overrides=Environment=STAGE या --parameter-overrides=Environment=PROD का उपयोग करें

CodeCommit को सुनने के लिए आप CloudWatch सेटअप कर सकते हैं। यदि STAGE शाखा बदलती है, तो STAGE शाखा का उपयोग करने के लिए CodeBuild को कॉल करें, और CloudFormation को STAGE परम पर कॉल करें। उत्पाद के लिए समान

4
Neil McGuigan 4 अप्रैल 2020, 01:10