आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
इस विषय में, Docker कंटेनर में Edge Microgateway चलाने का तरीका बताया गया है. इस विषय में बताए गए चरणों के लिए, यह ज़रूरी है कि आपको Docker, Docker कमांड, और Edge Microgateway के सेटअप और कॉन्फ़िगरेशन के बारे में बुनियादी जानकारी हो. ज़्यादा जानकारी के लिए, Docker और Edge Microgateway के दस्तावेज़ देखें
ज़रूरी शर्तें
Docker कंटेनर में Edge Microgateway चलाने से पहले, आपको ये काम करने होंगे:
अपने Apigee संगठन/एनवायरमेंट के लिए Edge Microgateway को कॉन्फ़िगर करें:
edgemicro configure -o your_org -e your_env -u your_username
कॉन्फ़िगरेशन के बारे में ज़्यादा जानकारी के लिए, पहला हिस्सा: Edge Microgateway कॉन्फ़िगर करना देखें.
कॉन्फ़िगरेशन के चरण पूरे करने के बाद, कॉन्फ़िगरेशन फ़ाइल ढूंढें. डिफ़ॉल्ट जगह यह है:
$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 Microgateway के बारे में जानकारी रखने वाली प्रॉक्सी, एपीआई प्रॉडक्ट, डेवलपर, और डेवलपर ऐप्लिकेशन शामिल हैं. पूरी जानकारी के लिए, Apigee Edge पर इकाइयां बनाना लेख पढ़ें.
Edge Micro को Docker कंटेनर के तौर पर चलाना
Edge Microgateway के लिए Docker इमेज डाउनलोड करें:
docker pull gcr.io/apigee-microgateway/edgemicro:latest
अगले चरणों पर जाने से पहले, पक्का करें कि आपने ज़रूरी शर्तें सेक्शन में दिए गए सभी चरण पूरे कर लिए हों.
$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`
Edge Microgateway को कंटेनर के तौर पर चलाएं. यह कमांड कई एनवायरमेंट वैरिएबल सेट करती है. इनका इस्तेमाल कंटेनर रनटाइम, Edge Microgateway को शुरू करने के लिए करता है:
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होस्ट के लिए सभी पोर्ट पब्लिश करें. Docker run का रेफ़रंस भी देखें. -pकिसी एक पोर्ट या पोर्ट की रेंज को साफ़ तौर पर मैप करें. Docker run का रेफ़रंस भी देखें. -dडिटैच किए गए मोड में चलाएं. Docker run का रेफ़रंस भी देखें. -v, --volumeइससे वॉल्यूम माउंट के बारे में पता चलता है. ध्यान दें कि अगर आपने Docker कंटेनर में TLS का इस्तेमाल करने के लिए Edge Microgateway को कॉन्फ़िगर किया है, तो आपको लॉग फ़ाइल डायरेक्ट्री को माउंट करने पर पोर्ट 8443 को ऐक्सेस करने की अनुमति देनी होगी. VOLUME [shared filesystems] भी देखें. Docker कंटेनर में टीएलएस का इस्तेमाल करना भी देखें. EDGEMICRO_ORGउस Apigee संगठन का नाम जिसका इस्तेमाल Edge Microgateway को कॉन्फ़िगर करने के लिए किया गया था. EDGEMICRO_ENVApigee एनवायरमेंट का नाम, जिसका इस्तेमाल Edge Microgateway को कॉन्फ़िगर करने के लिए किया गया था. EDGEMICRO_PROCESSESशुरू की जाने वाली प्रोसेस की संख्या. EDGEMICRO_KEYEdge Microgateway को कॉन्फ़िगर करते समय मिला हुआ कुंजी. EDGEMICRO_SECRETEdge Microgateway को कॉन्फ़िगर करते समय मिला सीक्रेट. EDGEMICRO_CONFIGऐसा वैरिएबल जिसमें base64 के कोड में बदली गई Edge Microgateway कॉन्फ़िगरेशन फ़ाइल मौजूद हो. SERVICE_NAMEअगर Kubernetes का इस्तेमाल किया जा रहा है, तो यह पैरामीटर अपने-आप भर जाता है. इसके अलावा, इसे अपनी पसंद के मुताबिक सेट किया जा सकता है. अगर आपने कोई नाम नहीं दिया है, तो सेवा का नाम defaultपर सेट हो जाता है.DEBUGडीबग करने की सुविधा चालू करने के लिए, इसे *पर सेट करें.HTTP_PROXYHTTPS_PROXYइसका इस्तेमाल तब करें, जब Edge Microgateway फ़ायरवॉल के पीछे चल रहा हो और गेटवे, Apigee Edge से कम्यूनिकेट न कर पा रहा हो. ज़्यादा जानकारी के लिए, कंपनी के फ़ायरवॉल के पीछे 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 फ़ॉर्मैट में एक या उससे ज़्यादा भरोसेमंद सर्टिफ़िकेट शामिल हैं. ज़्यादा जानकारी के लिए, टीएलएस सर्टिफ़िकेट देखें. --security-opt(ज़रूरी नहीं) Docker की सुरक्षा से जुड़े विकल्प सेट करता है. Docker के दस्तावेज़ में, सुरक्षा कॉन्फ़िगरेशन देखें. --cap-drop(ज़रूरी नहीं) यह कंटेनर में इस्तेमाल की जा सकने वाली Linux की सुविधाओं की सीमाएं सेट करता है. Docker के दस्तावेज़ में, रनटाइम के दौरान मिलने वाले विशेषाधिकार और Linux की सुविधाएं देखें. उदाहरण के लिए:
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 Microgateway शुरू करने के बाद, इसे एपीआई कॉल किए जा सकते हैं.
उदाहरण के लिए, अगर आपके एपीआई का बेसपाथ /hello है, तो:
http://localhost:8000/hello
आउटपुट का उदाहरण:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
अगर आपको यह जवाब दिखता है, तो इसका मतलब है कि Edge Microgateway ने एपीआई कॉल को सही तरीके से हैंडल किया है. हालांकि, डिफ़ॉल्ट रूप से 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"
अगर आपको एपीआई कुंजियों और OAuth टोकन की मदद से, Edge Microgateway के ज़रिए पुष्टि किए गए एपीआई कॉल करने के बारे में ज़्यादा जानना है, तो चौथा हिस्सा: Edge Microgateway को सुरक्षित करना देखें.
Edge Microgateway को बंद किया जा रहा है
Edge Microgateway को बंद करने के लिए, इस Docker कमांड का इस्तेमाल करें:
docker stop edgemicro
Edge Microgateway को रीस्टार्ट करना
Edge Microgateway को बंद करने के बाद, इस Docker कमांड का इस्तेमाल करके इसे फिर से चालू किया जा सकता है:
docker start edgemicro
Docker कंटेनर में टीएलएस का इस्तेमाल करना
इस सेक्शन में, Docker कंटेनर में चल रहे Edge Microgateway के लिए टीएलएस को कॉन्फ़िगर करने का तरीका बताया गया है. आने वाले अनुरोधों (नॉर्थबाउंड दिशा) के लिए, Edge Microgateway सर्वर को टीएलएस का इस्तेमाल करने के लिए कॉन्फ़िगर किया जा सकता है. साथ ही, टारगेट एंडपॉइंट (साउथबाउंड दिशा) पर भेजे जाने वाले अनुरोधों के लिए, Edge Microgateway को टीएलएस क्लाइंट के तौर पर कॉन्फ़िगर किया जा सकता है.
सर्टिफ़िकेट फ़ाइलें कहां रखें
Edge Microgateway चलाने वाले 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 फ़ॉर्मैट में एक या इससे ज़्यादा भरोसेमंद सर्टिफ़िकेट शामिल हैं. इस पैरामीटर का इस्तेमाल कैसे किया जाता है, यह जानने के लिए नॉर्थबाउंड टीएलएस को कॉन्फ़िगर करने का तरीका और साउथबाउंड टीएलएस को कॉन्फ़िगर करने का तरीका लेख में दिए गए उदाहरण देखें.
उदाहरण के लिए:
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
Edge Micro को Docker कंटेनर के तौर पर चलाना भी देखें.
TLS की पुष्टि करने की सुविधा बंद करना
हालांकि, ऐसा करने का सुझाव नहीं दिया जाता, लेकिन कुछ मामलों में आपको कंटेनर में चल रहे Edge Microgateway के लिए टीएलएस की पुष्टि करने की सुविधा बंद करनी पड़ सकती है. टीएलएस को बंद करने की सुविधा, Edge Microgateway Docker कंटेनर में डिफ़ॉल्ट रूप से मौजूद नहीं होती. इस टास्क को पूरा करने के लिए, आपको Edge Microgateway के लिए एक कस्टम Docker इमेज बनानी होगी. कस्टम इमेज बनाने और टीएलएस की पुष्टि करने की सुविधा बंद करने के बारे में सामान्य निर्देश यहां दिए गए हैं.
Edge Microgateway की सोर्स रिपॉज़िटरी को
https://github.com/apigee-internal/microgatewayसे क्लोन करें या डाउनलोड करें.cdको सोर्स कोड डायरेक्ट्री में मौजूदmicrogateway/kubernetes/docker/edgemicroडायरेक्ट्री में जोड़ें.उदाहरण के लिए:
cd $HOME/git/microgateway/kubernetes/docker/edgemicroentrypoint.shफ़ाइल खोलें औरNODE_TLS_REJECT_UNAUTHORIZEDएनवायरमेंट वैरिएबल को स्वीकार करने के लिए कोड में बदलाव करें. बाद में, कंटेनर चलाने के दौरान, आपको इस वैरिएबल के लिए वैल्यू तय करनी होगी.Docker कंटेनर बनाएं:
docker build -t edgemicro .कंटेनर को चलाने के दौरान,
-e NODE_TLS_REJECT_UNAUTHORIZED = 1विकल्प चुनें. उदाहरण के लिए:
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
उदाहरण: नॉर्थबाउंड टीएलएस को कॉन्फ़िगर करने का तरीका
इस सेक्शन में, Edge Microgateway सर्वर पर नॉर्थबाउंड (आने वाला) टीएलएस कनेक्शन सेट अप करने का तरीका बताया गया है. नॉर्थबाउंड टीएलएस की मदद से क्लाइंट, Edge Microgateway को एपीआई कॉल करते समय HTTPS का इस्तेमाल कर सकते हैं. यहां दिए गए उदाहरण में, खुद हस्ताक्षर किए हुए सर्टिफ़िकेट का इस्तेमाल किया गया है.
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::1उदाहरण
opensssl.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 कनेक्शन सेट अप करने के लिए ज़रूरी सर्टिफ़िकेट और कुंजियां जनरेट करें:
cdको$HOME/.edgemicroडायरेक्ट्री में जोड़ें.नीचे दी गई बैश स्क्रिप्ट बनाएं. इसे अपनी पसंद का कोई भी नाम दिया जा सकता है. उदाहरण के लिए:
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
बैश फ़ाइल में, पक्का करें कि
openssl.cnfफ़ाइल का पाथ सही हो.बैश फ़ाइल को एक्ज़ीक्यूट करें. आपको सर्टिफ़िकेट की जानकारी देने के लिए कहा जाएगा. कॉमन नेम के लिए,
localhostका इस्तेमाल करना न भूलें.देखें कि ये फ़ाइलें बनाई गई हैं या नहीं:
rootca.keyrootca.pemtls.keytls.csrrootca.srltls.crt
3. Edge Microgateway की कॉन्फ़िगरेशन फ़ाइल में बदलाव करना
किसी एडिटर में Edge Micro की कॉन्फ़िगरेशन फ़ाइल खोलें. उदाहरण के लिए:
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`
Edge Micro को Docker कंटेनर के तौर पर चलाना भी देखें.
4. कंटेनर चलाना
Edge Microgateway के साथ Docker कंटेनर चलाने के लिए, यह कमांड चलाएं:
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
कमांड में इस्तेमाल किए गए इन पैरामीटर पर ध्यान दें. ये Edge Micro को Docker कंटेनर के तौर पर चलाएं में बताई गई बुनियादी कमांड से अलग हैं.
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 के वर्बोस आउटपुट में, टीएलएस हैंडशेकिंग का हर चरण दिखता है. अगर आपको एचटीटीपी 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!
उदाहरण: साउथबाउंड टीएलएस को कॉन्फ़िगर करने का तरीका
इस सेक्शन में, 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::1उदाहरण
opensssl.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 Microgateway कॉन्फ़िगर करना देखें.
edgemicro configureसे मिले क्रेडेंशियल और सीक्रेट कुंजी को कॉपी करें. कंटेनर को चलाने के लिए, आपको इन वैल्यू की ज़रूरत होगी. उदाहरण के लिए:The following credentials are required to start edge micro key: d9c34e1aff68ed969273c016699eabf48780e4f652242e72fc88a43e21252cb0 secret: 3bc95a71c86a3c8ce04537fbcb788158731t51dfc6cdec13b7c05aa0bd969430
2. Node.js टारगेट ऐप्लिकेशन बनाना
cdको.edgemicroडायरेक्ट्री में जोड़ें.नीचे दी गई बैश स्क्रिप्ट बनाएं. इसे अपनी पसंद का कोई भी नाम दिया जा सकता है. उदाहरण के लिए:
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
बैश फ़ाइल में, पक्का करें कि
openssl.cnfफ़ाइल का पाथ सही हो.बैश फ़ाइल को एक्ज़ीक्यूट करें. आपको सर्टिफ़िकेट की जानकारी देने के लिए कहा जाएगा. कॉमन नेम के लिए,
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चलाएं.server.jsवाली डायरेक्ट्री में एक नई Dockerfile बनाएं. यहां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 build -t helloworld .सैंपल ऐप्लिकेशन शुरू करें:
docker run -P -p 9443:9443 --name helloworld helloworld
3. Apigee Edge पर इकाइयां बनाना
इन सेटिंग के साथ, Edge Microgateway के बारे में जानने वाली प्रॉक्सी बनाएं. ज़्यादा जानकारी के लिए, Edge पर Edge Microgateway के साथ काम करने वाली एपीआई प्रॉक्सी बनाना लेख पढ़ें.
- प्रॉक्सी का नाम:
edgemicro_local - बदलाव:
1 - बेसपाथ:
/local - टारगेट:
https://helloworld:9443
- प्रॉक्सी का नाम:
एपीआई प्रॉडक्ट बनाएं. ज़्यादा जानकारी के लिए, प्रॉडक्ट बनाना लेख पढ़ें.
डेवलपर बनाएं. ज़्यादा जानकारी के लिए, डेवलपर खाता बनाना लेख पढ़ें.
डेवलपर ऐप्लिकेशन बनाएं. ज़्यादा जानकारी के लिए, डेवलपर ऐप्लिकेशन बनाना लेख पढ़ें
4. कंटेनर चलाना
किसी एडिटर में Edge Micro की कॉन्फ़िगरेशन फ़ाइल खोलें. उदाहरण के लिए:
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 शुरू करने के लिए, यह कमांड चलाएं.
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 Microgateway को फिर से चलाएं. हालांकि, इस बार
NODE_EXTRA_CA_CERTSवैरिएबल जोड़ें.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
कस्टम प्लगिन जोड़ना
कस्टम प्लगिन लिखकर, माइक्रोगेटवे में नई सुविधाएं और क्षमताएं जोड़ी जा सकती हैं. कस्टम प्लगिन की मदद से, प्रोग्राम के हिसाब से उन अनुरोधों और जवाबों के साथ इंटरैक्ट किया जा सकता है जो माइक्रोगेटवे से होकर गुज़रते हैं.
डॉकर कंटेनर में चल रहे Edge Microgateway इंस्टेंस में प्लगिन डिप्लॉय करने के लिए, आपके पास ये दो विकल्प हैं:
इस सेक्शन के बाकी हिस्से में यह माना गया है कि आपको स्टैंडर्ड Edge Microgateway सेटअप के लिए प्लगिन लिखने और उन्हें कॉन्फ़िगर करने के बारे में जानकारी है. अगर ऐसा नहीं है, तो कस्टम प्लगिन डेवलप करना लेख पढ़ें.
विकल्प A: प्लगिन डायरेक्ट्री को किसी वॉल्यूम पर माउंट करना
(v.2.5.27 में जोड़ा गया) वॉल्यूम माउंट के ज़रिए प्लगिन जोड़ने का तरीका, Edge Microgateway में कोई कस्टम प्लगिन जोड़ने के तरीके जैसा ही है. Docker कंटेनर को चलाने के दौरान, प्लगिन डायरेक्ट्री को अपने लोकल सिस्टम (वॉल्यूम) पर कंटेनर माउंट पॉइंट पर माउंट किया जा सकता है. यह /opt/apigee/plugins होता है.
इसके बाद, Edge Microgateway की कॉन्फ़िगरेशन फ़ाइल में लोकल वॉल्यूम डायरेक्ट्री की जानकारी दें.
यहां दिए गए चरणों में, कस्टम प्लगिन शामिल करने के लिए, Docker माउंट पॉइंट का इस्तेमाल करने का तरीका बताया गया है.
Edge Microgateway को बंद करने के लिए:
edgemicro stopअपने कस्टम प्लगिन के लिए एक डायरेक्ट्री बनाएं. उदाहरण के लिए,
$HOME/edgemicro/custom/pluginsकस्टम प्लगिन डायरेक्ट्री को Edge 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 कंटेनर को यहां दिए गए कमांड की तरह चलाएं. इसमें
-vविकल्प का इस्तेमाल करके, Docker वॉल्यूम पर प्लगिन डायरेक्ट्री को माउंट किया जाता है. यहां दिए गए उदाहरण में, प्लगिन डायरेक्ट्री$HOME/edgemicro/custom/plugins(जहां कस्टम प्लगिन मौजूद है) को कंटेनर के माउंट पॉइंट/opt/apigee/pluginsपर मैप किया गया है: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प्लगिन की जांच करने के लिए, अपने एपीआई को कॉल करें.
ज़्यादा जानकारी के लिए, VOLUME [shared filesystems] देखें.
विकल्प 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. डॉकर इमेज बनाना
इसके बाद, 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. माइक्रोगेटवे शुरू करना
आखिर में, आपको कंटेनर में माइक्रोगेटवे शुरू करना होगा.
$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`
Edge Microgateway को कंटेनर के तौर पर चलाएं. यह कमांड कई एनवायरमेंट वैरिएबल सेट करती है. इनका इस्तेमाल कंटेनर रनटाइम, Edge Microgateway को शुरू करने के लिए करता है:
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!