आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
इस विषय में, Docker कंटेनर में Edge Microgateway को चलाने का तरीका बताया गया है. तरीका Docker, Docker कमांड, और Edge Microgateway के बारे में बुनियादी जानकारी होने की वजह से, इस विषय के बारे में ज़्यादा जानें सेटअप और कॉन्फ़िगरेशन. इसके लिए ज़्यादा जानकारी के लिए, Docker का दस्तावेज़ देखें और एज माइक्रोगेटवे.
ज़रूरी शर्तें
Docker कंटेनर में Edge Microgateway चलाने से पहले, आपको ये काम करने होंगे टास्क:
अपने Apigee संगठन/एनवायरमेंट के लिए Edge माइक्रोगेटवे कॉन्फ़िगर करें:
edgemicro configure -o your_org -e your_env -u your_username
कॉन्फ़िगरेशन के बारे में ज़्यादा जानकारी के लिए, पहला चरण: Edge माइक्रोगेटवे कॉन्फ़िगर करें देखें.
कॉन्फ़िगरेशन के चरणों को पूरा करने के बाद, कॉन्फ़िगरेशन का पता लगाएं फ़ाइल से लिए जाते हैं. डिफ़ॉल्ट जगह यहां है:
$HOME/.edgemicro/your_org-your_env-config.yaml
जहां
your_orgऔरyour_envसंगठन हैं और एनवायरमेंट की जानकारी को ऐक्सेस कर सकता है जिसका इस्तेमाल आपनेedgemicro configनिर्देश को चलाते समय किया था. आपको इनकी ज़रूरत होगी इस फ़ाइल का इस्तेमाल तब किया जा सकता है, जब आप Docker कंटेनर में Edge Microgateway शुरू करते हैं.पक्का करें कि आपके पास वे कुंजी और सीक्रेट क्रेडेंशियल हैं जो आपको
edgemicro configनिर्देश. उदाहरण के लिए:The following credentials are required to start edge micro key: d9c34e1aff68ed969273c016699eabf48780e4f652242e72fc88a43e21252cb0 secret: 3bc95a71c86a3c8ce04537fbcb788158731t51dfc6cdec13b7c05aa0bd969430Docker कंटेनर में Edge Microgateway शुरू करने से पहले, आपको ज़रूरी Apigee Edge इकाइयां (या बनाई गई हैं) की मदद से पुष्टि किए गए एपीआई प्रॉक्सी कॉल किए जा सकते हैं. इन इकाइयों में Edge माइक्रोगेटवे-अवेयर शामिल हैं प्रॉक्सी, एपीआई प्रॉडक्ट, डेवलपर, और डेवलपर ऐप्लिकेशन. सभी निर्देशों के लिए, यह देखें Apigee Edge पर इकाइयां बनाएं.
Edge माइक्रो को Docker कंटेनर के तौर पर चलाएं
Edge Microgateway के लिए Docker इमेज डाउनलोड करें:
docker pull gcr.io/apigee-microgateway/edgemicro:latest
अगले चरणों पर जाने से पहले, यह पक्का कर लें कि आपने यहां दिए गए सभी चरण पूरे कर लिए हों ज़रूरी शर्तें सेक्शन में जाएं.
Edge Microgateway कॉन्फ़िगरेशन फ़ाइल को base64-एन्कोड करने के लिए, नीचे दिया गया कमांड चलाएं
$HOME/.edgemicroमें स्थित:export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/your_org-your_env-config.yaml`
जहां
your_orgऔरyour_envऐसे संगठन और एनवायरमेंट हैं जिनका इस्तेमाल आपनेedgemicro configनिर्देश चलाया गया.निर्देश के आस-पास बैक-टिक (`) लगाना न भूलें. उदाहरण के लिए:
export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/docs-test-config.yaml`
एज माइक्रोगेटवे को कंटेनर के तौर पर चलाएं. निर्देश कई एनवायरमेंट वैरिएबल सेट करता है जिनका इस्तेमाल एज माइक्रोगेटवे को शुरू करने के लिए कंटेनर रनटाइम में किया जाता है:
chown -R 100:101 ~/.edgemicro/ \ docker run -P -p 8000:8000 -d --name edgemicro \ -v /var/tmp:/opt/apigee/logs \ -e EDGEMICRO_PROCESSES=1 \ -e EDGEMICRO_ORG=your_org \ -e EDGEMICRO_ENV=your_env \ -e EDGEMICRO_KEY=your_key \ -e EDGEMICRO_SECRET=your_secret \ -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \ -e SERVICE_NAME=edgemicro \ --security-opt=no-new-privileges \ --cap-drop=ALL \ gcr.io/apigee-microgateway/edgemicro:latest
पैरामीटर
पैरामीटर जानकारी -Pबिना अनुमति के सार्वजनिक किए गए सभी पोर्ट, होस्ट पर पब्लिश करें. डॉकर रन रेफ़रंस वाला वीडियो भी देखें. -pकिसी एक पोर्ट या पोर्ट की रेंज को साफ़ तौर पर मैप करें. डॉकर रन रेफ़रंस वाला वीडियो भी देखें. -dडिटैच्ड मोड में चलाएं. डॉकर रन रेफ़रंस वाला वीडियो भी देखें. -v, --volumeइस सेटिंग से वॉल्यूम माउंट के बारे में जानकारी मिलती है. ध्यान दें कि अगर एज माइक्रोगेटवे को कॉन्फ़िगर किया जाता है, तो Docker कंटेनर में TLS का इस्तेमाल करने के लिए, आपको पोर्ट 8443 को सार्वजनिक करना होगा, अगर लॉग फ़ाइल डायरेक्ट्री को माउंट करें. वॉल्यूम [शेयर किए गए फ़ाइल सिस्टम] के बारे में भी जानें. डॉकर कंटेनर में TLS का इस्तेमाल करना भी देखें. EDGEMICRO_ORGउस Apigee संगठन का नाम जिसका इस्तेमाल आपने Edge Microgateway को कॉन्फ़िगर करने के लिए किया था. EDGEMICRO_ENVउस Apigee एनवायरमेंट का नाम जिसका इस्तेमाल आपने Edge Microgateway को कॉन्फ़िगर करने के लिए किया है. EDGEMICRO_PROCESSESशुरू की जाने वाली प्रोसेस की संख्या. EDGEMICRO_KEYEdge Microgateway को कॉन्फ़िगर करने पर कुंजी दिखाई गई थी. EDGEMICRO_SECRETEdge Microgateway को कॉन्फ़िगर करने पर सीक्रेट वापस लौटा दिया गया है. EDGEMICRO_CONFIGऐसा वैरिएबल जिसमें base64 कोड में बदली गई Edge माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल है. SERVICE_NAMEअगर आप Kubernetes पर हैं, तो इस पैरामीटर की जानकारी अपने-आप भर जाती है. या फिर, इसे अपने हिसाब से कहीं भी सेट किया जा सकता है. अगर आप कुछ नहीं चुनते हैं, तो सेवा नाम defaultपर सेट है.DEBUGडीबग करने की सुविधा चालू करने के लिए, इसे *पर सेट करें.HTTP_PROXYHTTPS_PROXYजब Edge माइक्रोगेटवे हो, तब इस्तेमाल करें अगर आपका गेटवे फ़ायरवॉल की मदद से काम कर रहा है और गेटवे के ज़रिए Apigee से संपर्क नहीं किया जा सकता है किनारे. ज़्यादा के लिए ज़्यादा जानकारी के लिए, कंपनी के फ़ायरवॉल की मदद से Edge Microgateway सेट अप करना देखें. उदाहरण के लिए:
HTTP_PROXY=http://10.203.0.1:5187/NO_PROXYउन डोमेन की कॉमा-डिलिमिटेड सूची जिनके साथ Edge Microgateway को प्रॉक्सी नहीं करना चाहिए. ज़्यादा जानकारी के लिए, कंपनी के फ़ायरवॉल की मदद से, Edge Microgateway सेट अप करना लेख पढ़ें. उदाहरण के लिए:
localhost,127.0.0.1,localaddress,.localdomain.comNODE_EXTRA_CA_CERTS(ज़रूरी नहीं) अगर किसी ऐसे सीए का इस्तेमाल किया जा रहा है जो भरोसेमंद नहीं है, तो इस पैरामीटर का इस्तेमाल करें डिफ़ॉल्ट रूप से Node.js पर शामिल होता है. इस पैरामीटर की वैल्यू को पाथ पर सेट करें ऐसी फ़ाइल जिसमें PEM प्रारूप में एक या ज़्यादा विश्वसनीय प्रमाणपत्र हैं. इसके लिए जानकारी के लिए, TLS प्रमाणपत्र देखें. --security-opt(वैकल्पिक) ज़रूरी Docker सुरक्षा विकल्प सेट करता है. Docker दस्तावेज़ में, सुरक्षा कॉन्फ़िगरेशन देखें. --cap-drop(ज़रूरी नहीं) कंटेनर में अनुमति दी गई, Linux की सुविधाओं की सीमाएं सेट करता है. Docker दस्तावेज़ में, रनटाइम खास अधिकारों और Linux की सुविधाएं देखें. उदाहरण के लिए:
chown -R 100:101 ~/.edgemicro/ \ docker run -P -p 8000:8000 -d --name edgemicro \ -v /var/tmp:/opt/apigee/logs \ -e EDGEMICRO_PROCESS=1 \ -e EDGEMICRO_ORG=docs \ -e EDGEMICRO_ENV=test \ -e EDGEMICRO_KEY=d9c34e1aff68ed969273b016699eabf48780e4f652242e72fc88a23e21252cb0 \ -e EDGEMICRO_SECRET=3bc95a71c86a3c8ce04137fbcb788158731t51dfc6cdec13b7c05aa0bd969430 \ -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \ -e SERVICE_NAME=edgemicro \ --security-opt=no-new-privileges \ --cap-drop=ALL \ gcr.io/apigee-microgateway/edgemicro
यह जांचने के लिए कि कंटेनर चल रहा है या नहीं:
docker ps
आपको इससे मिलता-जुलता आउटपुट दिखेगा:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8b92e082ea9c edgemicro "/tmp/entrypoint.sh" 12 minutes ago Up 12 minutes 0.0.0.0:8000->8000/tcp, 0.0.0.0:32775->8443/tcp edgemicro
एपीआई कॉल की जांच करना
कंटेनर में Edge माइक्रोगेटवे शुरू करने के बाद, इसे एपीआई कॉल किया जा सकता है.
उदाहरण के लिए, अगर आपके एपीआई का बेसपाथ /hello है, तो:
http://localhost:8000/hello
आउटपुट का उदाहरण:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
अगर आपको यह रिस्पॉन्स दिखता है, तो इसका मतलब है कि Edge माइक्रोगेटवे को सही तरीके से हैंडल किया गया है एपीआई कॉल. हालांकि, डिफ़ॉल्ट रूप से Edge Microgateway को पुष्टि करने के लिए एपीआई पासकोड की ज़रूरत होती है. अगले सेक्शन में, मान्य एपीआई पासकोड से एपीआई को टेस्ट किया जाएगा.
मान्य एपीआई पासकोड की मदद से, एपीआई की जांच करना
Edge यूज़र इंटरफ़ेस (यूआई) में, उस डेवलपर ऐप्लिकेशन पर जाएं जिसे आपने पहले बनाया था. डेवलपर में ऐप्लिकेशन पेज पर जाकर, उपभोक्ता कुंजी दिखाएं और उसे कॉपी करें. यह वैल्यू, एपीआई पासकोड है. आपको ये चीज़ें इस्तेमाल करनी होंगी इस कुंजी का इस्तेमाल पुष्टि किए गए एपीआई कॉल करने के लिए करें.
एपीआई को x-api-key हेडर के साथ इस तरह कॉल करें. उपभोक्ता कुंजी का वह मान जो
डेवलपर ऐप्लिकेशन से कॉपी की जाने वाली कुंजी, एपीआई पासकोड होती है. डिफ़ॉल्ट रूप से, Edge Microgateway
यह उम्मीद करता है कि आप x-api-key नाम के हेडर में कुंजी पास करेंगे, जैसे कि:
curl -i http://localhost:8000/hello -H "x-api-key:apikey"
उदाहरण के लिए:
curl -i http://localhost:8000/hello -H "x-api-key:PydUKRDGIXRqF2xh4usn1FLHbhGKVIz"
अगर आपको Edge Microgateway के ज़रिए पुष्टि किए गए एपीआई कॉल करने के बारे में ज़्यादा जानना है, तो अगर आपको एपीआई पासकोड और OAuth टोकन का इस्तेमाल करना है, तो चौथा चरण: सिक्योर एज माइक्रोगेटवे देखें.
एज माइक्रोगेटवे को बंद किया जा रहा है
Edge माइक्रोगेटवे को रोकने के लिए, Docker कमांड का इस्तेमाल करें:
docker stop edgemicro
एज माइक्रोगेटवे को रीस्टार्ट किया जा रहा है
Edge Microgateway को बंद करने के बाद, आप इसे Docker कमांड से रीस्टार्ट कर सकते हैं:
docker start edgemicro
Docker कंटेनर में TLS का इस्तेमाल करना
इस सेक्शन में बताया गया है कि EDGE माइक्रोगेटवे को चलाने के लिए, TLS को कॉन्फ़िगर कैसे करें Docker कंटेनर में. TLS का इस्तेमाल करने के लिए, Edge Microgateway सर्वर को कॉन्फ़िगर किया जा सकता है का इस्तेमाल किया जा सकता है, और आप Edge को कॉन्फ़िगर भी कर सकते हैं टारगेट एंडपॉइंट को किए जाने वाले आउटगोइंग अनुरोधों के लिए, TLS क्लाइंट के तौर पर माइक्रोगेटवे की सुविधा (दक्षिण की दिशा).
सर्टिफ़िकेट वाली फ़ाइलें कहां डालें
एज माइक्रोगेटवे पर चलने वाले Docker कंटेनर के /opt/apigee/.edgemicro पर माउंट पॉइंट है.
TLS सर्टिफ़िकेट का इस्तेमाल करने के लिए, Edge Microgateway को कॉन्फ़िगर करके,
सर्टिफ़िकेट फ़ाइलें उस माउंट पॉइंट पर उपलब्ध होंगी और
Edge Microgateway कॉन्फ़िगरेशन फ़ाइल. यह कॉन्फ़िगरेशन फ़ाइल आम तौर पर, $HOME/.edgemicro में मौजूद होती है
निर्देशिका है और इसका नाम your_org-your_env-config.yaml है.
उदाहरण के लिए:
...
edgemicro:
ssl:
key: /opt/apigee/.edgemicro/southbound/tls.key
cert: /opt/apigee/.edgemicro/southbound/tls.crt
...
ऐसे सीए का इस्तेमाल करना जो Node.js के लिए भरोसेमंद नहीं है
अगर किसी ऐसी सर्टिफ़िकेट अथॉरिटी (सीए) का इस्तेमाल किया जा रहा है जो डिफ़ॉल्ट रूप से भरोसेमंद नहीं है
Node.js (जैसा कि खुद हस्ताक्षर किए हुए प्रमाणपत्र के साथ होता है), तो
कंटेनर को चलाते समय, पैरामीटर NODE_EXTRA_CA_CERTS.
इस पैरामीटर को एक या उससे ज़्यादा वाली फ़ाइल के पाथ पर सेट करें PEM प्रारूप में भरोसेमंद प्रमाणपत्र. इस पैरामीटर का इस्तेमाल करने का तरीका जानने के लिए, उदाहरण के लिए, नॉर्थबाउंड TLS को कॉन्फ़िगर करने का तरीका और साउथबाउंड TLS को कॉन्फ़िगर करने का तरीका.
उदाहरण के लिए:
chown -R 100:101 ~/.edgemicro/ \
docker run -P -p 8443:8443 -d --name edgemicro \
-v $HOME/.edgemicro:/opt/apigee/.edgemicro \
-v $HOME/.edgemicro:/opt/apigee/logs \
-e NODE_EXTRA_CA_CERTS=/opt/apigee/.edgemicro/rootca.pem \
-e EDGEMICRO_PORT=8443 \
-e EDGEMICRO_ORG=docs \
-e EDGEMICRO_ENV=test \
-e EDGEMICRO_KEY=ac36574905fb54fdae65fc5433e831bec2680efb98220a355f2e917e52973c \
-e EDGEMICRO_SECRET=aac81dff6c326eaa222d53c15c8841fa78ea863bf4472568c9ce2d80a3bc56 \
-e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
--link helloworld:helloworld gcr.io/apigee-microgateway/edgemicro
Docker कंटेनर के तौर पर, Run Edge Micro भी देखें.
TLS की पुष्टि करने की सुविधा बंद करना
हालांकि, इसका सुझाव नहीं दिया जाता है, लेकिन कुछ मामलों में हो सकता है कि आप TLS की पुष्टि करने की सुविधा को बंद करना चाहें कंटेनर में चल रहे एज माइक्रोगेटवे के लिए. TLS को बंद करने की सुविधा इसे डिफ़ॉल्ट रूप से, Edge Microgateway Docker कंटेनर में नहीं बनाया जाता है. इन्हें पूरा करना है टास्क के लिए, आपको एज माइक्रोगेटवे के लिए अपनी पसंद की Docker इमेज बनानी होगी. तय सीमा से कम कस्टम इमेज बनाने और TLS की पुष्टि करने की सुविधा को बंद करने के सामान्य निर्देश हैं.
Edge Microgateway के सोर्स रिपॉज़िटरी को यहां से क्लोन करें या डाउनलोड करें
https://github.com/apigee-internal/microgateway.सोर्स कोड डायरेक्ट्री में मौजूद
microgateway/kubernetes/docker/edgemicroडायरेक्ट्री के लिएcd.उदाहरण के लिए:
cd $HOME/git/microgateway/kubernetes/docker/edgemicroentrypoint.shफ़ाइल खोलें औरNODE_TLS_REJECT_UNAUTHORIZEDको स्वीकार करने के लिए, कोड में बदलाव करें एनवायरमेंट वैरिएबल. बाद में, कंटेनर को चलाते समय, आपको इसके लिए एक वैल्यू तय करनी होगी वैरिएबल.Docker कंटेनर बनाएं:
docker build -t edgemicro .कंटेनर को चलाते समय,
-e NODE_TLS_REJECT_UNAUTHORIZED = 1विकल्प बताएं. उदाहरण के लिए:
chown -R 100:101 ~/.edgemicro/ \
docker run -P -p 8443:8443 -d --name edgemicro \
-v $HOME/.edgemicro:/opt/apigee/.edgemicro \
-v $HOME/.edgemicro:/opt/apigee/logs \
-e NODE_TLS_REJECT_UNAUTHORIZED = 1 \
-e EDGEMICRO_PORT=8443 \
-e EDGEMICRO_ORG=docs \
-e EDGEMICRO_ENV=test \
-e EDGEMICRO_KEY=ac36574905fb54fdae65fc5433e831bec2680efb98220a355f2e917e52973c \
-e EDGEMICRO_SECRET=aac81dff6c326eaa222d53c15c8841fa78ea863bf4472568c9ce2d80a3bc56 \
-e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \
--link helloworld:helloworld gcr.io/apigee-microgateway/edgemicro
उदाहरण: नॉर्थबाउंड TLS को कॉन्फ़िगर करने का तरीका
इस सेक्शन में बताया गया है कि Edge माइक्रोगेटवे पर, नॉर्थबाउंड (इनकमिंग) TLS कनेक्शन को कैसे सेट अप किया जा सकता है सर्वर. एज माइक्रोगेटवे पर एपीआई कॉल करते समय, नॉर्थबाउंड TLS की मदद से क्लाइंट एचटीटीपीएस का इस्तेमाल कर सकते हैं. यहां दिए गए उदाहरण में, खुद हस्ताक्षर किए गए सर्टिफ़िकेट इस्तेमाल किए गए हैं.
1. शुरुआती सेटअप के चरण
- अपने सिस्टम पर
openssl.cnfफ़ाइल ढूंढें. उदाहरण के लिए,/etc/ssl/openssl.cnf. - बदलाव करने के लिए
opensssl.cnfफ़ाइल खोलें. पक्का करें कि आपकी कॉन्फ़िगरेशन फ़ाइल में
req_extensionsमौजूद हों. उदाहरण के लिए, आपके आपकी फ़ाइल में नीचे दी गई जानकारी से मिलती-जुलती जानकारी होनी चाहिए:[ req ] ... req_extensions = v3_req ... [ v3_req ] extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEnciphermentसही SNI एट्रिब्यूट जनरेट करने के लिए,
openssl.cnfमें यह छंद जोड़ें:[ alt_names ] DNS.1 = www.example.com DNS.2 = example.com DNS.3 = localhost DNS.4 = localhost.localdomain DNS.5 = 127.0.0.1 DNS.6 = ::1 DNS.7 = fe80::1opensssl.cnfफ़ाइल का उदाहरण:[ req ] distinguished_name = req_distinguished_name attributes = req_attributes req_extensions = v3_req [ v3_req ] extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) localityName = Locality Name (eg, city) 0.organizationName = Organization Name (eg, company) organizationalUnitName = Organizational Unit Name (eg, section) commonName = Common Name (eg, fully qualified host name) commonName_max = 64 emailAddress = Email Address emailAddress_max = 64 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 [ alt_names ] DNS.1 = www.example.com DNS.2 = example.com DNS.3 = localhost DNS.4 = localhost.localdomain DNS.5 = 127.0.0.1 DNS.6 = ::1 DNS.7 = fe80::1शुरू करने के लिए, ज़रूरी शर्तें सेक्शन में दिए गए निर्देशों का पालन करें और अगर आपने अभी तक Edge Microgateway को कॉन्फ़िगर नहीं किया है, तो उसे कॉन्फ़िगर करें. आप इसे पूरा करने के बाद, उसे एक Edge Microgateway-अवेयर प्रॉक्सी, एपीआई प्रॉडक्ट, डेवलपर, और और एक डेवलपर ऐप्लिकेशन होना चाहिए. इसके अलावा, आपको
edgemicro configureनिर्देश और हमें एक कुंजी और सीक्रेट मिला.
2. खुद हस्ताक्षर किए हुए सर्टिफ़िकेट जनरेट करें
इसके बाद, TLS सेट करने के लिए ज़रूरी सर्टिफ़िकेट और कुंजियां जनरेट करें:
$HOME/.edgemicroडायरेक्ट्री मेंcd.यह बैश स्क्रिप्ट बनाएं. इसे कोई भी नाम दिया जा सकता है. जैसे:
keygen.sh.#!/bin/bash # generate ca openssl genrsa -out rootca.key 2048 openssl req -x509 -new -nodes -key rootca.key -sha256 -days 1024 -out rootca.pem # generate key openssl genrsa -out tls.key 2048 openssl req -new -key tls.key -out tls.csr # sign cert openssl x509 -req -in tls.csr -CA rootca.pem -CAkey rootca.key -CAcreateserial -out tls.crt -days 1024 -sha256 -extensions 'v3_req' -extfile path/openssl.cnf
bash फ़ाइल में, पक्का करें कि
openssl.cnfफ़ाइल का पाथ सही हो.bash फ़ाइल चलाएं. आपको सर्टिफ़िकेट की जानकारी देने के लिए कहा जाएगा. कृपया सामान्य नाम के लिए
localhost.देखें कि नीचे दी गई फ़ाइलें बनाई गई हैं या नहीं:
rootca.keyrootca.pemtls.keytls.csrrootca.srltls.crt
3. Edge Microgateway कॉन्फ़िगरेशन फ़ाइल में बदलाव करें
Edge माइक्रो कॉन्फ़िगरेशन फ़ाइल को एडिटर में खोलें. उदाहरण के लिए:
vi $HOME/.edgemicro/myorg-test-config.yamledgemicroछंद में नीचे बताए गए तरीके से बदलाव करें. ध्यान दें कि इसमें बदलाव किए जा रहे हैंportऔरsslएट्रिब्यूट की वैल्यू में:edge_config: ... edgemicro: port: 8443 max_connections: 1000 config_change_poll_interval: 600 ssl: key: /opt/apigee/.edgemicro/tls.key cert: /opt/apigee/.edgemicro/tls.crt passphrase: admin123 rejectUnauthorized: true requestCert: false logging: ...Edge Microgateway कॉन्फ़िगरेशन फ़ाइल को base64-एन्कोड करने के लिए, नीचे दिया गया कमांड चलाएं
$HOME/.edgemicroमें स्थित:export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/your_org-your_env-config.yaml`
जहां
your_orgऔरyour_envऐसे संगठन और एनवायरमेंट हैं जिनका इस्तेमाल आपनेedgemicro configनिर्देश चलाया गया.निर्देश के आस-पास बैक-टिक (`) लगाना न भूलें. उदाहरण के लिए:
export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/docs-test-config.yaml`
Docker कंटेनर के रूप में Run Edge Micro भी देखें.
4. कंटेनर चलाएं
Edge माइक्रोगेटवे के साथ Docker कंटेनर को चलाने के लिए, नीचे दिया गया निर्देश चलाएं:
chown -R 100:101 ~/.edgemicro/ \ docker run -P -p 8443:8443 -d --name edgemicro \ -v path_to_your_edgemicro_dir:/opt/apigee/.edgemicro \ -v path_to_your_logs_dir:/opt/apigee/logs \ -e NODE_EXTRA_CA_CERTS=/opt/apigee/.edgemicro/rootca.pem \ -e EDGEMICRO_PORT=8443 \ -e EDGEMICRO_ORG=$EDGEMICRO_ORG \ -e EDGEMICRO_ENV=$EDGEMICRO_ENV \ -e EDGEMICRO_KEY=$EDGEMICRO_KEY \ -e EDGEMICRO_SECRET=$EDGEMICRO_SECRET \ -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \ gcr.io/apigee-microgateway/edgemicro:latest
कमांड में इस्तेमाल किए गए इन पैरामीटर पर ध्यान दें; वे बुनियादी सुविधाओं से अलग हैं निर्देश की जानकारी Docker कंटेनर के रूप में Run Edge Micro में दी गई है.
portको8443पर सेट किया गया है.- वॉल्यूम माउंट का इस्तेमाल कुंजी और सर्टिफ़िकेट वाली फ़ाइलों को माउंट करने के लिए किया जाता है.
NODE_EXTRA_CA_CERTSवैरिएबल का इस्तेमाल, कस्टम सीए जोड़ने के लिए किया जाता है (अगर केस में ज़रूरी हो प्रमाणित किया गया है).
5. TLS कॉन्फ़िगरेशन की जांच करना
सेटअप की जांच करने के लिए, यहां दिया गया cURL निर्देश चलाएं. प्रतिस्थापन अपने बेसपाथ और एपीआई पासकोड को भी निर्देश में शामिल करें. नीचे दिए गए उदाहरण में माना गया है कि आप उस डायरेक्ट्री में हैं जहां
rootca.pemमौजूद है और आपने जो प्रॉक्सी बनाई है उसका बेसपाथ/helloहै:curl -v https://localhost:8443/hello --cacert rootca.pem \ -H "x-api-key: Az82fdnfONVCOOE4NKhajxAboDgA3FAo"वर्बोस cURL आउटपुट, TLS हैंडशेकिंग. अगर आपको एचटीटीपी 200 रिस्पॉन्स दिखता है, तो इसका मतलब है कि कॉन्फ़िगरेशन सफल हो गया है:
* Trying ::1...ey:Az82fdnfONVCOOE4NKhajxAboDgA3FAo" * TCP_NODELAY set * Connected to localhost (::1) port 8443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * successfully set certificate verify locations: * CAfile: rootca.pem CApath: none * TLSv1.2 (OUT), TLS handshake, Client hello (1): * TLSv1.2 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Client hello (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS change cipher, Client hello (1): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * ALPN, server accepted to use http/1.1 * Server certificate: * subject: C=US; ST=CO; L=Boulder; O=Docs; OU=Docs; CN=localhost; emailAddress=docs@apigee.com * start date: Dec 14 22:35:28 2018 GMT * expire date: Oct 3 22:35:28 2021 GMT * common name: localhost (matched) * issuer: C=US; ST=CO; L=Boulder; O=Docs; OU=Docs; CN=localhost; emailAddress=docs@apigee.com * SSL certificate verify ok. > GET /hello HTTP/1.1 > Host: localhost:8443 > User-Agent: curl/7.54.0 > Accept: */* > x-api-key:Az82fdnfaONVCOE4NKhajxAboDA3FAo > < HTTP/1.1 200 OK < x-powered-by: Apigee < access-control-allow-origin: * < x-frame-options: ALLOW-FROM RESOURCE-URL < x-xss-protection: 1 < x-content-type-options: nosniff < content-type: text/plain; charset=utf-8 < etag: W/"d-GHB1ZrJKk/wdVTdB/jgBsw" < date: Fri, 14 Dec 2018 22:43:13 GMT < via: 1.1 google < alt-svc: clear < x-response-time: 1325 < Connection: keep-alive < Transfer-Encoding: chunked < * Connection #0 to host localhost left intact Hello, Guest!
उदाहरण: साउथबाउंड TLS को कॉन्फ़िगर करने का तरीका
इस सेक्शन में बताया गया है कि नेटवर्क कनेक्शन के बीच दक्षिण की तरफ़ (आउटगोइंग) TLS कनेक्शन कैसे सेट अप करें Edge Microgateway सर्वर और बैकएंड टारगेट ऐप्लिकेशन दोनों पर लागू होता है. नीचे दिए गए उदाहरण में, खुद हस्ताक्षर किए हुए सर्टिफ़िकेट.
1. शुरुआती सेटअप के चरण
- अपने सिस्टम पर
openssl.cnfफ़ाइल ढूंढें. उदाहरण के लिए,/etc/ssl/openssl.cnf. - बदलाव करने के लिए
opensssl.cnfफ़ाइल खोलें. पक्का करें कि आपकी कॉन्फ़िगरेशन फ़ाइल में
req_extensionsमौजूद हों. उदाहरण के लिए, आपके आपकी फ़ाइल में नीचे दी गई जानकारी से मिलती-जुलती जानकारी होनी चाहिए:[ req ] ... req_extensions = v3_req ... [ v3_req ] extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEnciphermentसही SNI एट्रिब्यूट जनरेट करने के लिए,
openssl.cnfमें यह छंद जोड़ें:[ alt_names ] DNS.1 = helloworld DNS.2 = localhost DNS.3 = localhost.localdomain DNS.4 = 127.0.0.1 DNS.5 = ::1 DNS.6 = fe80::1opensssl.cnfफ़ाइल का उदाहरण:[ req ] distinguished_name = req_distinguished_name attributes = req_attributes req_extensions = v3_req [ v3_req ] extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) localityName = Locality Name (eg, city) 0.organizationName = Organization Name (eg, company) organizationalUnitName = Organizational Unit Name (eg, section) commonName = Common Name (eg, fully qualified host name) commonName_max = 64 emailAddress = Email Address emailAddress_max = 64 [ req_attributes ] challengePassword = A challenge password challengePassword_min = 4 challengePassword_max = 20 [ alt_names ] DNS.1 = helloworld DNS.2 = localhost DNS.3 = localhost.localdomain DNS.4 = 127.0.0.1 DNS.5 = ::1 DNS.6 = fe80::1edgemicro configureनिर्देश चलाएं:edgemicro configure -o your_org -e your_env -u your_username
कॉन्फ़िगरेशन के बारे में ज़्यादा जानकारी के लिए, पहला चरण: Edge माइक्रोगेटवे कॉन्फ़िगर करें देखें.
वापस किए गए पासकोड और सीक्रेट क्रेडेंशियल कॉपी करें
edgemicro configure. कंटेनर को चलाने के लिए, आपको इन वैल्यू की ज़रूरत होगी. उदाहरण के लिए:The following credentials are required to start edge micro key: d9c34e1aff68ed969273c016699eabf48780e4f652242e72fc88a43e21252cb0 secret: 3bc95a71c86a3c8ce04537fbcb788158731t51dfc6cdec13b7c05aa0bd969430
2. Node.js टारगेट ऐप्लिकेशन बनाएं
.edgemicroडायरेक्ट्री मेंcd.यह बैश स्क्रिप्ट बनाएं. इसे कोई भी नाम दिया जा सकता है. जैसे:
keygen.sh.#!/bin/bash # generate ca openssl genrsa -out rootca.key 2048 openssl req -x509 -new -nodes -key rootca.key -sha256 -days 1024 -out rootca.pem # generate key openssl genrsa -out tls.key 2048 openssl req -new -key tls.key -out tls.csr # sign cert openssl x509 -req -in tls.csr -CA rootca.pem -CAkey rootca.key -CAcreateserial -out tls.crt -days 1024 -sha256 -extensions 'v3_req' -extfile path/openssl.cnf
bash फ़ाइल में, पक्का करें कि
openssl.cnfफ़ाइल का पाथ सही हो.bash फ़ाइल चलाएं. आपको सर्टिफ़िकेट की जानकारी देने के लिए कहा जाएगा. कृपया सामान्य नाम के लिए
hellworld.देखें कि नीचे दी गई फ़ाइलें बनाई गई हैं या नहीं:
rootca.keyrootca.pemtls.keytls.csrrootca.srltls.crt
server.jsनाम की एक नई फ़ाइल बनाएं.'use strict'; const express = require('express'); const https = require('https'); const fs = require('fs'); const options = { key: fs.readFileSync("tls.key"), cert: fs.readFileSync("tls.crt") }; // Constants const PORT = 9443; const HOST = '0.0.0.0'; // App const app = express(); app.get('/', (req, res) => { res.send('Hello world\n'); }); https.createServer(options, app).listen(PORT);server.jsवाली डायरेक्ट्री मेंpackage.jsonफ़ाइल बनाएं. उदाहरण के लिए:{ "name": "helloworld", "version": "1.0.0", "description": "", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node server.js" }, "author": "", "license": "ISC", "dependencies": { "express": "^4.16.4", "fs": "0.0.1-security", "https": "^1.0.0" } }डिपेंडेंसी पाने के लिए
npm installचलाएं.उसी डायरेक्ट्री में नई Dockerfile बनाएं जिसमें
server.jsहै, जहांWORKDIRआपके Node.js ऐप्लिकेशन के रूट का पाथ है:FROM node:8-alpine WORKDIR path-to-your-node-app COPY package*.json ./ RUN npm install COPY . . EXPOSE 9443 CMD [ "npm", "start" ]
Docker इमेज बनाएं:
docker build -t helloworld .ऐप्लिकेशन का नमूना शुरू करें:
docker run -P -p 9443:9443 --name helloworld helloworld
3. Apigee Edge पर इकाइयां बनाएं
इन सेटिंग की मदद से, Edge Microgateway-अवेयर प्रॉक्सी बनाएं. ज़्यादा जानकारी के लिए, Edge पर Edge Microgateway-aware API प्रॉक्सी बनाएं देखें.
- प्रॉक्सी का नाम:
edgemicro_local - संशोधन:
1 - बेसपाथ:
/local - टारगेट:
https://helloworld:9443
- प्रॉक्सी का नाम:
एपीआई प्रॉडक्ट बनाएं. ज़्यादा जानकारी के लिए, प्रॉडक्ट बनाना देखें.
डेवलपर बनाएं. ज़्यादा जानकारी के लिए, डेवलपर बनाना लेख पढ़ें.
डेवलपर ऐप्लिकेशन बनाएं. ज़्यादा जानकारी के लिए, डेवलपर ऐप्लिकेशन बनाना पर जाएं
4. कंटेनर चलाएं
Edge माइक्रो कॉन्फ़िगरेशन फ़ाइल को एडिटर में खोलें. उदाहरण के लिए:
vi $HOME/.edgemicro/myorg-test-config.yamledgemicroछंद में नीचे बताए गए तरीके से बदलाव करें. ध्यान दें कि इसमें बदलाव किए जा रहे हैंportऔरsslएट्रिब्यूट की वैल्यू में:edge_config: ... edgemicro: port: 8443 max_connections: 1000 config_change_poll_interval: 600 ssl: key: /opt/apigee/.edgemicro/tls.key cert: /opt/apigee/.edgemicro/tls.crt passphrase: admin123 rejectUnauthorized: true requestCert: false logging: ...$HOME/.edgemicroमें मौजूद Edge Microgateway कॉन्फ़िगरेशन फ़ाइल को base64-एन्कोड करने के लिए, नीचे दिया गया कमांड चलाएं:export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/your_org-your_env-config.yaml`
जहां
your_orgऔरyour_envऐसे संगठन और एनवायरमेंट हैं जिनका इस्तेमाल आपनेedgemicro configनिर्देश चलाया गया.निर्देश के आस-पास बैक-टिक (`) लगाना न भूलें. उदाहरण के लिए:
export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/docs-test-config.yaml`
Docker कंटेनर में, Edge Microgateway को शुरू करने के लिए, नीचे दिया गया कमांड चलाएं.
chown -R 100:101 ~/.edgemicro/ \ docker run -P -p 8443:8443 -d --name edgemicro \ -v path_to_your_edgemicro_dir:/opt/apigee/.edgemicro \ -v path_to_your_logs_dir:/opt/apigee/logs \ -e EDGEMICRO_PORT=8443 \ -e EDGEMICRO_ORG=$EDGEMICRO_ORG \ -e EDGEMICRO_ENV=$EDGEMICRO_ENV \ -e EDGEMICRO_KEY=$EDGEMICRO_KEY \ -e EDGEMICRO_SECRET=$EDGEMICRO_SECRET \ -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \ --link helloworld:helloworld gcr.io/apigee-microgateway/edgemicro
5. TLS कॉन्फ़िगरेशन की जांच करना
सेटअप की जांच करने के लिए, यहां दिया गया cURL निर्देश चलाएं. प्रतिस्थापन आपका बेसपाथ है जिसका इस्तेमाल आपने माइक्रोगेटवे-अवेयर प्रॉक्सी में किया है और एपीआई पासकोड, आपको Apigee Edge पर बनाए गए डेवलपर ऐप्लिकेशन से मिला है. उदाहरण के लिए:
curl https://localhost:8443/local -k -H "x-api-key: xxxx" -vआपको यह गड़बड़ी दिखनी चाहिए:
... * subject: C=CA; ST=Ontario; L=Toronto; O=Google Canada; OU=Google Cloud Platform; CN=edgemicro; emailAddress=srinandans@google.com * start date: Dec 10 02:12:22 2018 GMT * expire date: Sep 29 02:12:22 2021 GMT * issuer: C=CA; ST=Ontario; L=Toronto; O=Google Canada; OU=Google Cloud Platform; CN=edgemicro; emailAddress=srinandans@google.com * SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway. > GET /local HTTP/1.1 > Host: localhost:8443 > User-Agent: curl/7.54.0 > Accept: */* > x-api-key: 9fVC65pFj8LrmlPmVyxFjx4KgAHTxqSd > < HTTP/1.1 502 Bad Gateway < Date: Wed, 12 Dec 2018 05:25:01 GMT < Connection: keep-alive < Content-Length: 93 < * Connection #0 to host localhost left intact {"message":"unable to verify the first certificate","code":"UNABLE_TO_VERIFY_LEAF_SIGNATURE"}Edge माइक्रोगेटवे को फिर से चलाएं, लेकिन इस बार
NODE_EXTRA_CA_CERTSवैरिएबल जोड़ें.chown -R 100:101 ~/.edgemicro/ \ docker run -P -p 8443:8443 -d --name edgemicro \ -v path_to_your_edgemicro_dir:/opt/apigee/.edgemicro \ -v path_to_your_logs_dir:/opt/apigee/logs \ -e NODE_EXTRA_CA_CERTS=/opt/apigee/.edgemicro/rootca.pem \ -e EDGEMICRO_PORT=8443 \ -e EDGEMICRO_ORG=$EDGEMICRO_ORG \ -e EDGEMICRO_ENV=$EDGEMICRO_ENV \ -e EDGEMICRO_KEY=$EDGEMICRO_KEY \ -e EDGEMICRO_SECRET=$EDGEMICRO_SECRET \ -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \ --link helloworld:helloworld gcr.io/apigee-microgateway/edgemicro
नीचे दिया गया cURL निर्देश चलाएं. प्रतिस्थापन पहले की तरह ही बेसपाथ और एपीआई पासकोड को भी शामिल कर पाएंगे. उदाहरण के लिए:
curl https://localhost:8443/local -k -H "x-api-key: xxxx" -vआउटपुट की जाँच करें. सफल होने पर, आपको एक एचटीटीपी 200 स्थिति रिस्पॉन्स मिलेगा:
... > GET /local HTTP/1.1 > Host: localhost:8443 > User-Agent: curl/7.54.0 > Accept: */* > x-api-key: 9fVC65pFj8LrmlPmVyxFjx4KgAHTxqSd > < HTTP/1.1 200 OK < x-powered-by: Express < content-type: text/html; charset=utf-8 < etag: W/"c-M6tWOb/Y57lesdjQuHeB1P/qTV0" < date: Wed, 12 Dec 2018 05:49:28 GMT < x-response-time: 421 < Connection: keep-alive < Transfer-Encoding: chunked < Hello world
कस्टम प्लग इन जोड़ना
आप custom लिखकर माइक्रोगेटवे में नई सुविधाएं और क्षमताएं जोड़ सकते हैं प्लगिन. कस्टम प्लगिन की मदद से, अनुरोधों के साथ प्रोग्राम के हिसाब से इंटरैक्ट किया जा सकता है और माइक्रोगेटवे से होकर गुज़रने वाली प्रतिक्रियाएं भी.
Edge माइक्रोगेटवे पर प्लगिन लागू करने के लिए, आपके पास दो विकल्प हैं इंस्टेंस जो किसी डॉक कंटेनर में चल रहा है:
इस सेक्शन के बाकी हिस्से के लिए यह माना जाता है कि जिसे आपको लिखने और कॉन्फ़िगर करने का तरीका पता है स्टैंडर्ड Edge Microgateway सेटअप के लिए प्लगिन. अगर ऐसा नहीं है, तो कस्टम प्लगिन डेवलप करना देखें.
विकल्प A: प्लगिन डायरेक्ट्री को किसी वॉल्यूम पर माउंट करें
(v.2.5.27 में जोड़ा गया) वॉल्यूम माउंट के ज़रिए प्लगिन जोड़ने के चरण ये हैं
जैसा कि Edge Microgateway में किसी भी कस्टम प्लगिन को जोड़ने के लिए ज़रूरी है. टास्क कब शुरू होगा
जब आप Docker कंटेनर चलाते हैं, तो आप अपने स्थानीय ब्राउज़र पर प्लगिन डायरेक्ट्री को माउंट कर सकते हैं
कंटेनर माउंट पॉइंट पर सिस्टम (वॉल्यूम) का मान, जो कि /opt/apigee/plugins है.
इसके बाद, Edge Microgateway कॉन्फ़िगरेशन फ़ाइल में लोकल वॉल्यूम डायरेक्ट्री के बारे में बताएं.
नीचे दिए गए चरण में, Docker माउंट पॉइंट का इस्तेमाल करने का तरीका बताया गया है. प्लगिन.
Edge माइक्रोगेटवे को बंद करें:
edgemicro stopअपने कस्टम प्लगिन के लिए एक डायरेक्ट्री बनाएं. उदाहरण के लिए,
$HOME/edgemicro/custom/pluginsEdge Microgateway कॉन्फ़िगरेशन फ़ाइल में कस्टम प्लगिन डायरेक्ट्री जोड़ें. उदाहरण के लिए:
plugins: dir: $HOME/edgemicro/custom/plugins sequence: - oauth - response-uppercase ````कोई आसान प्लग इन लिखें में दिए गए निर्देशों के मुताबिक अपने प्लग इन लिखें और उनकी जांच करें. कृपया अपने प्लग इन कोड को सही डायरेक्ट्री स्ट्रक्चर में रखें. उदाहरण के लिए:
custom | |-- plugins | |- response-uppercase | |- index.js | |- package.json |- request-headers | | - index.js | - package.jsonDocker कंटेनर को यहां दिए गए निर्देश से मिलते-जुलते निर्देश के साथ चलाएं, जहां Docker वॉल्यूम पर, प्लगिन डायरेक्ट्री माउंट करने के लिए,
-vविकल्प का इस्तेमाल करें. इस उदाहरण के लिए, नीचे दिए गए कमांड का इस्तेमाल करके, प्लगिन डायरेक्ट्री$HOME/edgemicro/custom/plugins(जहां कस्टम प्लगिन मौजूद होता है) को कंटेनर के माउंट पॉइंट/opt/apigee/pluginsपर मैप किया जाता है:chown -R 100:101 ~/.edgemicro/ \ docker run -P -p 8000:8000 -d --name edgemicro \ -v /var/tmp:/opt/apigee/logs \ -v $HOME/edgemicro/custom/plugins:/opt/apigee/plugins \ -e EDGEMICRO_PROCESSES=1 \ -e EDGEMICRO_ORG=jdoe \ -e EDGEMICRO_ENV=test \ -e EDGEMICRO_KEY=39c4b561100cd7f258768d1072f3e1d7c17b5f36a18fe89972bb5c9ce7e58fb \ -e EDGEMICRO_SECRET=f5f9e239a38b4e6cc99c2aa067716a84aebdcff9580a7925fc500e402b1a5fa \ -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \ -e SERVICE_NAME=edgemicro \ --security-opt=no-new-privileges \ --cap-drop=ALL gcr.io/apigee-microgateway/edgemicro:latestप्लगिन की जांच करने के लिए, अपने एपीआई को कॉल करें.
ज़्यादा जानकारी के लिए, वॉल्यूम [शेयर किए गए फ़ाइल सिस्टम] देखें.
विकल्प B: कंटेनर में प्लगिन बनाना
इस विकल्प में, अपने कंटेनर में प्लगिन बनाए जाते हैं.
1. अपने प्लगिन का पैकेज तैयार करें
कोई आसान प्लग इन लिखें में दिए गए निर्देशों के मुताबिक अपने प्लग इन लिखें और उनकी जांच करें.
अपने प्लग इन कोड को सही डायरेक्ट्री स्ट्रक्चर में रखें. प्लग इन डायरेक्ट्री को एक तय स्ट्रक्चर का पालन करना होगा. इस उदाहरण में उस स्ट्रक्चर के बारे में बताया गया है जिसे आपको फ़ॉलो करना होगा. इसमें
response-uppercaseऔरrequest-headersकस्टम प्लग इन कोड वाले फ़ोल्डर के नाम (ये नाम सिर्फ़ उदाहरण हैं, आपके फ़ोल्डर के नाम अलग हो सकते हैं):plugin | |-- plugins | |- response-uppercase | |- index.js | |- package.json |- request-headers | | - index.js | - package.jsoncdकोpluginफ़ोल्डर में.pluginफ़ोल्डर में, पूरेpluginsफ़ोल्डर को ज़िप करें:zip -r plugins.zip plugins/
2. Docker इमेज बनाएं
इसके बाद, Edge Microgateway की इमेज में अपना प्लगिन कोड जोड़ने के लिए, Dockerfile बनाएं.
- जिस डायरेक्ट्री में ZIP फ़ाइल मौजूद है उसी डायरेक्ट्री में,
Dockerfileनाम की नई फ़ाइल बनाएं. Dockerfileमें यह कोड जोड़ें और फ़ाइल सेव करें:USER root RUN apk update && \ apk upgrade && \ apk add zipapk add zip && \ mkdir /opt/apigee/customplugins && \ chown apigee:apigee /opt/apigee/customplugins COPY plugins.zip /opt/apigee/customplugins RUN su - apigee -c "unzip /opt/apigee/customplugins/plugins.zip -d /opt/apigee/customplugins" EXPOSE 8000 EXPOSE 8443 USER apigee ENTRYPOINT ["entrypoint"]अपने प्लगिन की मदद से, Edge Microgateway Docker की नई इमेज बनाएं:
docker build -t image-name .उदाहरण के लिए:
docker build -t edgemicroplugins .
3. Edge Microgateway कॉन्फ़िगरेशन को अपडेट करें
अब प्लगिन पैक हो गए हैं, इसलिए आपको उन्हें Edge Microgateway में जोड़ना होगा कॉन्फ़िगरेशन फ़ाइल है.
Edge Microgateway कॉन्फ़िगरेशन फ़ाइल को एडिटर में खोलें:
$HOME/.edgemicro/org-env-config.yaml
उदाहरण के लिए:
vi $HOME/.edgemicro/myorg-test-config.yaml
कॉन्फ़िगरेशन फ़ाइल में प्लगिन डायरेक्ट्री जोड़ें. नीचे दिए गए उदाहरण में
dirएट्रिब्यूट, प्लगिन कोड की जगह के बारे में बताता है (जिसे आपने बताया है Dockerfile में जोड़ें). आपको प्लगिन डायरेक्ट्री का नाम भी बताना होगा, जो नीचे दिए गए उदाहरण मेंresponse-uppercaseहै.edgemicro: ... plugins: dir: /opt/apigee/plugins sequence: - oauth - response-uppercase
4. माइक्रोगेटवे शुरू करें
आखिर में, आपको कंटेनर में माइक्रोगेटवे शुरू करना होगा.
Edge Microgateway कॉन्फ़िगरेशन फ़ाइल को base64-एन्कोड करने के लिए, नीचे दिया गया कमांड चलाएं
$HOME/.edgemicroमें स्थित:export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/your_org-your_env-config.yaml`
जहां
your_orgऔरyour_envऐसे संगठन और एनवायरमेंट हैं जिनका इस्तेमाल आपनेedgemicro configनिर्देश चलाया गया.निर्देश के आस-पास बैक-टिक (`) लगाना न भूलें. उदाहरण के लिए:
export EDGEMICRO_CONFIG=`base64 $HOME/.edgemicro/docs-test-config.yaml`
एज माइक्रोगेटवे को कंटेनर के तौर पर चलाएं. निर्देश कई एनवायरमेंट वैरिएबल सेट करता है जिनका इस्तेमाल एज माइक्रोगेटवे को शुरू करने के लिए कंटेनर रनटाइम में किया जाता है:
docker run -P -p 8000:8000 -d --name edgemicroplugins \ -e EDGEMICRO_PLUGIN_DIR=/opt/apigee/customplugins/plugins \ -e EDGEMICRO_ORG=your_org \ -e EDGEMICRO_ENV=your_env \ -e EDGEMICRO_KEY=your_key \ -e EDGEMICRO_SECRET=your_secret \ -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \ -e SERVICE_NAME=edgemicroplugins image_name
उदाहरण के लिए:
docker run -P -p 8000:8000 -d --name edgemicroplugins \ -e EDGEMICRO_PLUGIN_DIR=/opt/apigee/customplugins/plugins \ -e EDGEMICRO_ORG=docs \ -e EDGEMICRO_ENV=test \ -e EDGEMICRO_KEY=d9c34e1aff68ed969273b016699eabf48780e4f652242e72fc88a23e21252cb0 \ -e EDGEMICRO_SECRET=3bc95a71c86a3c8ce04137fbcb788158731t51dfc6cdec13b7c05aa0bd969430 \ -e "EDGEMICRO_CONFIG=$EDGEMICRO_CONFIG" \ -e SERVICE_NAME=edgemicroplugins edgemicroplugins
प्लग इन की जांच करने के लिए अपने एपीआई को कॉल करें:
जांच करें कि प्लगिन कोड आपके एपीआई को कॉल करके काम करता है या नहीं और पुष्टि करें कि आउटपुट उम्मीद के मुताबिक है:
curl -i http://localhost:8000/hello -H "x-api-key:apikey"
उदाहरण के लिए,
response-uppercaseप्लगिन इस तरह का जवाब दिखा सकता है:curl -i http://localhost:8000/hello -H "x-api-key:PydUKRDGIXRqF2xh4usn1FLHbhGKVIz" HELLO, WORLD!