amazon-web-services - आप अमेज़ॅन लोचदार बीनस्टॉक (एडब्ल्यूएस ईबीएस) पर कस्टम पर्यावरण चर कैसे पारित करते हैं?




4 Answers

.ebextensions/*.config way का उपयोग करने वाले किसी भी व्यक्ति के सिर के रूप में: आजकल आप लोचदार बीनस्टॉक वेब इंटरफ़ेस में पर्यावरण चर जोड़ सकते हैं, संपादित कर सकते हैं और निकाल सकते हैं

चर कॉन्फ़िगरेशन → सॉफ़्टवेयर कॉन्फ़िगरेशन के अंतर्गत हैं:

ओनेमा के जवाब में vextxtensions में .ebextensions बनाना अभी भी काम करता है।

यह भी बेहतर हो सकता है, उदाहरण के लिए यदि आप बाद में किसी अन्य पर्यावरण पर तैनात होंगे और उन्हें मैन्युअल रूप से सेट करने के लिए भूलने से डरते हैं, या यदि आप स्रोत नियंत्रण में मूल्यों को करने के ठीक हैं। मैं दोनों के मिश्रण का उपयोग करता हूं।

अमेज़ॅन लोचदार बीनस्टॉक ब्लर्ब कहते हैं:

लोचदार बीनस्टॉक आपको "हुड खोलने" और पूर्ण नियंत्रण बनाए रखने देता है ... यहां तक ​​कि लोचदार बीनस्टॉक कंसोल के माध्यम से पर्यावरण चर भी पास करता है।

http://aws.amazon.com/elasticbeanstalk/

लोचदार बीनस्टॉक कॉन्फ़िगरेशन में से एक के अलावा अन्य पर्यावरण चर कैसे पारित करें?




2016 जावा 8 टॉमकैट 8 एएमआई में, लोचदार बीनस्टॉक वेब कॉन्फ़िगरेशन से पर्यावरण चर सेट करने में विफल रहता है। वे वास्तव में jvm-d गुणों को सेट कर रहे हैं।

- "निम्न गुण पर्यावरण चर के रूप में आवेदन में पारित कर रहे हैं। और जानें।"

यह कथन जावा टॉमकैट एमी के लिए गलत है। अमेज़ॅन इन्हें पर्यावरण चर के रूप में सेट नहीं करता है। वे जेएमएम के लिए ए-डी संपत्ति के रूप में टोमकैट को कमांड लाइन पर पारित सिस्टम गुणों के रूप में सेट किए गए हैं। पर्यावरण चर के लिए जावा में विधि संपत्ति प्राप्त करने के लिए समान नहीं है। System.getenv बनाम System.getProperty

मैंने बॉक्स में ssh'd और सत्यापित किया कि पर्यावरण चर कभी सेट नहीं किया गया था। हालांकि, टॉमकैट लॉग में मैं देख सकता हूं कि डीडी संपत्ति सेट है।

मैंने वर्कअराउंड के रूप में अब दोनों स्थानों की जांच के लिए अपना कोड बदल दिया है।




वैकल्पिक रूप से, आप पर्यावरण चर सेट करने के लिए लोचदार बीनस्टॉक सीएलआई का उपयोग कर सकते हैं।

एक पर्यावरण चर सेट करने के लिए: eb setenv FOO=bar

पर्यावरण चर देखने के लिए: eb printenv




यह बीनस्टॉक में गतिशील मानों के साथ ENV सेट करने का एकमात्र तरीका प्रतीत होता है। मैं एक वर्कअराउंड के साथ आया जो मेरे बहु-डॉकर सेटअप के लिए काम करता है:

1) इसे बनाने से पहले अपने डॉकरफ़ाइल में जोड़ें + अपने ईसीएस भंडार में अपलोड करना:

CMD eval `cat /tmp/envs/env_file$`; <base image CMD goes here>;

2) आपकी Dockerrun.aws.json फ़ाइल में वॉल्यूम बनाएं:

{
    "name": "env-file",
    "host": {
        "sourcePath": "/var/app/current/envs"
    }
}

3) अपने कंटेनर के लिए माउंट वॉल्यूम

{
  "sourceVolume": "env-file",
  "containerPath": "/tmp/envs",
  "readOnly": true
}

4) आपके .ebextensions / options.config फ़ाइल में एक कंटेनर_commands ब्लॉक जोड़ें जैसे:

container_commands:
  01_create_mount:
    command: "mkdir -p envs/"
  02_create_env_file:
    command: { "Fn::Join" : [ "", [ 'echo "', "export ENVIRONMENT_NAME=" , { "Ref", "RESOURCE" }, ';" > envs/env_file;' ] ] }

5) ईबी तैनाती और आपके एनएनवीएस आपके डॉकर कंटेनर में उपलब्ध होना चाहिए

आप अधिक कंटेनर_कॉमैंड्स जोड़कर अधिक एनएनवी जोड़ सकते हैं जैसे:

  02_create_env_file_2:
    command: { "Fn::Join" : [ "", [ 'echo "', "export ENVIRONMENT_NAME_2=" , { "Ref", "RESOURCE2" }, ';" >> envs/env_file;' \] \] }

उम्मीद है की यह मदद करेगा!




Related

amazon-web-services app-config elastic-beanstalk