आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
एनवायरमेंट वैरिएबल की सीमाएं
होस्ट किए गए टारगेट, एनवायरमेंट वैरिएबल के साइज़ और संख्या को सीमित करते हैं जिसे होस्ट किए गए टारगेट रनटाइम एनवायरमेंट में सेट किया जा सकता है.
- 1,000: एक एनवायरमेंट वैरिएबल की ज़्यादा से ज़्यादा लंबाई.
- 100: एनवायरमेंट के ज़्यादा से ज़्यादा ऐसे वैरिएबल जो सेट किए जा सकते हैं.
एनवायरमेंट वैरिएबल सेट करने के बारे में जानकारी के लिए, यहां देखें मेनिफ़ेस्ट फ़ाइल.
ऐप्लिकेशन के रनटाइम में सेट किए गए एनवायरमेंट वैरिएबल
होस्ट किए गए टारगेट ऐप्लिकेशन को डिप्लॉय करते समय, यहां दिए गए एनवायरमेंट वैरिएबल सेट होते हैं और रनटाइम के दौरान आपके ऐप्लिकेशन में उपलब्ध होती हैं:
APIGEE_ENVIRONMENT
- वह एनवायरमेंट जहां होस्ट किया गया टारगेट प्रॉक्सी डिप्लॉय किया जाता है.APIGEE_ORGANIZATION
- वह संगठन जहां होस्ट किया गया टारगेट प्रॉक्सी डिप्लॉय किया गया है.PORT
- वह पोर्ट जहां होस्ट किया गया टारगेट ऐप्लिकेशन सुनना ज़रूरी है.
सिस्टम के संसाधन का बंटवारा
होस्ट किए गए हर टारगेट के इंस्टेंस को नीचे दिए गए संसाधन मिलते हैं:
- 256 एमबी मेमोरी
- 1.2 गीगाहर्ट्ज़ सीपीयू
स्केलिंग:
इस सेक्शन में बताया गया है कि Edge खाते के टाइप के आधार पर, होस्ट किए गए टारगेट ऐप्लिकेशन की संख्या कैसे बढ़ाई जाती है हैं.- Apigee Edge का ट्रायल वर्शन, हर प्रॉक्सी के लिए एक होस्ट किए गए टारगेट इंस्टेंस तक सीमित है.
- पैसे चुकाकर लिए जाने वाले Apigee Edge खातों को, अनुरोध की दर, जवाब मिलने में लगने वाले समय,
और हर प्रॉक्सी पर अन्य ऐप्लिकेशन मेट्रिक होती हैं.
- होस्ट किए गए टारगेट ऐप्लिकेशन, कोई गतिविधि न होने पर, Apigee Edge स्केल के पेड और ट्रायल वर्शन, दोनों पर डिप्लॉय किए जाते हैं और उन्हें शून्य कर दिया जाता है. इस स्थिति में, कुछ समय के लिए जवाब मिलने में ज़्यादा समय लग सकता है. इन्हें भी देखें आम समस्याएं
मेनिफ़ेस्ट फ़ाइल
होस्ट किए गए ऐप्लिकेशन को बनाने और डिप्लॉय करने के लिए, Edge की संसाधन/होस्ट डायरेक्ट्री में app.yaml नाम की मेनिफ़ेस्ट फ़ाइल. इस फ़ाइल में होस्ट किए गए लक्ष्य ऐप्लिकेशन बनाने और लागू करने के लिए ज़रूरी जानकारी शामिल है.
मैनफ़िएस्ट फ़ाइल सिंटैक्स
runtime: node runtimeVersion: version_number command: command_name args: argument_array env: - name: variable_name value: literal_value - name: variable_name valueRef: name: kvm_name key: kvm_value
मेनिफ़ेस्ट फ़ाइल के एलिमेंट
app.yaml मेनिफ़ेस्ट फ़ाइल में ये एलिमेंट होते हैं:
- रनटाइम - (ज़रूरी है) उस ऐप्लिकेशन का टाइप बताता है जिसे डिप्लॉय किया जा रहा है.
आपको
node
तय करना होगा. - runtimeVersion - (ज़रूरी नहीं) रनटाइम का वह वर्शन जो इस्तेमाल करता है. डिफ़ॉल्ट: Node.js LTS (v10.x). Node के लिए Docker आधिकारिक रिपॉज़िटरी देखें देखें.
- कमांड - (ज़रूरी नहीं) इसका इस्तेमाल करके, निर्देश देने के लिए दूसरे निर्देश का इस्तेमाल किया जा सकता है.
डिफ़ॉल्ट निर्देश का इस्तेमाल किया गया है. डिफ़ॉल्ट:
Node.js=npm
- orgs - (ज़रूरी नहीं) कमांड लाइन आर्ग्युमेंट की कलेक्शन
ऐप्लिकेशन (स्टैंडर्ड YAML अरे सिंटैक्स में बताया गया है). आम तौर पर, इन्हें डिफ़ॉल्ट कमांड में जोड़ा जाता है.
डिफ़ॉल्ट तौर पर, यह शुरू करें होता है. उदाहरण के लिए, डिफ़ॉल्ट रूप से Node.js ऐप्लिकेशन को
npm start
. - env - (ज़रूरी नहीं) एनवायरमेंट वैरिएबल (नाम/वैल्यू पेयर) का कलेक्शन का इस्तेमाल करें. ये वैरिएबल आपकी डिप्लॉय किए गए होस्ट किए गए टारगेट ऐप्लिकेशन.
- name - वैरिएबल का नाम.
- मान | valueRef - आपके पास दो विकल्प हैं. आपके पास लिटरल वैल्यू सेट करने का विकल्प है
या कुंजी वैल्यू वाले मैप में स्टोर की गई वैल्यू का रेफ़रंस दें. कुंजी मान वाले मैप में यह ज़रूरी है
आपके Edge एनवायरमेंट में पहले से मौजूद है. Key Value Maps के साथ काम करना देखें
- अगर value का इस्तेमाल किया जाता है, तो
वैरिएबल
name
और लिटरलvalue
तय करें. उदाहरण के लिए:runtime: node env: - name: NODE_ENV value: production
- अगर valueRef का इस्तेमाल किया जाता है,
इसके बाद, आपको उस की वैल्यू मैप (केवीएम) का नाम और एक कुंजी देनी होगी जिसे आपने पहले Edge में बनाया था.
उदाहरण के लिए:
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
- अगर value का इस्तेमाल किया जाता है, तो
वैरिएबल
- apigeetool -- एक कमांड लाइन टूल का इस्तेमाल करके एज प्रॉक्सी को डिप्लॉय किया जा सकता है.
- get_token - apigeetool के लिए ज़रूरी अनुमति देने वाला टोकन पाने के लिए एक कमांड-लाइन टूल.
- ब्राउज़र में, https://github.com/apigee/api-platform-samples पर जाएं.
- क्लोन या डाउनलोड करें पर क्लिक करें और रेपो को अपने लोकल सिस्टम तक पाएं. इसके लिए, आपका पसंदीदा तरीका.
- cd से <your install dr>/api-platform-सैंपल/doc-सैंपल/होस्ट-टारगेट
- रेपो डाउनलोड हो जाने के बाद, किसी भी सैंपल डायरेक्ट्री को कॉपी करें और Edge पर सैंपल प्रॉक्सी डिप्लॉय करने के लिए, निर्देश README. डिप्लॉयमेंट कमांड नीचे दी गई है. Simply अपने Apigee खाते के लिए, दिए गए पैरामीटर को किसी पैरामीटर से बदलें:
- नेटवर्क का इंतज़ार का समय - अब जब Node.js ऐप्लिकेशन काम नहीं करता है एमपी के जेवीएम में, अब एमपी और उनके डिप्लॉयमेंट के बीच नेटवर्क छलांग है. बिलकुल हालांकि, इसकी कीमत काफ़ी ज़्यादा होती है, लेकिन शुरुआती बेंचमार्क के मुताबिक, यह वाजिब कीमत के बराबर होता है
- एपीआई के धीमे रिस्पॉन्स - आपके ऐप्लिकेशन को चलाने वाला इंफ़्रास्ट्रक्चर ज़रूरत के हिसाब से अपने-आप बदल जाता है. इसका यह अर्थ है कि आपका ऐप्लिकेशन वास्तव में शून्य इंस्टेंस और अगर ऐसा है, तो अगले एपीआई अनुरोध में आम तौर पर एपीआई अनुरोध इसलिए भेजा जाता है, क्योंकि इन्फ़्रास्ट्रक्चर, अनुरोध.
- डिप्लॉयमेंट में गड़बड़ी - अगर होस्ट किए गए टारगेट प्रॉक्सी, प्रॉक्सी को फिर से डिप्लॉय करने की कोशिश करें. कुछ मामलों में, डिप्लॉयमेंट की समयसीमा खत्म हो सकती है और अगर फिर से डिप्लॉय किया जाता है, तो समस्या अपने-आप हल हो जाएगी.
मेनिफ़ेस्ट फ़ाइलों के उदाहरण
इस सेक्शन में Node.js के लिए उदाहरण के तौर पर मेनिफ़ेस्ट फ़ाइलें शामिल हैं
का इस्तेमाल करें. होस्ट किए गए टारगेट ऐप्लिकेशन को डिप्लॉय करने के लिए, मेनिफ़ेस्ट फ़ाइल की ज़रूरत होती है. साथ ही, यह फ़ाइल मौजूद होनी चाहिए
apiproxy/resources/hosted
डायरेक्ट्री में और फ़ाइल का नाम app.yaml
होना चाहिए.
Node.js ऐप्लिकेशन के लिए app.yaml
(मेनिफ़ेस्ट) फ़ाइलों के उदाहरण नीचे दिए गए हैं.
लिटरल एनवायरमेंट वैरिएबल के बारे में बताने वाला उदाहरण:
runtime: node
env:
- name: NODE_ENV
value: production
स्टार्ट कमांड, कमांड लाइन आर्ग्युमेंट, और एक एनवायरमेंट वैरिएबल का उदाहरण.
runtime: node
command: ./node_modules/pm2/bin/pm2
env:
- name: NODE_ENV
value: production
args:
- app.js
की वैल्यू मैप (केवीएम) रेफ़रंस के बारे में बताने वाला उदाहरण:
केवीएम ऐक्सेस के बारे में ज़्यादा जानने के लिए, मेनिफ़ेस्ट फ़ाइल देखें.
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
GitHub पर होस्ट किए गए टारगेट ऐप्लिकेशन का सैंपल
Apigee, होस्ट किए गए टारगेट ऐप्लिकेशन के साथ GitHub पर सैंपल प्रॉक्सी उपलब्ध कराता है Node.js में इस रेपो का क्लोन बनाएं और README के निर्देशों का पालन करके, कोई भी प्रॉक्सी डिप्लॉय कर सकता है.
ज़रूरी शर्तें
सैंपल डिप्लॉय करने के लिए, आपके सिस्टम पर दो टूल इंस्टॉल होने चाहिए:
अगर आपको स्थानीय तौर पर सैंपल की जांच करनी है, तो आपके पास Node.js इंस्टॉल होना चाहिए.
सैंपल रेपो की जानकारी लेना
get_token && apigeetool deployproxy \ -o YOUR_ORGANIZATION \ -e YOUR_ENVIRONMENT \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api NAME_OF_THE_PROXY \ --directory .
उदाहरण: ऐप्लिकेशन का सैंपल चलाना
सैंपल डेटा स्टोर करने की जगह का क्लोन बनाएं
cd ~/myhome
git clone https://github.com/apigee/api-platform-samples.git
cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
cd node-hosted-hello
ऐप्लिकेशन का स्थानीय तौर पर परीक्षण करें
यह लोकल टेस्ट करने के लिए, आपके पास Node.js इंस्टॉल होना चाहिए.
PORT=8081 node apiproxy/resources/hosted/index.js
curl http://localhost:8081
आउटपुट का उदाहरण:
{"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}
प्रॉक्सी को डिप्लॉय करें
get_token && apigeetool deployproxy \ -o myorg \ -e test \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api node-hosted-hello \ --directory .
डिप्लॉयमेंट की जांच करना
डिप्लॉयमेंट को पूरा होने में कुछ मिनट लग सकते हैं. अगर आपको डिप्लॉयमेंट से जुड़ी कोई गड़बड़ी मिलती है, तो लागू करें लागू करें निर्देश को फिर से डिप्लॉय करें.
curl http://myorg-test.apigee.net/node-hosted-hello
आउटपुट का उदाहरण:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"