मैं अपने आवेदन के लिए परिनियोजन पाइपलाइन स्वचालित करने की कोशिश कर रहा हूं। यहाँ स्वचालन वास्तुकला है, मैं के साथ आया था: एडब्ल्यूएस कोडबिल्ड/कोडपलाइनलाइन सर्वर रहित ढांचे के साथ
आप देख सकते हैं मैं अपने तैनाती को स्वचालित करने के codePipeline और codeBuild उपयोग कर रहा हूँ। मेरा बैकएंड Serverless Framework पर आधारित है, जो sls deploy
कमांड पर फाम्बायर पर लैम्ब्डा फ़ंक्शंस को तैनात करता है। यही वजह है कि मैंने पारंपरिक तैनाती करने के लिए कोड का उपयोग नहीं किया था। buildspec.yml
फ़ाइल इस तरह दिखता है:
version: 0.1
phases:
install:
commands:
– apt-get -y update
– npm install -g [email protected]
build:
commands:
– cd nj2jp/serverless && npm install
post_build:
commands:
– serverless deploy –verbose
artifacts:
files:
– serverless.yml
discard-paths: yes
अब, मैं को 3 संबंध में प्रश्न है CodeBuild और Serverless:
प्रश्न 1: आदेश एक फ़ाइल पर sls deploy
निर्भर करता है config.yml
बुलाया जिसमें डीबी पासवर्ड जैसे रहस्य शामिल हैं। इस फ़ाइल को गिट में चेक नहीं किया जाएगा। कोडबिल्ड में config.yml
को शामिल करने का सबसे अच्छा तरीका क्या है?
प्रश्न 2:रोलबैक एडब्ल्यूएस साथ किया जा सकता, अगर हम codeDeploy का प्रयोग पारंपरिक EC2 अनुप्रयोगों को तैनात करने की है। सर्वर रहित के मामले में, हम कोड का उपयोग नहीं कर रहे हैं और सर्वर रहित रोलबैक सुविधाओं का भी समर्थन करता है। हम कोडपिपलाइन के भीतर सर्वर रहित रोलबैक का लाभ कैसे उठा सकते हैं?
प्रश्न 3: codePipeline ट्रिगर जब एक पुल अनुरोध होता है। मैंने कुछ पोस्ट कह रही हैं, यह कोडपलाइन द्वारा समर्थित नहीं है। लेकिन उन पदों पिछले साल से थे, क्या पुल अनुरोध अब कोडपलाइन द्वारा समर्थित है?
हैक जवाब (सही नहीं है, लेकिन काम करता है आप से बेहतर जवाब की आवश्यकता है।।)
उत्तर 1:config.yml
फ़ाइल एक निजी S3 बाल्टी में बचाया जा सकता है और codeBuild को खींचा जा सकता है pre-build
सेटअप के हिस्से के रूप में या हम कोडबिल्ड के एनवी चर के सभी रहस्य जोड़ सकते हैं। मुझे दूसरा विकल्प पसंद नहीं है, क्योंकि मैं सभी परिवेशों में लगातार होना चाहता हूं। इस समस्या के लिए कोई बेहतर समाधान?
उत्तर 2: मैं इसके लिए एक हैक नहीं सोच सकता। आप से जवाब के लिए देख रहे हैं।
उत्तर 3: मैं पुल अनुरोधों के लिए codePipeline को गति प्रदान करने के लिए कुछ ब्लॉग पोस्ट [APIGateway + Lambda + S3] का उपयोग भर में आया था। लेकिन मुझे लगता है, इस सुविधा को एक बॉक्स के बाहर के रूप में प्रदान किया जाना है। क्या इस सुविधा के लिए कोडपलाइन पर कोई अपडेट है?
अद्भुत उत्तर !! आपका जवाब पूरी तरह से समझ में आता है। बस उत्सुक, आप विभिन्न शाखाओं (प्रोड, देव और एसटीजी) में वातावरण (रहस्य) का प्रबंधन कैसे करते हैं। मैं '.env.prod',' .env.dev' और '.env.stg' जैसे प्रत्येक वातावरण के लिए एक स्पष्ट '.env' फ़ाइल का उपयोग कर रहा हूं। इन सभी को गिट में चेक नहीं किया गया है। –
मेरे रहस्य ईसी 2 पैरामीटर स्टोर में संग्रहीत हैं। मेरा देव, स्टेजिंग और उत्पादन अलग एडब्ल्यूएस खातों का उपयोग कर रहे हैं। इसलिए, मैं आसानी से समान वैरिएबल नामों का उपयोग बिना संघर्ष के चिंता किए कर सकता हूं। – dashmug
आह अच्छा !! लेकिन आप इसे स्थानीय पर्यावरण में कैसे प्रबंधित करते हैं? जैसे यह एक ही चर होने जा रहा है लेकिन अलग-अलग मान। क्या आप env फ़ाइल को वर्जन-कंट्रोल भी करते हैं? यदि हां, तो यह समझ में आता है। मुझे लगता है, यह निजी repos के लिए अच्छा है। –