Edge माइक्रोगेटवे के लिए कार्रवाई और कॉन्फ़िगरेशन रेफ़रंस

आपको Apigee Edge के दस्तावेज़ दिख रहे हैं.
Apigee X के दस्तावेज़ पर जाएं.
info

Edge Microgateway v. 3.0.x

इस विषय में, Edge Microgateway को मैनेज और कॉन्फ़िगर करने का तरीका बताया गया है.

इंटरनेट कनेक्शन होने पर, Edge Microgateway को अपग्रेड करना

इस सेक्शन में, Edge Microgateway के मौजूदा इंस्टॉलेशन को अपग्रेड करने का तरीका बताया गया है. अगर इंटरनेट कनेक्शन के बिना काम किया जा रहा है, तो क्या इंटरनेट कनेक्शन के बिना Edge Microgateway इंस्टॉल किया जा सकता है? देखें.

Apigee का सुझाव है कि प्रोडक्शन एनवायरमेंट को अपग्रेड करने से पहले, नए वर्शन के साथ अपने मौजूदा कॉन्फ़िगरेशन की जांच करें.

  1. Edge Microgateway के नए वर्शन पर अपग्रेड करने के लिए, यह npm कमांड चलाएं:
    npm upgrade edgemicro -g

    Edge Microgateway के किसी खास वर्शन पर अपग्रेड करने के लिए, आपको अपग्रेड कमांड में वर्शन नंबर बताना होगा. अगर वर्शन नंबर नहीं दिया जाता है, तो नया वर्शन इंस्टॉल हो जाएगा. उदाहरण के लिए, वर्शन 3.0.2 पर अपग्रेड करने के लिए, इस कमांड का इस्तेमाल करें:

    npm upgrade edgemicro@3.0.2 -g
  2. वर्शन नंबर देखें। उदाहरण के लिए, अगर आपने 3.0.2 वर्शन इंस्टॉल किया है, तो:
    edgemicro --version
    current nodejs version is v12.5.0
    current edgemicro version is 3.0.2
        
  3. आखिर में, edgemicro-auth प्रॉक्सी के नए वर्शन पर अपग्रेड करें:
    edgemicro upgradeauth -o org_name -e env_name -u username

कॉन्फ़िगरेशन में बदलाव करना

आपको इन कॉन्फ़िगरेशन फ़ाइलों के बारे में जानकारी होनी चाहिए:

  • डिफ़ॉल्ट सिस्टम कॉन्फ़िगरेशन फ़ाइल
  • Edge Microgateway के नए इंस्टेंस के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल
  • इंस्टेंस चलाने के लिए डाइनैमिक कॉन्फ़िगरेशन फ़ाइल

इस सेक्शन में, इन फ़ाइलों के बारे में बताया गया है. साथ ही, इनमें बदलाव करने के बारे में ज़रूरी जानकारी दी गई है.

डिफ़ॉल्ट सिस्टम कॉन्फ़िगरेशन फ़ाइल

Edge Microgateway इंस्टॉल करने पर, डिफ़ॉल्ट सिस्टम कॉन्फ़िगरेशन फ़ाइल यहां सेव होती है:

prefix/lib/node_modules/edgemicro/config/default.yaml

जहां prefix, npm प्रीफ़िक्स डायरेक्ट्री है. अगर आपको यह डायरेक्ट्री नहीं मिल रही है, तो Edge Microgateway कहां इंस्टॉल किया गया है देखें.

अगर सिस्टम की कॉन्फ़िगरेशन फ़ाइल में बदलाव किया जाता है, तो आपको Edge Microgateway को फिर से शुरू, कॉन्फ़िगर, और रीस्टार्ट करना होगा:

edgemicro init
edgemicro configure [params]
edgemicro start [params]

Edge Microgateway के नए इंस्टेंस के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल

edgemicro init को चलाने पर, सिस्टम कॉन्फ़िगरेशन फ़ाइल (जिसके बारे में ऊपर बताया गया है), default.yaml, ~/.edgemicro डायरेक्ट्री में सेव हो जाती है.

अगर ~/.edgemicro में कॉन्फ़िगरेशन फ़ाइल बदली जाती है, तो आपको Edge Microgateway को फिर से कॉन्फ़िगर और रीस्टार्ट करना होगा:

edgemicro stop
edgemicro configure [params]
edgemicro start [params]

इंस्टेंस चलाने के लिए डाइनैमिक कॉन्फ़िगरेशन फ़ाइल

edgemicro configure [params] को चलाने पर, ~/.edgemicro में एक डाइनैमिक कॉन्फ़िगरेशन फ़ाइल बन जाती है. फ़ाइल का नाम इस पैटर्न के हिसाब से रखा जाता है: org-env-config.yaml, जहां org और env आपके Apigee Edge संगठन और एनवायरमेंट के नाम हैं. इस फ़ाइल का इस्तेमाल करके, कॉन्फ़िगरेशन में बदलाव किए जा सकते हैं. इसके बाद, उन्हें बिना किसी डाउनटाइम के फिर से लोड किया जा सकता है. उदाहरण के लिए, अगर आपने कोई प्लगिन जोड़ा और कॉन्फ़िगर किया है, तो कॉन्फ़िगरेशन को फिर से लोड किया जा सकता है. इसके लिए, आपको डाउनटाइम की ज़रूरत नहीं होगी. इसके बारे में यहां बताया गया है.

अगर Edge Microgateway चल रहा है (ज़ीरो-डाउनटाइम विकल्प):

  1. Edge Microgateway कॉन्फ़िगरेशन को फिर से लोड करें:
    edgemicro reload -o org_name -e env_name -k key -s secret

    कहां:

    • org_name आपके Edge संगठन का नाम है (यह ज़रूरी है कि आप संगठन के एडमिन हों).
    • env_name आपके संगठन का एक एनवायरमेंट है, जैसे कि "test" या "prod".
    • key वह पासकोड है जिसे कॉन्फ़िगरेशन कमांड ने पहले दिखाया था.
    • secret वह पासकोड है जिसे कॉन्फ़िगरेशन कमांड ने पहले दिखाया था.

    उदाहरण के लिए

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188...78b6181d000723 \
      -s 05c14356e42ed1...4e34ab0cc824

अगर Edge Microgateway बंद है, तो:

  1. Edge Microgateway को रीस्टार्ट करें:
    edgemicro start -o org_name -e env_name -k key -s secret

    कहां:

    • org_name आपके Edge संगठन का नाम है (यह ज़रूरी है कि आप संगठन के एडमिन हों).
    • env_name आपके संगठन का एक एनवायरमेंट है, जैसे कि "टेस्ट" या "प्रोड".
    • key वह पासकोड है जिसे कॉन्फ़िगरेशन कमांड ने पहले दिखाया था.
    • secret वह पासकोड है जिसे कॉन्फ़िगरेशन कमांड ने पहले दिखाया था.

    उदाहरण के लिए:

    edgemicro start -o docs -e test -k 701e70ee718ce...b6181d000723 \
      -s 05c1435...e34ab0cc824

यहां कॉन्फ़िगरेशन फ़ाइल का एक उदाहरण दिया गया है. कॉन्फ़िगरेशन फ़ाइल की सेटिंग के बारे में ज़्यादा जानने के लिए, Edge Microgateway configuration reference देखें.

edge_config:
  bootstrap: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test
  jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey'
  managementUri: 'https://api.enterprise.apigee.com'
  vaultName: microgateway
  authUri: 'https://%s-%s.apigee.net/edgemicro-auth'
  baseUri: >-
    https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s
  bootstrapMessage: Please copy the following property to the edge micro agent config
  keySecretMessage: The following credentials are required to start edge micro
  products: 'https://docs-test.apigee.net/edgemicro-auth/products'
edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
headers:
  x-forwarded-for: true
  x-forwarded-host: true
  x-request-id: true
  x-response-time: true
  via: true
oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey'
analytics:
  uri: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test

एनवायरमेंट वैरिएबल सेट करना

कमांड-लाइन इंटरफ़ेस के ऐसे कमांड जिनके लिए आपके Edge संगठन और एनवायरमेंट की वैल्यू ज़रूरी होती हैं. साथ ही, Edge Microgateway को शुरू करने के लिए ज़रूरी कुंजी और सीक्रेट को इन एनवायरमेंट वैरिएबल में सेव किया जा सकता है:

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

इन वैरिएबल को सेट करना ज़रूरी नहीं है. अगर आपने उन्हें सेट किया है, तो Edge Microgateway को कॉन्फ़िगर और शुरू करने के लिए, कमांड-लाइन इंटरफ़ेस (सीएलआई) का इस्तेमाल करते समय आपको उनकी वैल्यू तय करने की ज़रूरत नहीं है.

Edge Microgateway सर्वर पर एसएसएल कॉन्फ़िगर करना

Apigee Edge Microgateway में टीएलएस को कॉन्फ़िगर करने के बारे में जानने के लिए, ये वीडियो देखें:

वीडियो ब्यौरा
1-वे नॉर्थबाउंड टीएलएस को कॉन्फ़िगर करना Apigee Edge Microgateway में टीएलएस को कॉन्फ़िगर करने के बारे में जानें. इस वीडियो में, टीएलएस और इसकी अहमियत के बारे में खास जानकारी दी गई है. साथ ही, Edge Microgateway में टीएलएस के बारे में बताया गया है. इसके अलावा, नॉर्थबाउंड वन-वे टीएलएस को कॉन्फ़िगर करने का तरीका भी बताया गया है.
टू-वे नॉर्थबाउंड टीएलएस कॉन्फ़िगर करना Apigee Edge Microgateway में टीएलएस को कॉन्फ़िगर करने के बारे में यह दूसरा वीडियो है. इस वीडियो में, नॉर्थबाउंड टू-वे टीएलएस को कॉन्फ़िगर करने का तरीका बताया गया है.
साउथबाउंड टीएलएस के लिए, 1-वे और 2-वे कॉन्फ़िगर करना Apigee Edge Microgateway में टीएलएस कॉन्फ़िगर करने के बारे में जानकारी देने वाले इस तीसरे वीडियो में, साउथबाउंड वन-वे और टू-वे टीएलएस को कॉन्फ़िगर करने का तरीका बताया गया है.

Microgateway सर्वर को एसएसएल का इस्तेमाल करने के लिए कॉन्फ़िगर किया जा सकता है. उदाहरण के लिए, एसएसएल कॉन्फ़िगर होने पर, "https" प्रोटोकॉल के साथ Edge Microgateway के ज़रिए एपीआई को कॉल किया जा सकता है. जैसे:

https://localhost:8000/myapi

Microgateway सर्वर पर एसएसएल कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

  1. openssl यूटिलिटी या अपनी पसंद के किसी अन्य तरीके का इस्तेमाल करके, एसएसएल सर्टिफ़िकेट और कुंजी जनरेट करें या हासिल करें.
  2. Edge Microgateway की कॉन्फ़िगरेशन फ़ाइल में edgemicro:ssl एट्रिब्यूट जोड़ें. विकल्पों की पूरी सूची के लिए, नीचे दी गई टेबल देखें. उदाहरण के लिए:
    edgemicro:
      ssl:
       key: <absolute path to the SSL key file>
       cert: <absolute path to the SSL cert file>
       passphrase: admin123 #option added in v2.2.2
       rejectUnauthorized: true #option added in v2.2.2
       requestCert: true
  3. Edge Microgateway को रीस्टार्ट करें. आपने जिस कॉन्फ़िगरेशन फ़ाइल में बदलाव किया है उसके आधार पर, कॉन्फ़िगरेशन में बदलाव करना लेख में बताया गया तरीका अपनाएं: डिफ़ॉल्ट फ़ाइल या रनटाइम कॉन्फ़िगरेशन फ़ाइल.

यहां एसएसएल के साथ कॉन्फ़िगर की गई कॉन्फ़िगरेशन फ़ाइल के edgemicro सेक्शन का उदाहरण दिया गया है:

edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
  ssl:
    key: /MyHome/SSL/em-ssl-keys/server.key
    cert: /MyHome/SSL/em-ssl-keys/server.crt
    passphrase: admin123 #option added in v2.2.2
    rejectUnauthorized: true #option added in v2.2.2

यहां उन सभी सर्वर विकल्पों की सूची दी गई है जिनका इस्तेमाल किया जा सकता है:

विकल्प ब्यौरा
key ca.key फ़ाइल का पाथ (PEM फ़ॉर्मैट में).
cert ca.cert फ़ाइल का पाथ (PEM फ़ॉर्मैट में).
pfx PFX फ़ॉर्मैट में क्लाइंट की निजी कुंजी, सर्टिफ़िकेट, और सीए सर्टिफ़िकेट वाली pfx फ़ाइल का पाथ.
passphrase इस स्ट्रिंग में निजी पासकोड या PFX के लिए लंबा पासवर्ड होता है.
ca PEM फ़ॉर्मैट में भरोसेमंद सर्टिफ़िकेट की सूची वाली फ़ाइल का पाथ.
ciphers इस्तेमाल किए जाने वाले साइफ़र के बारे में बताने वाली स्ट्रिंग, जिसे ":" से अलग किया गया हो.
rejectUnauthorized अगर यह वैल्यू 'सही है' पर सेट है, तो सर्वर सर्टिफ़िकेट की पुष्टि, उपलब्ध कराए गए CA की सूची के हिसाब से की जाती है. अगर पुष्टि नहीं हो पाती है, तो गड़बड़ी का मैसेज दिखता है.
secureProtocol इस्तेमाल किया जाने वाला एसएसएल तरीका. उदाहरण के लिए, एसएसएल को वर्शन 3 पर सेट करने के लिए, SSLv3_method का इस्तेमाल किया जाता है.
servername एसएनआई (सर्वर नेम इंडिकेशन) टीएलएस एक्सटेंशन के लिए सर्वर का नाम.
requestCert टू-वे एसएसएल के लिए true; वन-वे एसएसएल के लिए false

क्लाइंट एसएसएल/टीएलएस विकल्पों का इस्तेमाल करना

टारगेट एंडपॉइंट से कनेक्ट करते समय, Edge Microgateway को टीएलएस या एसएसएल क्लाइंट के तौर पर कॉन्फ़िगर किया जा सकता है. Microgateway की कॉन्फ़िगरेशन फ़ाइल में, एसएसएल/टीएलएस के विकल्प सेट करने के लिए, टारगेट एलिमेंट का इस्तेमाल करें.

इस उदाहरण में ऐसी सेटिंग दी गई हैं जो सभी होस्ट पर लागू होंगी:

edgemicro:
...
targets:
  ssl:
    client:
      key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
      cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
      passphrase: admin123
      rejectUnauthorized: true

इस उदाहरण में, सेटिंग सिर्फ़ बताए गए होस्ट पर लागू होती हैं:

edgemicro:
...
targets:
  - host: 'myserver.example.com'
    ssl:
      client:
        key: /Users/myname/twowayssl/ssl/client.key
        cert: /Users/myname/twowayssl/ssl/ca.crt
        passphrase: admin123
        rejectUnauthorized: true

यहां टीएलएस का एक उदाहरण दिया गया है:

edgemicro:
...
targets:
  - host: 'myserver.example.com'
    tls:
      client:
        pfx: /Users/myname/twowayssl/ssl/client.pfx
        passphrase: admin123
        rejectUnauthorized: true

यहां इस्तेमाल किए जा सकने वाले सभी क्लाइंट विकल्पों की सूची दी गई है:

विकल्प ब्यौरा
pfx PFX फ़ॉर्मैट में क्लाइंट की निजी कुंजी, सर्टिफ़िकेट, और सीए सर्टिफ़िकेट वाली pfx फ़ाइल का पाथ.
key ca.key फ़ाइल का पाथ (PEM फ़ॉर्मैट में).
passphrase इस स्ट्रिंग में निजी पासकोड या PFX के लिए लंबा पासवर्ड होता है.
cert ca.cert फ़ाइल का पाथ (PEM फ़ॉर्मैट में).
ca PEM फ़ॉर्मैट में भरोसेमंद सर्टिफ़िकेट की सूची वाली फ़ाइल का पाथ.
ciphers इस्तेमाल किए जाने वाले साइफ़र के बारे में बताने वाली स्ट्रिंग, जिसे ":" से अलग किया गया हो.
rejectUnauthorized अगर यह वैल्यू 'सही है' पर सेट है, तो सर्वर सर्टिफ़िकेट की पुष्टि, उपलब्ध कराए गए CA की सूची के हिसाब से की जाती है. अगर पुष्टि नहीं हो पाती है, तो गड़बड़ी का मैसेज दिखता है.
secureProtocol इस्तेमाल किया जाने वाला एसएसएल तरीका. उदाहरण के लिए, एसएसएल को वर्शन 3 पर सेट करने के लिए, SSLv3_method का इस्तेमाल किया जाता है.
servername एसएनआई (सर्वर नेम इंडिकेशन) टीएलएस एक्सटेंशन के लिए सर्वर का नाम.

edgemicro-auth प्रॉक्सी को पसंद के मुताबिक बनाना

डिफ़ॉल्ट रूप से, Edge Microgateway, OAuth2 की पुष्टि के लिए Apigee Edge पर डिप्लॉय किए गए प्रॉक्सी का इस्तेमाल करता है. यह प्रॉक्सी तब डिप्लॉय की जाती है, जब edgemicro configure को पहली बार चलाया जाता है. इस प्रॉक्सी के डिफ़ॉल्ट कॉन्फ़िगरेशन को बदला जा सकता है. इससे, JSON वेब टोकन (JWT) में कस्टम क्लेम जोड़े जा सकते हैं, टोकन की समयसीमा खत्म होने की तारीख कॉन्फ़िगर की जा सकती है, और रीफ़्रेश टोकन जनरेट किए जा सकते हैं. ज़्यादा जानकारी के लिए, GitHub पर edgemicro-auth पेज देखें.

पुष्टि करने की किसी कस्टम सेवा का इस्तेमाल करना

डिफ़ॉल्ट रूप से, Edge Microgateway, OAuth2 की पुष्टि के लिए Apigee Edge पर डिप्लॉय किए गए प्रॉक्सी का इस्तेमाल करता है. यह प्रॉक्सी तब डिप्लॉय की जाती है, जब edgemicro configure को पहली बार चलाया जाता है. डिफ़ॉल्ट रूप से, इस प्रॉक्सी का यूआरएल, Edge Microgateway की कॉन्फ़िगरेशन फ़ाइल में इस तरह से दिया जाता है:

authUri: https://myorg-myenv.apigee.net/edgemicro-auth

अगर आपको पुष्टि करने के लिए अपनी पसंद की सेवा का इस्तेमाल करना है, तो कॉन्फ़िगरेशन फ़ाइल में authUri वैल्यू को बदलकर अपनी सेवा पर ले जाएं. उदाहरण के लिए, हो सकता है कि आपके पास कोई ऐसी सेवा हो जो पहचान की पुष्टि करने के लिए, एलडीएपी का इस्तेमाल करती हो.

लॉग फ़ाइलें मैनेज करना

Edge Microgateway, हर अनुरोध और जवाब की जानकारी को लॉग करता है. लॉग फ़ाइलों से, डीबग करने और समस्या हल करने के लिए काम की जानकारी मिलती है.

लॉग फ़ाइलें कहां सेव की जाती हैं

डिफ़ॉल्ट रूप से, लॉग फ़ाइलें /var/tmp में सेव होती हैं.

लॉग फ़ाइल की डिफ़ॉल्ट डायरेक्ट्री बदलने का तरीका

Edge Microgateway की कॉन्फ़िगरेशन फ़ाइल में, वह डायरेक्ट्री बताई जाती है जहां लॉग फ़ाइलें सेव की जाती हैं. कॉन्फ़िगरेशन में बदलाव करना भी देखें.

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

लॉग फ़ाइल की कोई दूसरी डायरेक्ट्री तय करने के लिए, dir वैल्यू बदलें.

कंसोल में लॉग भेजना

लॉगिंग को कॉन्फ़िगर किया जा सकता है, ताकि लॉग की जानकारी को लॉग फ़ाइल के बजाय स्टैंडर्ड आउटपुट में भेजा जा सके. to_console फ़्लैग को 'सही' पर सेट करें. इसके लिए, यह तरीका अपनाएं:

edgemicro:
  logging:
    to_console: true

इस सेटिंग की मदद से, लॉग स्टैंडर्ड आउट पर भेजे जाएंगे. फ़िलहाल, लॉग को stdout और लॉग फ़ाइल, दोनों में नहीं भेजा जा सकता.

लॉगिंग लेवल सेट करने का तरीका

लॉग के ये लेवल सेट किए जा सकते हैं: जानकारी, चेतावनी, और गड़बड़ी. हमारा सुझाव है कि आप जानकारी वाला लेवल चुनें. यह सभी एपीआई अनुरोधों और रिस्पॉन्स को लॉग करता है. यह डिफ़ॉल्ट तौर पर सेट होता है.

लॉग इंटरवल बदलने का तरीका

Edge Microgateway की कॉन्फ़िगरेशन फ़ाइल में जाकर, इन इंटरवल को कॉन्फ़िगर किया जा सकता है. कॉन्फ़िगरेशन में बदलाव करना भी देखें.

कॉन्फ़िगर किए जा सकने वाले एट्रिब्यूट ये हैं:

  • stats_log_interval: (डिफ़ॉल्ट: 60) सेकंड में वह इंटरवल जब आंकड़ों का रिकॉर्ड, एपीआई लॉग फ़ाइल में लिखा जाता है.
  • rotate_interval: (डिफ़ॉल्ट: 24) लॉग फ़ाइलों को रोटेट करने का इंटरवल, घंटों में. उदाहरण के लिए:
edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

लॉग फ़ाइल के रखरखाव के सबसे सही तरीके

समय के साथ लॉग फ़ाइल का डेटा इकट्ठा होता जाता है. इसलिए, Apigee का सुझाव है कि आप ये तरीके अपनाएं:

  • लॉग फ़ाइलें काफ़ी बड़ी हो सकती हैं. इसलिए, पक्का करें कि लॉग फ़ाइल डायरेक्ट्री में ज़रूरत के मुताबिक स्टोरेज हो. यहां दिए गए सेक्शन देखें: लॉग फ़ाइलें कहां सेव की जाती हैं और डिफ़ॉल्ट लॉग फ़ाइल डायरेक्ट्री को बदलने का तरीका.
  • लॉग फ़ाइलों को मिटाएं या उन्हें हफ़्ते में कम से कम एक बार किसी अलग संग्रह डायरेक्ट्री में ले जाएं.
  • अगर आपकी नीति लॉग मिटाने की है, तो पुराने लॉग हटाने (साफ़ करने) के लिए, सीएलआई कमांड edgemicro log -c का इस्तेमाल किया जा सकता है.

लॉग फ़ाइल के नाम रखने का तरीका

Edge Microgateway का हर इंस्टेंस, तीन तरह की लॉग फ़ाइलें जनरेट करता है:

  • api - Edge Microgateway से भेजे गए सभी अनुरोधों और जवाबों को लॉग करता है. एपीआई काउंटर (आंकड़े) और गड़बड़ियां भी इस फ़ाइल में लॉग की जाती हैं.
  • err - stderr को भेजे गए किसी भी डेटा को लॉग करता है.
  • out - stdout पर भेजे गए किसी भी डेटा को लॉग करता है.

नाम रखने का तरीका यह है:

edgemicro-<Host Name>-<Instance ID>-<Log Type>.log

उदाहरण के लिए:

edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log
edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log
edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log

लॉग फ़ाइल के कॉन्टेंट के बारे में जानकारी

इस वर्शन में जोड़ा गया: v2.3.3

डिफ़ॉल्ट रूप से, लॉगिंग सेवा डाउनलोड की गई प्रॉक्सी, प्रॉडक्ट, और JSON वेब टोकन (JWT) के JSON को शामिल नहीं करती. अगर आपको इन ऑब्जेक्ट को लॉग फ़ाइलों में आउटपुट करना है, तो Edge Microgateway शुरू करते समय DEBUG=* सेट करें. उदाहरण के लिए:

DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456

"api" लॉग फ़ाइल का कॉन्टेंट

"api" लॉग फ़ाइल में, Edge Microgateway के ज़रिए अनुरोधों और जवाबों के फ़्लो के बारे में ज़्यादा जानकारी होती है. "api" लॉग फ़ाइलों के नाम इस तरह के होते हैं:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

Edge Microgateway को किए गए हर अनुरोध के लिए, "api" लॉग फ़ाइल में चार इवेंट कैप्चर किए जाते हैं:

  • क्लाइंट से मिला अनुरोध
  • टारगेट को आउटगोइंग अनुरोध भेजा गया
  • टारगेट से मिला जवाब
  • क्लाइंट को भेजा गया जवाब

इनमें से हर एक एंट्री को शॉर्टहैंड नोटेशन में दिखाया जाता है, ताकि लॉग फ़ाइलों को ज़्यादा छोटा बनाया जा सके. यहां चार सैंपल एंट्री दी गई हैं, जो चारों इवेंट को दिखाती हैं. लॉग फ़ाइल में, वे इस तरह दिखते हैं. लाइन नंबर सिर्फ़ दस्तावेज़ में रेफ़रंस के लिए होते हैं, वे लॉग फ़ाइल में नहीं दिखते.

(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
(2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0
(3) 1436403888672 info tres s=200, d=7, i=0
(4) 1436403888676 info res s=200, d=11, i=0

आइए, इनके बारे में एक-एक करके जानें:

1. क्लाइंट से मिले अनुरोध का सैंपल:

1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
  • 1436403888651 - Unix डेट स्टैंप
  • info - यह कॉन्टेक्स्ट पर निर्भर करता है. लॉग लेवल के आधार पर, यह जानकारी, चेतावनी या गड़बड़ी हो सकती है. यह आंकड़े के रिकॉर्ड के लिए आंकड़े, चेतावनियों के लिए चेतावनी या गड़बड़ियों के लिए गड़बड़ी हो सकती है.
  • req - इससे इवेंट की पहचान की जाती है. इस मामले में, क्लाइंट से अनुरोध करें.
  • m - अनुरोध में इस्तेमाल की गई एचटीटीपी वर्ब.
  • u - यूआरएल का वह हिस्सा जो बेसपाथ के बाद आता है.
  • h - वह होस्ट और पोर्ट नंबर जहां Edge Microgateway सुन रहा है.
  • r - वह रिमोट होस्ट और पोर्ट जहां से क्लाइंट का अनुरोध आया है.
  • i - अनुरोध का आईडी. इवेंट की चारों एंट्री के लिए, यह आईडी शेयर किया जाएगा. हर अनुरोध को एक यूनीक अनुरोध आईडी असाइन किया जाता है. अनुरोध आईडी के हिसाब से लॉग रिकॉर्ड को कोरिलेट करने से, टारगेट की इंतज़ार अवधि के बारे में अहम जानकारी मिल सकती है.
  • d - Edge Microgateway को अनुरोध मिलने के बाद से, मिलीसेकंड में लगने वाला समय. ऊपर दिए गए उदाहरण में, अनुरोध 0 के लिए टारगेट का जवाब सात मिलीसेकंड (लाइन 3) के बाद मिला. साथ ही, क्लाइंट को जवाब चार मिलीसेकंड (लाइन 4) के बाद भेजा गया. दूसरे शब्दों में, अनुरोध के इंतज़ार का कुल समय 11 मिलीसेकंड था. इसमें से, सात मिलीसेकंड टारगेट ने लिए और चार मिलीसेकंड Edge Microgateway ने लिए.

2. टारगेट को भेजे गए अनुरोध का सैंपल:

1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
  • 1436403888651 - Unix डेट स्टैंप
  • info - यह कॉन्टेक्स्ट पर निर्भर करता है. लॉग लेवल के आधार पर, यह जानकारी, चेतावनी या गड़बड़ी हो सकती है. यह आंकड़े के रिकॉर्ड के लिए आंकड़े, चेतावनियों के लिए चेतावनी या गड़बड़ियों के लिए गड़बड़ी हो सकती है.
  • treq - इससे इवेंट की पहचान की जाती है. इस मामले में, अनुरोध को टारगेट करें.
  • m - टारगेट अनुरोध में इस्तेमाल किया गया एचटीटीपी वर्ब.
  • u - यूआरएल का वह हिस्सा जो बेसपाथ के बाद आता है.
  • h - बैकएंड टारगेट का होस्ट और पोर्ट नंबर.
  • i - लॉग एंट्री का आईडी. इवेंट की चारों एंट्री के लिए, यह आईडी शेयर किया जाएगा.

3. टारगेट से आने वाले रिस्पॉन्स का सैंपल

1436403888672 info tres s=200, d=7, i=0

1436403888651 - Unix डेट स्टैंप

  • info - यह कॉन्टेक्स्ट पर निर्भर करता है. लॉग लेवल के आधार पर, यह जानकारी, चेतावनी या गड़बड़ी हो सकती है. यह आंकड़े के रिकॉर्ड के लिए आंकड़े, चेतावनियों के लिए चेतावनी या गड़बड़ियों के लिए गड़बड़ी हो सकती है.
  • tres - इससे इवेंट की पहचान होती है. इस मामले में, टारगेट रिस्पॉन्स.
  • s - एचटीटीपी रिस्पॉन्स का स्टेटस.
  • d - मिलीसेकंड में अवधि. टारगेट को एपीआई कॉल करने में लगने वाला समय.
  • i - लॉग एंट्री का आईडी. इवेंट की चारों एंट्री के लिए, यह आईडी शेयर किया जाएगा.

4. क्लाइंट को भेजे जाने वाले जवाब का सैंपल

1436403888676 info res s=200, d=11, i=0

1436403888651 - Unix डेट स्टैंप

  • info - यह कॉन्टेक्स्ट पर निर्भर करता है. लॉग लेवल के आधार पर, यह जानकारी, चेतावनी या गड़बड़ी हो सकती है. यह आंकड़े के रिकॉर्ड के लिए आंकड़े, चेतावनियों के लिए चेतावनी या गड़बड़ियों के लिए गड़बड़ी हो सकती है.
  • res - इससे इवेंट की पहचान होती है. इस मामले में, क्लाइंट को जवाब दें.
  • s - एचटीटीपी रिस्पॉन्स का स्टेटस.
  • d - मिलीसेकंड में अवधि. यह एपीआई कॉल में लगने वाला कुल समय है. इसमें टारगेट एपीआई और Edge Microgateway में लगने वाला समय शामिल है.
  • i - लॉग एंट्री का आईडी. इवेंट की चारों एंट्री के लिए, यह आईडी शेयर किया जाएगा.

लॉग फ़ाइल का शेड्यूल

लॉग फ़ाइलें, rotate_interval कॉन्फ़िगरेशन एट्रिब्यूट में बताए गए इंटरवल पर रोटेट होती हैं. रोटेशन इंटरवल खत्म होने तक, एंट्री उसी लॉग फ़ाइल में जोड़ी जाती रहेंगी. हालांकि, जब भी Edge Microgateway को रीस्टार्ट किया जाता है, तब उसे एक नया यूआईडी मिलता है. साथ ही, वह इस यूआईडी के साथ लॉग फ़ाइलों का एक नया सेट बनाता है. लॉग फ़ाइल के रखरखाव के सबसे सही तरीके भी देखें.

गड़बड़ी के मैसेज

कुछ लॉग एंट्री में गड़बड़ी के मैसेज शामिल होंगे. गड़बड़ियां कहां और क्यों होती हैं, यह जानने के लिए Edge Microgateway की गड़बड़ी का रेफ़रंस देखें.

Edge Microgateway के कॉन्फ़िगरेशन का रेफ़रंस

कॉन्फ़िगरेशन फ़ाइल की जगह

इस सेक्शन में बताए गए कॉन्फ़िगरेशन एट्रिब्यूट, Edge Microgateway की कॉन्फ़िगरेशन फ़ाइल में मौजूद होते हैं. कॉन्फ़िगरेशन में बदलाव करना भी देखें.

edge_config एट्रिब्यूट

इन सेटिंग का इस्तेमाल, Edge Microgateway इंस्टेंस और Apigee Edge के बीच इंटरैक्शन को कॉन्फ़िगर करने के लिए किया जाता है.

  • bootstrap: (डिफ़ॉल्ट: none) यह यूआरएल, Apigee Edge पर चल रही Edge Microgateway की सेवा पर ले जाता है. Edge Microgateway, Apigee Edge के साथ कम्यूनिकेट करने के लिए इस सेवा का इस्तेमाल करता है. सार्वजनिक/निजी पासकोड का जोड़ा जनरेट करने के लिए, यह निर्देश देने पर यह यूआरएल दिखता है: edgemicro genkeys. ज़्यादा जानकारी के लिए, Edge Microgateway को सेट अप और कॉन्फ़िगर करना लेख पढ़ें.
  • jwt_public_key: (डिफ़ॉल्ट: कोई नहीं) Apigee Edge पर डिप्लॉय किए गए Edge Microgateway प्रॉक्सी पर ले जाने वाला यूआरएल. यह प्रॉक्सी, क्लाइंट को साइन किए गए ऐक्सेस टोकन जारी करने के लिए, पुष्टि करने वाले एंडपॉइंट के तौर पर काम करती है. प्रॉक्सी को डिप्लॉय करने के लिए, edgemicro configure कमांड को चलाने पर यह यूआरएल दिखता है. ज़्यादा जानकारी के लिए, Edge Microgateway को सेट अप और कॉन्फ़िगर करना लेख पढ़ें.
  • quotaUri: अगर आपको अपने संगठन में डिप्लॉय किए गए edgemicro-auth प्रॉक्सी की मदद से कोटा मैनेज करना है, तो इस कॉन्फ़िगरेशन प्रॉपर्टी को सेट करें. अगर यह प्रॉपर्टी सेट नहीं है, तो कोटा एंडपॉइंट, डिफ़ॉल्ट रूप से Edge Microgateway के इंटरनल एंडपॉइंट पर सेट हो जाता है.
    edge_config:
      quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
    

    इस सुविधा का इस्तेमाल करने के लिए, आपको सबसे पहले अपने संगठन में edgemicro-auth प्रॉक्सी का वर्शन 3.0.5 या इसके बाद का वर्शन डिप्लॉय करना होगा. ज़्यादा जानकारी के लिए, edgemicro-auth प्रॉक्सी को अपग्रेड करना लेख पढ़ें.

edgemicro एट्रिब्यूट

इन सेटिंग से, Edge Microgateway प्रोसेस को कॉन्फ़िगर किया जाता है.

  • port: (डिफ़ॉल्ट: 8000) वह पोर्ट नंबर जिस पर Edge Microgateway प्रोसेस सिग्नल पाने के लिए कॉन्फ़िगर की गई है.
  • max_connections: (डिफ़ॉल्ट: -1) इससे यह तय होता है कि Edge Microgateway पर एक साथ ज़्यादा से ज़्यादा कितने कनेक्शन आ सकते हैं. अगर इस संख्या को पार कर लिया जाता है, तो यह स्टेटस दिखता है:

    res.statusCode = 429; // Too many requests
  • max_connections_hard: (डिफ़ॉल्ट: -1) कनेक्शन बंद होने से पहले, Edge Microgateway को एक साथ मिलने वाले अनुरोधों की ज़्यादा से ज़्यादा संख्या. इस सेटिंग का मकसद, डिनायल ऑफ़ सर्विस अटैक को रोकना है. आम तौर पर, इसे max_connections से ज़्यादा संख्या पर सेट करें.
  • लॉगिंग:
    • level: (डिफ़ॉल्ट: गड़बड़ी)
      • info - Edge Microgateway इंस्टेंस से गुज़रने वाले सभी अनुरोधों और जवाबों को लॉग करता है.
      • warn - सिर्फ़ चेतावनी वाले मैसेज लॉग करता है.
      • error - सिर्फ़ गड़बड़ी के मैसेज लॉग करता है.
    • dir: (डिफ़ॉल्ट: /var/tmp) वह डायरेक्ट्री जहां लॉग फ़ाइलें सेव की जाती हैं.
    • stats_log_interval: (डिफ़ॉल्ट: 60) सेकंड में वह इंटरवल जब आंकड़ों का रिकॉर्ड, एपीआई लॉग फ़ाइल में लिखा जाता है.
    • rotate_interval: (डिफ़ॉल्ट: 24) लॉग फ़ाइलों को रोटेट करने का इंटरवल, घंटों में.
  • प्लगिन: प्लगिन, Edge Microgateway में सुविधाएं जोड़ते हैं. प्लग इन डेवलप करने के बारे में ज़्यादा जानने के लिए, कस्टम प्लग इन डेवलप करना लेख पढ़ें.
  • dir: ./gateway डायरेक्ट्री से ./plugins डायरेक्ट्री तक का रिलेटिव पाथ या ऐब्सलूट पाथ.
  • sequence: प्लगिन मॉड्यूल की एक सूची, जिसे आपको अपने Edge Microgateway इंस्टेंस में जोड़ना है. मॉड्यूल यहां दिए गए क्रम में लागू होंगे.
  • debug: इससे Edge Microgateway प्रोसेस में, रिमोट डीबगिंग की सुविधा जुड़ती है.
    • port: वह पोर्ट नंबर जिस पर अनुरोध सुने जाते हैं. उदाहरण के लिए, अपने IDE डीबगर को इस पोर्ट पर सुनने के लिए सेट करें.
    • args: डीबग प्रोसेस के लिए आर्ग्युमेंट. उदाहरण के लिए: args --nolazy
  • config_change_poll_interval: (डिफ़ॉल्ट: 600 सेकंड) Edge Microgateway समय-समय पर नया कॉन्फ़िगरेशन लोड करता है. साथ ही, कुछ भी बदलने पर उसे फिर से लोड करता है. पोलिंग, Edge पर किए गए किसी भी बदलाव (प्रॉडक्ट में किए गए बदलाव, माइक्रोगेटवे-अवेयर प्रॉक्सी वगैरह) के साथ-साथ, लोकल कॉन्फ़िगरेशन फ़ाइल में किए गए बदलावों को भी चुनती है.
  • disable_config_poll_interval: (डिफ़ॉल्ट: false) अपने-आप होने वाले बदलावों की पोलिंग को बंद करने के लिए, इसे true पर सेट करें.
  • request_timeout: इससे टारगेट अनुरोधों के लिए टाइम आउट सेट किया जाता है. टाइम आउट को सेकंड में सेट किया जाता है. अगर टाइम आउट होता है, तो Edge Microgateway, 504 स्टेटस कोड के साथ जवाब देता है. (v2.4.x में जोड़ा गया)

headers एट्रिब्यूट

इन सेटिंग से यह कॉन्फ़िगर किया जाता है कि कुछ एचटीटीपी हेडर को कैसे मैनेज किया जाए.

  • x-forwarded-for: (डिफ़ॉल्ट: true) x-forwarded-for हेडर को टारगेट पर पास होने से रोकने के लिए, इसे false पर सेट करें. ध्यान दें कि अगर अनुरोध में x-forwarded-for हेडर मौजूद है, तो Edge Analytics में इसकी वैल्यू को client-ip वैल्यू पर सेट कर दिया जाएगा.
  • x-forwarded-host: (डिफ़ॉल्ट: true) x-forwarded-host हेडर को टारगेट पर पास होने से रोकने के लिए, इसे false पर सेट करें.
  • x-request-id: (डिफ़ॉल्ट: true) x-request-id हेडर को टारगेट पर पास होने से रोकने के लिए, इसे false पर सेट करें.
  • x-response-time: (डिफ़ॉल्ट: true) x-response-time हेडर को टारगेट पर पास होने से रोकने के लिए, इसे false पर सेट करें.
  • via: (डिफ़ॉल्ट: true) टारगेट को हेडर पास होने से रोकने के लिए, इसे false पर सेट करें.

oauth एट्रिब्यूट

इन सेटिंग से यह कॉन्फ़िगर किया जाता है कि Edge Microgateway, क्लाइंट की पुष्टि करने की प्रोसेस को कैसे लागू करे.

  • allowNoAuthorization: (डिफ़ॉल्ट: false) अगर इसे true पर सेट किया जाता है, तो एपीआई कॉल को बिना किसी ऑथराइज़ेशन हेडर के, Edge Microgateway से पास होने की अनुमति दी जाती है. अनुमति देने वाले हेडर (डिफ़ॉल्ट) की ज़रूरत होने पर, इसे false पर सेट करें.
  • allowInvalidAuthorization: (डिफ़ॉल्ट: false) अगर इसे true पर सेट किया जाता है, तो एपीआई कॉल को पास करने की अनुमति दी जाती है. भले ही, Authorization हेडर में पास किया गया टोकन अमान्य हो या उसकी समयसीमा खत्म हो गई हो. मान्य टोकन (डिफ़ॉल्ट) की ज़रूरत के लिए, इसे 'गलत है' पर सेट करें.
  • authorization-header: (डिफ़ॉल्ट: Authorization: Bearer) Edge Microgateway को ऐक्सेस टोकन भेजने के लिए इस्तेमाल किया जाने वाला हेडर. ऐसा हो सकता है कि आप डिफ़ॉल्ट सेटिंग को उन मामलों में बदलना चाहें जहां टारगेट को किसी अन्य मकसद के लिए, ऑथराइज़ेशन हेडर का इस्तेमाल करना हो.
  • api-key-header: (डिफ़ॉल्ट: x-api-key) हेडर या क्वेरी पैरामीटर का नाम, जिसका इस्तेमाल Edge Microgateway को एपीआई पासकोड पास करने के लिए किया जाता है. एपीआई पासकोड का इस्तेमाल करना भी देखें.
  • keep-authorization-header: (डिफ़ॉल्ट: false) अगर इसे true पर सेट किया जाता है, तो अनुरोध में भेजा गया Authorization हेडर, टारगेट को पास कर दिया जाता है (इसे सुरक्षित रखा जाता है).
  • allowOAuthOnly -- अगर इसे 'सही है' पर सेट किया जाता है, तो हर एपीआई में बियरर ऐक्सेस टोकन के साथ ऑथराइज़ेशन हेडर होना चाहिए. इससे आपको सिर्फ़ OAuth सुरक्षा मॉडल को अनुमति देने की सुविधा मिलती है. साथ ही, पुराने सिस्टम के साथ काम करने की सुविधा भी बनी रहती है. (2.4.x में जोड़ा गया)
  • allowAPIKeyOnly -- अगर इसे 'सही है' पर सेट किया जाता है, तो हर एपीआई में एपीआई पासकोड के साथ x-api-key हेडर (या कस्टम जगह) होना चाहिए. इससे आपको सिर्फ़ एपीआई पासकोड के सुरक्षा मॉडल को अनुमति देने की सुविधा मिलती है. साथ ही, पुराने सिस्टम के साथ काम करने की सुविधा भी बनी रहती है. (2.4.x जोड़ा गया)
  • gracePeriod -- इस पैरामीटर की मदद से, आपके सिस्टम की घड़ी और JWT ऑथराइज़ेशन टोकन में बताए गए, 'इससे पहले नहीं' (nbf) या 'इस समय जारी किया गया' (iat) समय के बीच मामूली अंतर की वजह से होने वाली गड़बड़ियों को रोका जा सकता है. इस पैरामीटर को सेकंड की उस संख्या पर सेट करें जिसकी अनुमति इस तरह की गड़बड़ियों के लिए दी जा सकती है. (2.5.7 जोड़ा गया)

प्लगिन के हिसाब से तय किए गए एट्रिब्यूट

हर प्लग इन के लिए कॉन्फ़िगर किए जा सकने वाले एट्रिब्यूट की जानकारी पाने के लिए, प्लग इन का इस्तेमाल करना लेख पढ़ें.

फ़िल्टर करने वाली प्रॉक्सी

यह फ़िल्टर किया जा सकता है कि Edge Microgateway इंस्टेंस, माइक्रोगेटवे की जानकारी रखने वाली किन प्रॉक्सी को प्रोसेस करेगा. Edge Microgateway के चालू होने पर, यह उस संगठन के सभी microgateway-aware प्रॉक्सी को डाउनलोड करता है जिससे यह जुड़ा है. माइक्रोगेटवे जिन प्रॉक्सी को प्रोसेस करेगा उन्हें सीमित करने के लिए, इस कॉन्फ़िगरेशन का इस्तेमाल करें. उदाहरण के लिए, इस कॉन्फ़िगरेशन की वजह से, माइक्रोगेटवे सिर्फ़ तीन प्रॉक्सी को प्रोसेस करेगा: edgemicro_proxy-1, edgemicro_proxy-2, और edgemicro_proxy-3:

proxies:
  - edgemicro_proxy-1
  - edgemicro_proxy-2
  - edgemicro_proxy-3

Analytics पुश फ़्रीक्वेंसी को कॉन्फ़िगर करना

इन कॉन्फ़िगरेशन पैरामीटर का इस्तेमाल करके, यह कंट्रोल करें कि Edge Microgateway, Apigee को कितनी बार Analytics डेटा भेजे:

  • bufferSize (ज़रूरी नहीं): सबसे पुराने रिकॉर्ड को हटाने से पहले, बफ़र में ज़्यादा से ज़्यादा कितने Analytics रिकॉर्ड सेव किए जा सकते हैं. डिफ़ॉल्ट: 10000
  • batchSize (ज़रूरी नहीं): Apigee को भेजे गए आंकड़ों के रिकॉर्ड के बैच का ज़्यादा से ज़्यादा साइज़. डिफ़ॉल्ट: 500
  • flushInterval (ज़रूरी नहीं): Apigee को भेजे गए आंकड़ों के रिकॉर्ड के हर बैच को फ़्लश करने के बीच का समय, मिलीसेकंड में. डिफ़ॉल्ट: 5,000

उदाहरण के लिए:

analytics:
  bufferSize: 15000
  batchSize: 1000
  flushInterval: 6000

आंकड़ों का डेटा मास्क करना

यहां दिए गए कॉन्फ़िगरेशन की मदद से, Edge Analytics में अनुरोध पाथ की जानकारी दिखने से रोकी जा सकती है. अनुरोध यूआरआई और/या अनुरोध पाथ को मास्क करने के लिए, माइक्रोगेटवे कॉन्फ़िगरेशन में यह जोड़ें. ध्यान दें कि यूआरआई में, अनुरोध के होस्टनेम और पाथ वाले हिस्से शामिल होते हैं.

analytics:
  mask_request_uri: 'string_to_mask'
  mask_request_path: 'string_to_mask'

Edge Analytics में एपीआई कॉल को अलग-अलग करना

Analytics प्लगिन को कॉन्फ़िगर करके, किसी खास एपीआई पाथ को अलग किया जा सकता है. इससे वह Edge Analytics डैशबोर्ड में एक अलग प्रॉक्सी के तौर पर दिखता है. उदाहरण के लिए, डैशबोर्ड में हेल्थ चेक एपीआई को अलग किया जा सकता है, ताकि इसे असल एपीआई प्रॉक्सी कॉल समझने की गलती न हो. Analytics डैशबोर्ड में, अलग-अलग प्रॉक्सी के नाम इस पैटर्न के हिसाब से रखे जाते हैं:

edgemicro_proxyname-health

इस इमेज में, Analytics डैशबोर्ड में दो अलग-अलग प्रॉक्सी दिखाए गए हैं: edgemicro_hello-health और edgemicro_mock-health:

Analytics डैशबोर्ड में रिलेटिव और ऐब्सलूट पाथ को अलग-अलग प्रॉक्सी के तौर पर अलग करने के लिए, इन पैरामीटर का इस्तेमाल करें:

  • relativePath (ज़रूरी नहीं): Analytics डैशबोर्ड में अलग करने के लिए, रिलेटिव पाथ तय करता है. उदाहरण के लिए, अगर आपने /healthcheck तय किया है, तो पाथ /healthcheck वाले सभी एपीआई कॉल, डैशबोर्ड में edgemicro_proxyname-health के तौर पर दिखेंगे. ध्यान दें कि यह फ़्लैग, प्रॉक्सी बेसपाथ को अनदेखा करता है. बेसपाथ के साथ-साथ पूरे पाथ के आधार पर अलग-अलग करने के लिए, proxyPath फ़्लैग का इस्तेमाल करें.
  • proxyPath (ज़रूरी नहीं): यह एपीआई प्रॉक्सी का पूरा पाथ बताता है. इसमें प्रॉक्सी का बेसपाथ भी शामिल होता है. इससे, Analytics डैशबोर्ड में डेटा को अलग-अलग किया जा सकता है. उदाहरण के लिए, अगर आपने /mocktarget/healthcheck तय किया है, जहां /mocktarget प्रॉक्सी बेसपाथ है, तो /mocktarget/healthcheck पाथ वाले सभी एपीआई कॉल, डैशबोर्ड में edgemicro_proxyname-health के तौर पर दिखेंगे.

उदाहरण के लिए, यहां दिए गए कॉन्फ़िगरेशन में, /healthcheck वाले किसी भी एपीआई पाथ को Analytics प्लगिन अलग कर देगा. इसका मतलब है कि /foo/healthcheck और /foo/bar/healthcheck को Analytics डैशबोर्ड में, edgemicro_proxyname-health नाम के एक अलग प्रॉक्सी के तौर पर अलग किया जाएगा.

analytics:
  uri: >-
    https://xx/edgemicro/ax/org/docs/environment/test
  bufferSize: 100
  batchSize: 50
  flushInterval: 500
  relativePath: /healthcheck

यहां दिए गए कॉन्फ़िगरेशन में, प्रॉक्सी पाथ /mocktarget/healthcheck वाले किसी भी एपीआई को Analytics डैशबोर्ड में edgemicro_proxyname-health नाम की एक अलग प्रॉक्सी के तौर पर अलग कर दिया जाएगा.

analytics:
  uri: >-
    https://xx/edgemicro/ax/org/docs/environment/test
  bufferSize: 100
  batchSize: 50
  flushInterval: 500
  proxyPath: /mocktarget/healthcheck

कंपनी के फ़ायरवॉल के पीछे Edge Microgateway को सेट अप करना

इस्तेमाल किया जा सकने वाला वर्शन 2.4.x

अगर Edge Microgateway को फ़ायरवॉल के पीछे इंस्टॉल किया गया है, तो हो सकता है कि गेटवे, Apigee Edge के साथ कम्यूनिकेट न कर पाए. इस मामले में, आपके पास दो विकल्प हैं:

पहला विकल्प:

पहला विकल्प, माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल में edgemicro: proxy_tunnel विकल्प को true पर सेट करना है:

edge_config:

    proxy: http://10.224.16.85:3128
    proxy_tunnel: true

जब proxy_tunnel की वैल्यू true पर सेट होती है, तो Edge Microgateway, एचटीटीपी CONNECT तरीके का इस्तेमाल करता है. इससे एचटीटीपी अनुरोधों को एक ही टीसीपी कनेक्शन पर टनल किया जाता है. (अगर प्रॉक्सी को कॉन्फ़िगर करने के लिए एनवायरमेंट वैरिएबल टीएलएस चालू हैं, तो भी यही बात लागू होती है).

दूसरा विकल्प:

दूसरा विकल्प यह है कि माइक्रोगेटवे की कॉन्फ़िगरेशन फ़ाइल में, प्रॉक्सी की जानकारी दें और proxy_tunnel को false पर सेट करें. उदाहरण के लिए:

edge_config:
     proxy: http://10.224.16.85:3128
     proxy_tunnel: false

इस मामले में, आपको जो एचटीटीपी प्रॉक्सी इस्तेमाल करनी है उसके होस्ट को कंट्रोल करने के लिए, ये वैरिएबल सेट किए जा सकते हैं. इसके अलावा, यह भी तय किया जा सकता है कि कौनसे होस्ट, Edge Microgateway प्रॉक्सी को हैंडल न करें: HTTP_PROXY, HTTPS_PROXY, और NO_PROXY.

NO_PROXY को डोमेन की कॉमा लगाकर अलग की गई सूची के तौर पर सेट किया जा सकता है. Edge Microgateway को इन डोमेन को प्रॉक्सी नहीं करना चाहिए. उदाहरण के लिए:

export NO_PROXY='localhost,localhost:8080'

HTTP_PROXY और HTTPS_PROXY को एचटीटीपी प्रॉक्सी एंडपॉइंट पर सेट करें, ताकि Edge Microgateway उसे मैसेज भेज सके. उदाहरण के लिए:

export HTTP_PROXY='http://localhost:3786'

export HTTPS_PROXY='https://localhost:3786'

इन वैरिएबल के बारे में ज़्यादा जानकारी के लिए, https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables पर जाएं

इन्हें भी देखें

Apigee कम्यूनिटी पर, कंपनी के फ़ायरवॉल के पीछे Edge Microgateway को सेट अप करने का तरीका.

माइक्रोगेटवे-अवेयर प्रॉक्सी में वाइल्डकार्ड का इस्तेमाल करना

edgemicro_* (Microgateway-aware) प्रॉक्सी के बेस पाथ में, एक या उससे ज़्यादा "*" वाइल्डकार्ड इस्तेमाल किए जा सकते हैं. उदाहरण के लिए, /team/*/members का बेस पाथ, क्लाइंट को https://[host]/team/blue/members और https://[host]/team/green/members को कॉल करने की अनुमति देता है. इसके लिए, आपको नई टीमों के लिए नए एपीआई प्रॉक्सी बनाने की ज़रूरत नहीं पड़ती. ध्यान दें कि /**/ का इस्तेमाल नहीं किया जा सकता.

अहम जानकारी: Apigee, बेस पाथ के पहले एलिमेंट के तौर पर वाइल्डकार्ड "*" का इस्तेमाल करने की अनुमति नहीं देता. उदाहरण के लिए, इस तरह की खोज नहीं की जा सकती: /*/.

JWT कुंजियों को रोटेट करना

JWT जनरेट करने के कुछ समय बाद, आपको Edge के एन्क्रिप्ट किए गए KVM में सेव किए गए सार्वजनिक/निजी पासकोड के जोड़े को बदलना पड़ सकता है. कुंजी का नया जोड़ा जनरेट करने की इस प्रोसेस को, डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाना कहा जाता है.

Edge Microgateway, JWT का इस्तेमाल कैसे करता है

JSON वेब टोकन (JWT), एक स्टैंडर्ड टोकन है. इसके बारे में RFC7519 में बताया गया है. JWT, दावों के सेट पर हस्ताक्षर करने का एक तरीका उपलब्ध कराता है. JWT पाने वाला व्यक्ति, इन दावों की पुष्टि भरोसेमंद तरीके से कर सकता है.

Edge Microgateway, OAuth सुरक्षा के लिए धारक टोकन के तौर पर JWT का इस्तेमाल करता है. Edge Microgateway के लिए OAuth टोकन जनरेट करने पर, आपको JWT मिलता है. इसके बाद, एपीआई कॉल के ऑथराइज़ेशन हेडर में JWT का इस्तेमाल किया जा सकता है. उदाहरण के लिए:

curl -i http://localhost:8000/hello -H "Authorization: Bearer eyJhbGciOiJ..dXDefZEA"

नया JWT जनरेट करना

edgemicro token कमांड या एपीआई का इस्तेमाल करके, Edge Microgateway के लिए JWT जनरेट किया जा सकता है. उदाहरण के लिए:

edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy

यह निर्देश, Apigee Edge को एक JWT जनरेट करने के लिए कहता है. इसका इस्तेमाल, एपीआई कॉल की पुष्टि करने के लिए किया जा सकता है. -i और -s पैरामीटर, आपके Apigee Edge संगठन में मौजूद डेवलपर ऐप्लिकेशन के ग्राहक आईडी और सीक्रेट वैल्यू हैं.

इसके अलावा, मैनेजमेंट एपीआई का इस्तेमाल करके भी JWT जनरेट किया जा सकता है:

curl -i -X POST "http://org-env.apigee.net/edgemicro-auth/token" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "your consumer key",
    "client_secret": "your consumer secret",
    "grant_type": "client_credentials"
  }'

कहां:

  • org आपके Edge संगठन का नाम है. इसके लिए, आपके पास संगठन के एडमिन की भूमिका होनी चाहिए.
  • env आपके संगठन का एक एनवायरमेंट है, जैसे कि "test" या "prod".
  • client_id, डेवलपर ऐप्लिकेशन में मौजूद ग्राहक आईडी है, जिसे आपने पहले बनाया था.
  • client_secret, आपके बनाए गए डेवलपर ऐप्लिकेशन में मौजूद उपभोक्ता सीक्रेट है.

डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने की सुविधा क्या है?

JWT जनरेट करने के कुछ समय बाद, आपको Edge के एन्क्रिप्ट किए गए KVM में सेव किए गए सार्वजनिक/निजी पासकोड के जोड़े को बदलना पड़ सकता है. कुंजी का नया जोड़ा जनरेट करने की इस प्रोसेस को, डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाना कहा जाता है. पासकोड रोटेट करने पर, एक नया निजी/सार्वजनिक पासकोड का जोड़ा जनरेट होता है. साथ ही, उसे आपके Apigee Edge संगठन/एनवायरमेंट में "microgateway" केवीएम में सेव किया जाता है. इसके अलावा, पुरानी सार्वजनिक कुंजी को उसके ओरिजनल कुंजी आईडी वैल्यू के साथ सेव रखा जाता है.

JWT जनरेट करने के लिए, Edge एन्क्रिप्ट किए गए केवीएम में सेव की गई जानकारी का इस्तेमाल करता है. Edge Microgateway को पहली बार सेट अप (कॉन्फ़िगर) करने पर, microgateway नाम का एक KVM बनाया गया था और उसमें कुंजियां भरी गई थीं. केवीएम में मौजूद कुंजियों का इस्तेमाल, JWT पर हस्ताक्षर करने और उसे एन्क्रिप्ट करने के लिए किया जाता है.

केवीएम कुंजियों में ये शामिल हैं:

  • private_key - JWT पर हस्ताक्षर करने के लिए इस्तेमाल किया गया सबसे नया (हाल ही में बनाया गया) आरएसए निजी पासकोड.

  • public_key - सबसे नया (हाल ही में बनाया गया) सर्टिफ़िकेट, जिसका इस्तेमाल private_key से साइन किए गए JWT की पुष्टि करने के लिए किया जाता है.

  • private_key_kid - सबसे नया (हाल ही में बनाया गया) निजी पासकोड आईडी. यह कुंजी आईडी, private_key वैल्यू से जुड़ा होता है. इसका इस्तेमाल, डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने के लिए किया जाता है.

  • public_key1_kid - सबसे नया (हाल ही में बनाया गया) सार्वजनिक पासकोड आईडी. यह कुंजी, public_key1 वैल्यू से जुड़ी है. इसका इस्तेमाल, डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने के लिए किया जाता है. यह वैल्यू, निजी पासकोड के kid के जैसी ही होती है.

  • public_key1 - सबसे नया (हाल ही में बनाया गया) सार्वजनिक पासकोड.

डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने पर, मैप में मौजूद कुंजी की वैल्यू बदल जाती हैं. साथ ही, पुरानी सार्वजनिक कुंजियों को बनाए रखने के लिए नई कुंजियां जोड़ी जाती हैं. उदाहरण के लिए:

  • public_key2_kid - पुराना सार्वजनिक पासकोड आईडी. यह कुंजी, public_key2 वैल्यू से जुड़ी है. इसका इस्तेमाल, डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने के लिए किया जाता है.

  • public_key2 - पुराना सार्वजनिक पासकोड.

पुष्टि के लिए सबमिट किए गए JWT की पुष्टि, नए सार्वजनिक पासकोड का इस्तेमाल करके की जाएगी. अगर पुष्टि नहीं हो पाती है, तो पुराने सार्वजनिक पासकोड का इस्तेमाल तब तक किया जाएगा, जब तक उसकी समयसीमा खत्म नहीं हो जाती. यह समयसीमा 30 मिनट बाद खत्म हो जाती है. इस तरह, एपीआई ट्रैफ़िक में तुरंत रुकावट डाले बिना, कुंजियों को "रोटेट" किया जा सकता है.

डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने का तरीका

इस सेक्शन में, डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने का तरीका बताया गया है.

अगर आपने Edge Microgateway इंस्टेंस को 2.5.2 वर्शन से पहले कॉन्फ़िगर किया है, तो

अगर आपने Edge Microgateway इंस्टेंस को 2.5.2 वर्शन से पहले कॉन्फ़िगर किया है, तो आपको केवीएम और पुष्टि करने की नीति को अपग्रेड करने के लिए, ये दो कमांड चलाने होंगे:

upgradekvm -o org -e env -u username

इस कमांड के बारे में ज़्यादा जानने के लिए, केवीएम को अपग्रेड करना लेख पढ़ें.

अगला निर्देश, edgemicro-oauth प्रॉक्सी को अपग्रेड करता है. इसे Edge Microgateway को कॉन्फ़िगर करते समय, आपके Apigee संगठन में डिप्लॉय किया गया था. यह प्रॉक्सी, टोकन जनरेट करने के लिए ज़रूरी सेवाएं उपलब्ध कराती है.

upgradeauth -o org -e env -u username

इस कमांड के बारे में ज़्यादा जानने के लिए, edgemicro-auth प्रॉक्सी को अपग्रेड करना लेख पढ़ें.

कुंजियों को रोटेट करना

अपनी ~/.edgemicro/org-env-config.yaml फ़ाइल में यह लाइन जोड़ें. इसमें आपको उसी संगठन और एनवायरमेंट की जानकारी देनी होगी जिसे आपने माइक्रोगेटवे के इस्तेमाल के लिए कॉन्फ़िगर किया है:

jwk_public_keys: 'https://org-env.apigee.net/edgemicro-auth/jwkPublicKeys'

कुंजियों को बदलने के लिए, कुंजी बदलने वाला निर्देश चलाएं. (इस निर्देश के बारे में ज़्यादा जानकारी के लिए, कुंजियों को रोटेट करना देखें.)

edgemicro rotatekey -o org -e env -u username -k kid_value

उदाहरण के लिए:

edgemicro rotatekey -o jdoe -e test -u jdoe@google.com -k 2
current nodejs version is v12.5.0
current edgemicro version is 3.0.2
password:
Checking if private key exists in the KVM...
Checking for certificate...
Found Certificate
Generating New key/cert pair...
Extract new public key
Key Rotation successfully completed!

-k पैरामीटर, कुंजी आईडी (kid) के बारे में बताता है. इस आईडी का इस्तेमाल, किसी खास कुंजी से मैच करने के लिए किया जाता है. Edge Microgateway, डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने के दौरान, कुंजियों के सेट में से चुनने के लिए इस वैल्यू का इस्तेमाल करता है. ज़्यादा जानकारी के लिए, JSON वेब कुंजी की जानकारी का सेक्शन 4.5 देखें.

डेटा सुरक्षित करने वाली कुंजी का नया वर्शन बनाने के बाद, Edge, Edge Microgateway को कई कुंजियां दिखाता है. ध्यान दें कि नीचे दिए गए उदाहरण में, हर कुंजी की एक यूनीक "kid" (कुंजी आईडी) वैल्यू है. इसके बाद, माइक्रोगेटवे इन कुंजियों का इस्तेमाल करके, ऑथराइज़ेशन टोकन की पुष्टि करता है. अगर टोकन की पुष्टि नहीं हो पाती है, तो माइक्रोगेटवे यह देखता है कि क्या कुंजी सेट में कोई पुरानी कुंजी है. अगर ऐसा है, तो वह उस कुंजी का इस्तेमाल करता है. कुंजियों का फ़ॉर्मैट, JSON वेब कुंजी (JWK) होता है. इस फ़ॉर्मैट के बारे में आरएफ़सी 7517 में पढ़ा जा सकता है.

{
  "keys": [
    {
      "kty": "RSA",
      "n": "nSl7R_0wKLiWi6cO3n8aOJwYGBtinq723Jgg8i7KKWTSTYoszOjgGsJf_MX4JEW1YCScwpE5o4o8ccQN09iHVTlIhk8CNiMZNPipClmRVjaL_8IWvMQp1iN66qy4ldWXzXnHfivUZZogCkBNqCz7VSC5rw2Jf57pdViULVvVDGwTgf46sYveW_6h8CAGaD0KLd3vZffxIkoJubh0yMy0mQP3aDOeIGf_akeZeZ6GzF7ltbKGd954iNTiKmdm8IKhz6Y3gLpC9iwQ-kex_j0CnO_daHl1coYxUSCIdv4ziWIeM3dmjQ5_2dEvUDIGG6_Az9hTpNgPE5J1tvrOHAmunQ",
      "e": "AQAB",
      "kid": "2"
    },
    {
      "kty": "RSA",
      "n": "8BKwzx34BMUcHwTuQtmp8LFRCMxbkKg_zsWD6eOMIUTAsORexTGJsTy7z-4aH0wJ3fT-3luAAUPLBQwGcuHo0P1JnbtPrpuYjaJKSZOeIMOnlryJCspmv-1xG4qAqQ9XaZ9C97oecuj7MMoNwuaZno5MvsY-oi5B_gqED3vIHUjaWCErd4reONyFSWn047dvpE6mwRhZbcOTkAHT8ZyKkHISzopkFg8CD-Mij12unxA3ldcTV7yaviXgxd3eFSD1_Z4L7ZRsDUukCJkJ-8qY2-GWjewzoxl-mAW9D1tLK6qAdc89yFem3JHRW6L1le3YK37-bs6b2a_AqJKsKm5bWw",
      "e": "AQAB",
      "kid": "1"
    }
  ]
}

डाउनलोड की गई प्रॉक्सी को फ़िल्टर करना

डिफ़ॉल्ट रूप से, Edge Microgateway आपके Edge संगठन में मौजूद उन सभी प्रॉक्सी को डाउनलोड करता है जिनके नाम के शुरू में "edgemicro_" प्रीफ़िक्स होता है. इस डिफ़ॉल्ट सेटिंग को बदला जा सकता है, ताकि ऐसे प्रॉक्सी डाउनलोड किए जा सकें जिनके नाम किसी पैटर्न से मेल खाते हों.

  1. Edge Micro की कॉन्फ़िगरेशन फ़ाइल खोलें: ~/.edgemicro/org-env-config.yaml
  2. edge_config में proxyPattern एलिमेंट जोड़ें. उदाहरण के लिए, यहां दिया गया पैटर्न edgemicro_foo, edgemicro_fast, और edgemicro_first जैसी प्रॉक्सी डाउनलोड करेगा.
    edge_config:
    …
    proxyPattern: edgemicro_f*

एपीआई प्रॉक्सी के बिना प्रॉडक्ट तय करना

Apigee Edge में, ऐसा एपीआई प्रॉडक्ट बनाया जा सकता है जिसमें कोई एपीआई प्रॉक्सी न हो. इस प्रॉडक्ट कॉन्फ़िगरेशन की मदद से, उस प्रॉडक्ट से जुड़ा एपीआई पासकोड, आपके संगठन में डिप्लॉय की गई किसी भी प्रॉक्सी के साथ काम कर सकता है. Edge Microgateway के वर्शन 2.5.4 के बाद से, इस प्रॉडक्ट कॉन्फ़िगरेशन का इस्तेमाल किया जा सकता है.

डीबग करना और समस्या हल करना

डीबगर से कनेक्ट करना

Edge Microgateway को node-inspector जैसे डीबगर के साथ चलाया जा सकता है. यह कस्टम प्लग इन से जुड़ी समस्या हल करने और उन्हें डीबग करने के लिए मददगार है.

  1. Edge Microgateway को डीबग मोड में रीस्टार्ट करें. इसके लिए, start कमांड की शुरुआत में DEBUG=* जोड़ें. उदाहरण के लिए:
    DEBUG=* edgemicro start -o  myorg -e test -k
          db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s
          6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed
  2. अपना डीबगर चालू करें और उसे डीबग करने की प्रोसेस के लिए, पोर्ट नंबर पर सेट करें.
  3. अब Edge Microgateway कोड को स्टेप-बाय-स्टेप देखा जा सकता है, ब्रेकपॉइंट सेट किए जा सकते हैं, एक्सप्रेशन देखे जा सकते हैं, वगैरह.

डीबग मोड से जुड़े स्टैंडर्ड Node.js फ़्लैग तय किए जा सकते हैं. उदाहरण के लिए, --nolazy से एसिंक्रोनस कोड को डीबग करने में मदद मिलती है.

लॉग फ़ाइलों की जांच करना

अगर आपको समस्याएं आ रही हैं, तो एक्ज़ीक्यूशन की जानकारी और गड़बड़ी की जानकारी के लिए, लॉग फ़ाइलें ज़रूर देखें. ज़्यादा जानकारी के लिए, लॉग फ़ाइलें मैनेज करना लेख पढ़ें.

एपीआई पासकोड की सुरक्षा का इस्तेमाल करना

एपीआई पासकोड, Edge Microgateway को अनुरोध भेजने वाले क्लाइंट की पुष्टि करने का एक आसान तरीका है. एपीआई पासकोड पाने के लिए, Apigee Edge के किसी ऐसे प्रॉडक्ट से उपभोक्ता कुंजी (इसे क्लाइंट आईडी भी कहा जाता है) की वैल्यू कॉपी करें जिसमें Edge Microgateway का ऑथेंटिकेशन प्रॉक्सी शामिल हो.

कुंजियों को कैश मेमोरी में सेव करना

एपीआई पासकोड को धारक टोकन के लिए एक्सचेंज किया जाता है. इन्हें कैश मेमोरी में सेव किया जाता है. Edge Microgateway पर आने वाले अनुरोधों पर Cache-Control: no-cache हेडर सेट करके, कैश मेमोरी में डेटा सेव करने की सुविधा को बंद किया जा सकता है.

एपीआई पासकोड का इस्तेमाल करना

एपीआई पासकोड को एपीआई अनुरोध में, क्वेरी पैरामीटर या हेडर के तौर पर पास किया जा सकता है. डिफ़ॉल्ट रूप से, हेडर और क्वेरी पैरामीटर का नाम x-api-key होता है.

क्वेरी पैरामीटर का उदाहरण:

curl http://localhost:8000/foobar?x-api-key=JG616Gjz7xs4t0dvpvVsGdI49G34xGsz

हेडर का उदाहरण:

curl http://localhost:8000/foobar -H "x-api-key:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"

एपीआई पासकोड का नाम कॉन्फ़िगर करना

डिफ़ॉल्ट रूप से, एपीआई पासकोड हेडर और क्वेरी पैरामीटर, दोनों के लिए x-api-key नाम का इस्तेमाल किया जाता है. कॉन्फ़िगरेशन फ़ाइल में जाकर, इस डिफ़ॉल्ट सेटिंग को बदला जा सकता है. इसके बारे में, कॉन्फ़िगरेशन में बदलाव करना लेख में बताया गया है. उदाहरण के लिए, नाम को apiKey में बदलने के लिए:

oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  api-key-header: apiKey

इस उदाहरण में, क्वेरी पैरामीटर और हेडर का नाम, दोनों को बदलकर apiKey कर दिया गया है. x-api-key नाम अब किसी भी मामले में काम नहीं करेगा. कॉन्फ़िगरेशन में बदलाव करना भी देखें.

उदाहरण के लिए:

curl http://localhost:8000/foobar -H "apiKey:JG616Gjz7xs4t0dvpvVsGdI49G34xGsz"

प्रॉक्सी अनुरोधों के साथ एपीआई पासकोड इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Secure Edge Microgateway देखें.

अपस्ट्रीम रिस्पॉन्स कोड चालू करना

डिफ़ॉल्ट रूप से, अगर रिस्पॉन्स 200 स्टेटस नहीं है, तो oauth प्लग इन सिर्फ़ 4xx गड़बड़ी वाले स्टेटस कोड दिखाता है. इस व्यवहार को बदला जा सकता है, ताकि गड़बड़ी के हिसाब से यह हमेशा 4xx या 5xx कोड दिखाए. (वर्शन 3.0.7 में रिलीज़ किया गया)

इस सुविधा को चालू करने के लिए, अपने Edge Microgateway कॉन्फ़िगरेशन में oauth.useUpstreamResponse: true प्रॉपर्टी जोड़ें. उदाहरण के लिए:

oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  gracePeriod: 10
  useUpstreamResponse: true

OAuth2 टोकन सुरक्षा का इस्तेमाल करना

इस सेक्शन में, OAuth2 ऐक्सेस टोकन और रीफ़्रेश टोकन पाने का तरीका बताया गया है. माइक्रोगेटवे के ज़रिए सुरक्षित एपीआई कॉल करने के लिए, ऐक्सेस टोकन का इस्तेमाल किया जाता है. नए ऐक्सेस टोकन पाने के लिए, रीफ़्रेश टोकन का इस्तेमाल किया जाता है.

ऐक्सेस टोकन पाने का तरीका

इस सेक्शन में, ऐक्सेस टोकन पाने के लिए edgemicro-auth प्रॉक्सी का इस्तेमाल करने का तरीका बताया गया है.

edgemicro token सीएलआई कमांड का इस्तेमाल करके भी ऐक्सेस टोकन पाया जा सकता है. सीएलआई के बारे में ज़्यादा जानने के लिए, टोकन मैनेज करना लेख पढ़ें.

एपीआई 1: क्रेडेंशियल को बॉडी पैरामीटर के तौर पर भेजना

यूआरएल में अपने संगठन और एनवायरमेंट के नाम डालें. साथ ही, client_id और client_secret बॉडी पैरामीटर के लिए, Apigee Edge पर डेवलपर ऐप्लिकेशन से मिले ग्राहक आईडी और उपभोक्ता सीक्रेट की वैल्यू डालें:

curl -i -X POST "http://<org>-<test>.apigee.net/edgemicro-auth/token" \
-d '{"grant_type": "client_credentials", "client_id": "your_client_id", \
"client_secret": "your_client_secret"}' -H "Content-Type: application/json"

एपीआई 2: बेसिक ऑथ हेडर में क्रेडेंशियल भेजना

क्लाइंट क्रेडेंशियल को बेसिक ऑथेंटिकेशन हेडर के तौर पर और grant_type को फ़ॉर्म पैरामीटर के तौर पर भेजें. इस कमांड फ़ॉर्म के बारे में, RFC 6749: OAuth 2.0 Authorization Framework में भी बताया गया है.

http://<org>-<test>.apigee.net/edgemicro-auth/token -v -u your_client_id:your_client_secret \
-d 'grant_type=client_credentials' -H "Content-Type: application/x-www-form-urlencoded"

आउटपुट का सैंपल

एपीआई, JSON रिस्पॉन्स दिखाता है. ध्यान दें कि token और access_token प्रॉपर्टी में कोई अंतर नहीं है. इनमें से किसी भी तरीके का इस्तेमाल किया जा सकता है.
{
"token": "eyJraWQiOiIxIiwidHlwIjoi",
"access_token": "eyJraWQiOiIxIiwid",
"token_type": "bearer",
"expires_in": "108000"
}

रीफ़्रेश टोकन पाने का तरीका

रिफ़्रेश टोकन पाने के लिए, edgemicro-auth प्रॉक्सी के /token एंडपॉइंट पर एपीआई कॉल करें. आपको password OAuth के इस्तेमाल की अनुमति का टाइप के साथ यह एपीआई कॉल करना होगा. यहां इस प्रोसेस को पूरा करने का तरीका बताया गया है.

  1. /token एपीआई की मदद से, ऐक्सेस और रीफ़्रेश टोकन पाएं. ध्यान दें कि OAuth के इस्तेमाल की अनुमति का टाइप password है:
    curl -X POST \
      https://your_organization-your_environment.apigee.net/edgemicro-auth/token \
      -H 'Content-Type: application/json' \
      -d '{
       "client_id":"mpK6l1Bx9oE5zLdifoDbF931TDnDtLq",
       "client_secret":"bUdDcFgv3nXffnU",
       "grant_type":"password",
       "username":"mpK6lBx9RoE5LiffoDbpF931TDnDtLq",
       "password":"bUdD2FvnMsXffnU"
    }'

    एपीआई, एक ऐक्सेस टोकन और एक रीफ़्रेश टोकन दिखाता है. जवाब कुछ ऐसा दिखता है:

    {
        "token": "your-access-token",
        "access_token": "your-access-token",
        "token_type": "bearer",
        "expires_in": "108000",
        "refresh_token": "your-refresh-token",
        "refresh_token_expires_in": "431999",
        "refresh_token_issued_at": "1562087304302",
        "refresh_token_status": "approved"
    }
  2. अब रीफ़्रेश टोकन का इस्तेमाल करके, नया ऐक्सेस टोकन पाया जा सकता है. इसके लिए, उसी एपीआई के /refresh एंडपॉइंट को कॉल करें. उदाहरण के लिए:
    curl -X POST \
      https://willwitman-test.apigee.net/edgemicro-auth/refresh \
      -H 'Content-Type: application/json' \
      -d '{
       "client_id":"mpK6l1Bx9RoE5zLifoDbpF931TDnDtLq",
       "client_secret":"bUdDc2Fv3nMXffnU",
       "grant_type":"refresh_token",
       "refresh_token":"your-refresh-token"
    }'

    एपीआई, नया ऐक्सेस टोकन दिखाता है. जवाब कुछ ऐसा दिखता है:

    {
        "token": "your-new-access-token"
        }

हमेशा के लिए मॉनिटर करना

Forever, Node.js का एक टूल है. यह प्रोसेस बंद होने या गड़बड़ी होने पर, Node.js ऐप्लिकेशन को अपने-आप रीस्टार्ट करता है. Edge Microgateway में एक forever.json फ़ाइल होती है. इसे कॉन्फ़िगर करके, यह कंट्रोल किया जा सकता है कि Edge Microgateway को कितनी बार और कितने समय के अंतराल पर रीस्टार्ट किया जाए. यह फ़ाइल, forever-monitor नाम की Forever सेवा को कॉन्फ़िगर करती है. यह सेवा, प्रोग्राम के हिसाब से Forever को मैनेज करती है.

forever.json फ़ाइल, Edge Microgateway की रूट इंस्टॉल डायरेक्ट्री में मिल सकती है. Edge Microgateway कहां इंस्टॉल किया गया है देखें. कॉन्फ़िगरेशन के विकल्पों के बारे में जानने के लिए, forever-monitor दस्तावेज़ देखें.

edgemicro forever कमांड में ऐसे फ़्लैग शामिल होते हैं जिनकी मदद से, forever.json फ़ाइल (-f फ़्लैग) की जगह की जानकारी दी जा सकती है. साथ ही, Forever मॉनिटरिंग प्रोसेस (-a फ़्लैग) को शुरू/बंद किया जा सकता है. उदाहरण के लिए:

edgemicro forever -f ~/mydir/forever.json -a start

ज़्यादा जानकारी के लिए, सीएलआई रेफ़रंस में Forever monitoring देखें.

कॉन्फ़िगरेशन फ़ाइल एंडपॉइंट तय करना

अगर आपके पास Edge Microgateway के कई इंस्टेंस हैं, तो हो सकता है कि आप उनके कॉन्फ़िगरेशन को एक ही जगह से मैनेज करना चाहें. इसके लिए, आपको एक एचटीटीपी एंडपॉइंट तय करना होगा, जहां से Edge Micro अपनी कॉन्फ़िगरेशन फ़ाइल डाउनलोड कर सके. -u फ़्लैग का इस्तेमाल करके, Edge Micro को शुरू करते समय इस एंडपॉइंट की जानकारी दी जा सकती है.

उदाहरण के लिए:

edgemicro start -o jdoe -e test -u http://mylocalserver/mgconfig -k public_key -s secret_key

जहां mgconfig एंडपॉइंट, आपकी कॉन्फ़िगरेशन फ़ाइल का कॉन्टेंट दिखाता है. यह वह फ़ाइल है जो डिफ़ॉल्ट रूप से, ~/.edgemicro में मौजूद होती है. इसका नाम रखने का तरीका यह है: org-env-config.yaml.

टीसीपी कनेक्शन के डेटा बफ़र को बंद करना

Edge Microgateway के इस्तेमाल किए जाने वाले टीसीपी कनेक्शन के लिए, डेटा बफ़रिंग की सुविधा को बंद किया जा सकता है. इसके लिए, nodelay कॉन्फ़िगरेशन एट्रिब्यूट का इस्तेमाल करें.

डिफ़ॉल्ट रूप से, टीसीपी कनेक्शन डेटा भेजने से पहले उसे बफ़र करने के लिए, नेगल एल्गोरिदम का इस्तेमाल करते हैं. nodelay को true पर सेट करने से, यह व्यवहार बंद हो जाता है. इससे, socket.write() को कॉल करने पर, डेटा तुरंत भेज दिया जाएगा. ज़्यादा जानकारी के लिए, Node.js का दस्तावेज़ भी देखें.

nodelay को चालू करने के लिए, Edge Micro की कॉन्फ़िगरेशन फ़ाइल में इस तरह बदलाव करें:

edgemicro:
  nodelay: true
  port: 8000
  max_connections: 1000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

Edge Microgateway को स्टैंडअलोन मोड में चलाना

Edge Microgateway को Apigee Edge की किसी भी डिपेंडेंसी से पूरी तरह डिसकनेक्ट करके चलाया जा सकता है. इस स्थिति को स्टैंडअलोन मोड कहा जाता है. इसमें इंटरनेट कनेक्शन के बिना, Edge Microgateway को चलाया और टेस्ट किया जा सकता है.

स्टैंडअलोन मोड में, ये सुविधाएं काम नहीं करतीं. ऐसा इसलिए, क्योंकि इन्हें Apigee Edge से कनेक्ट करना ज़रूरी होता है:

  • OAuth और एपीआई पासकोड
  • कोटा
  • Analytics

दूसरी ओर, कस्टम प्लग इन और स्पाइक अरेस्ट सामान्य रूप से काम करते हैं, क्योंकि उन्हें Apigee Edge से कनेक्शन की ज़रूरत नहीं होती. इसके अलावा, extauth नाम का एक नया प्लगिन, आपको स्टैंडअलोन मोड में रहते हुए, जेडब्ल्यूटी के साथ माइक्रोगेटवे को एपीआई कॉल की अनुमति देने की सुविधा देता है.

गेटवे को कॉन्फ़िगर करना और शुरू करना

Edge Microgateway को स्टैंडअलोन मोड में चलाने के लिए:

  1. पक्का करें कि आपके पास Edge Microgateway का 3.0.1 या इसके बाद का वर्शन इंस्टॉल हो. अगर ऐसा नहीं है, तो नए वर्शन पर अपग्रेड करने के लिए, आपको यह कमांड चलाना होगा:
    npm install -g edgemicro

    अगर आपको मदद चाहिए, तो Edge Microgateway इंस्टॉल करना लेख पढ़ें.

  2. इस नाम से एक कॉन्फ़िगरेशन फ़ाइल बनाएं: $HOME/.edgemicro/org_name-env_name-config.yaml

    उदाहरण के लिए:

    vi $HOME/.edgemicro/foo-bar-config.yaml
  3. फ़ाइल में यह कोड चिपकाएं:
    edgemicro:
      port: 8000
      max_connections: 1000
      config_change_poll_interval: 600
      logging:
        level: error
        dir: /var/tmp
        stats_log_interval: 60
        rotate_interval: 24
      plugins:
        sequence:
          - extauth
          - spikearrest
    headers:
      x-forwarded-for: true
      x-forwarded-host: true
      x-request-id: true
      x-response-time: true
      via: true
    extauth:
      publickey_url: https://www.googleapis.com/oauth2/v1/certs
    spikearrest:
      timeUnit: second
      allow: 10
      buffersize: 0
  4. इस एनवायरमेंट वैरिएबल को "1" वैल्यू के साथ एक्सपोर्ट करें:
    export EDGEMICRO_LOCAL=1
  5. यहां दिया गया start कमांड चलाएं. इसमें लोकल प्रॉक्सी को इंस्टैंशिएट करने के लिए वैल्यू दें:
    edgemicro start -o org_name -e environment_name -a local_proxy_name \
      -v local_proxy_version -t target_url -b base_path

    कहां:

    • your_org, "org" का वह नाम है जिसका इस्तेमाल आपने कॉन्फ़िगरेशन फ़ाइल के नाम में किया था.
    • your_environment, "env" का वह नाम है जिसका इस्तेमाल आपने कॉन्फ़िगरेशन फ़ाइल के नाम में किया है.
    • local_proxy_name, उस लोकल प्रॉक्सी का नाम है जिसे बनाया जाएगा. अपनी पसंद का कोई भी नाम इस्तेमाल किया जा सकता है.
    • local_proxy_version, प्रॉक्सी का वर्शन नंबर है.
    • target_url, प्रॉक्सी के टारगेट का यूआरएल है. (टारगेट वह सेवा है जिसे प्रॉक्सी कॉल करता है.)
    • base_path, प्रॉक्सी का बेस पाथ है. यह वैल्यू, फ़ॉरवर्ड स्लैश से शुरू होनी चाहिए. रूट बेस पाथ के लिए, सिर्फ़ फ़ॉरवर्ड स्लैश डालें. उदाहरण के लिए, "/".

    उदाहरण के लिए:

    edgemicro start -o local -e test -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
  6. कॉन्फ़िगरेशन की जांच करें.
    curl http://localhost:8000/echo  { "error" : "missing_authorization" }

    extauth प्लग इन, foo-bar-config.yaml फ़ाइल में मौजूद है. इसलिए, आपको "missing_authorization" गड़बड़ी का मैसेज दिखता है. यह प्लगिन, उस JWT की पुष्टि करता है जो एपीआई कॉल के Authorization हेडर में मौजूद होना चाहिए. अगले सेक्शन में, आपको एक JWT मिलेगा. इसकी मदद से, एपीआई कॉल बिना किसी गड़बड़ी के किए जा सकेंगे.

उदाहरण: अनुमति टोकन पाना

यहां दिए गए उदाहरण में, Apigee Edge (edgemicro-auth/jwkPublicKeys) पर Edge Microgateway JWT एंडपॉइंट से JWT पाने का तरीका बताया गया है. यह एंडपॉइंट तब डिप्लॉय किया जाता है, जब Edge Microgateway का स्टैंडर्ड सेटअप और कॉन्फ़िगरेशन किया जाता है. Apigee एंडपॉइंट से JWT पाने के लिए, आपको पहले स्टैंडर्ड Edge Microgateway सेटअप करना होगा. साथ ही, इंटरनेट से कनेक्ट होना होगा. यहां Apigee एंडपॉइंट का इस्तेमाल सिर्फ़ उदाहरण के तौर पर किया गया है. यह ज़रूरी नहीं है. अगर आप चाहें, तो किसी दूसरे JWT टोकन एंडपॉइंट का इस्तेमाल किया जा सकता है. अगर ऐसा है, तो आपको उस एंडपॉइंट के लिए उपलब्ध कराए गए एपीआई का इस्तेमाल करके, JWT पाना होगा.

यहां दिए गए तरीके से, edgemicro-auth/jwkPublicKeys एंडपॉइंट का इस्तेमाल करके टोकन पाने का तरीका बताया गया है:.

  1. Apigee Edge पर अपने संगठन/एनवायरमेंट में edgemicro-auth प्रॉक्सी को डिप्लॉय करने के लिए, आपको Edge Microgateway का स्टैंडर्ड सेटअप और कॉन्फ़िगरेशन करना होगा. अगर आपने यह चरण पहले ही पूरा कर लिया है, तो इसे दोहराने की ज़रूरत नहीं है.
  2. अगर आपने Apigee Cloud में Edge Microgateway को डिप्लॉय किया है, तो आपको इंटरनेट से कनेक्ट होना होगा, ताकि आप इस एंडपॉइंट से JWT पा सकें.
  3. Edge Microgateway को बंद करना:
    edgemicro stop
  4. पहले बनाई गई कॉन्फ़िगरेशन फ़ाइल ($HOME/.edgemicro/org-env-config.yaml) में, extauth:publickey_url एट्रिब्यूट को अपने Apigee Edge संगठन/एनवायरमेंट में edgemicro-auth/jwkPublicKeys एंडपॉइंट पर ले जाएं. उदाहरण के लिए:
    extauth:
      publickey_url: 'https://your_org-your_env.apigee.net/edgemicro-auth/jwkPublicKeys'
  5. Edge Microgateway को पहले की तरह रीस्टार्ट करें. इसके लिए, कॉन्फ़िगरेशन फ़ाइल के नाम में इस्तेमाल किए गए संगठन/एनवायरमेंट के नाम इस्तेमाल करें. उदाहरण के लिए:
    edgemicro start -o foo -e bar -a proxy1 -v 1 -t http://mocktarget.apigee.net -b /
  6. ऑथराइज़ेशन एंडपॉइंट से JWT टोकन पाएं. edgemicro-auth/jwkPublicKeys एंडपॉइंट का इस्तेमाल करने पर, इस सीएलआई कमांड का इस्तेमाल किया जा सकता है:

edgemicro token कमांड या एपीआई का इस्तेमाल करके, Edge Microgateway के लिए JWT जनरेट किया जा सकता है. उदाहरण के लिए:

edgemicro token get -o your_org -e your_env \
  -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy

कहां:

  • your_org आपके Apigee संगठन का नाम है. इसके लिए, आपने पहले Edge Microgateway को कॉन्फ़िगर किया था.
  • your_env, संगठन का एक एनवायरमेंट है.
  • i विकल्प, डेवलपर ऐप्लिकेशन से उपभोक्ता कुंजी तय करता है. इस ऐप्लिकेशन में ऐसा प्रॉडक्ट होता है जिसमें edgemicro-auth प्रॉक्सी शामिल होता है.
  • s विकल्प, किसी डेवलपर ऐप्लिकेशन से उपभोक्ता सीक्रेट की जानकारी देता है. इस ऐप्लिकेशन में ऐसा प्रॉडक्ट होता है जिसमें edgemicro-auth प्रॉक्सी शामिल होता है.

यह निर्देश, Apigee Edge को एक JWT जनरेट करने के लिए कहता है. इसका इस्तेमाल, एपीआई कॉल की पुष्टि करने के लिए किया जा सकता है.

टोकन जनरेट करना भी देखें.

स्टैंडअलोन कॉन्फ़िगरेशन की जांच करना

कॉन्फ़िगरेशन की जांच करने के लिए, एपीआई को कॉल करें. इसके लिए, ऑथराइज़ेशन हेडर में टोकन जोड़ें. इसके बाद, यह तरीका अपनाएं:

curl http://localhost:8000/echo -H "Authorization: Bearer your_token

उदाहरण:

curl http://localhost:8000/echo -H "Authorization: Bearer eyJraWQiOiIxIiwidHlwIjo...iryF3kwcDWNv7OQ"

आउटपुट का उदाहरण:

{
   "headers":{
      "user-agent":"curl/7.54.0",
      "accept":"*/*",
      "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP",
      "client_received_start_timestamp":"1535134472699",
      "x-authorization-claims":"eyJhdDbiO...M1OTE5MTA1NDkifQ==",
      "target_sent_start_timestamp":"1535134472702",
      "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896",
      "x-forwarded-proto":"http",
      "x-forwarded-host":"localhost:8000",
      "host":"mocktarget.apigee.net",
      "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513",
      "via":"1.1 localhost, 1.1 google",
      "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212",
      "connection":"Keep-Alive"
   },
   "method":"GET",
   "url":"/",
   "body":""
}

लोकल प्रॉक्सी मोड का इस्तेमाल करना

लोकल प्रॉक्सी मोड में, Edge Microgateway को Apigee Edge पर माइक्रोगेटवे-अवेयर प्रॉक्सी डिप्लॉय करने की ज़रूरत नहीं होती. इसके बजाय, माइक्रोगेटवे शुरू करते समय, स्थानीय प्रॉक्सी का नाम, बेसपाथ, और टारगेट यूआरएल देकर, "स्थानीय प्रॉक्सी" को कॉन्फ़िगर किया जाता है. इसके बाद, माइक्रोगेटवे को किए गए एपीआई कॉल, लोकल प्रॉक्सी के टारगेट यूआरएल पर भेजे जाते हैं. अन्य सभी मामलों में, लोकल प्रॉक्सी मोड ठीक उसी तरह काम करता है जिस तरह Edge Microgateway अपने सामान्य मोड में काम करता है. पुष्टि करने की प्रोसेस पहले की तरह ही काम करती है. साथ ही, स्पाइक अरेस्ट, कोटा लागू करने, कस्टम प्लग इन वगैरह की प्रोसेस भी पहले की तरह ही काम करती है.

इस्तेमाल का उदाहरण

लोकल प्रॉक्सी मोड तब काम आता है, जब आपको Edge Microgateway के किसी इंस्टेंस के साथ सिर्फ़ एक प्रॉक्सी को जोड़ना हो. उदाहरण के लिए, Edge Microgateway को Kubernetes में साइडकार प्रॉक्सी के तौर पर इंजेक्ट किया जा सकता है. इसमें माइक्रोगेटवे और सेवा, दोनों एक ही पॉड में चलती हैं. साथ ही, माइक्रोगेटवे अपनी साथी सेवा के लिए ट्रैफ़िक को मैनेज करता है. इस डायग्राम में, इस आर्किटेक्चर को दिखाया गया है. इसमें Edge माइक्रोगेटवे, Kubernetes क्लस्टर में साइडकार प्रॉक्सी के तौर पर काम करता है. हर माइक्रोगेटवे इंस्टेंस, अपनी कंपैनियन सेवा के सिर्फ़ एक एंडपॉइंट से बात करता है:

साइडकार के तौर पर Edgemicro

इस तरह के आर्किटेक्चर का एक फ़ायदा यह है कि Edge Microgateway, कंटेनर एनवायरमेंट में डिप्लॉय की गई अलग-अलग सेवाओं के लिए एपीआई मैनेजमेंट की सुविधा देता है. जैसे, Kubernetes क्लस्टर.

लोकल प्रॉक्सी मोड को कॉन्फ़िगर करना

Edge Microgateway को लोकल प्रॉक्सी मोड में चलाने के लिए, यह तरीका अपनाएं:

  1. पक्का करें कि आपके पास Edge Microgateway का 3.0.1 या इसके बाद का वर्शन इंस्टॉल हो. अगर ऐसा नहीं है, तो नए वर्शन पर अपग्रेड करने के लिए, आपको यह कमांड चलाना होगा:
    npm install -g edgemicro

    अगर आपको मदद चाहिए, तो Edge Microgateway इंस्टॉल करना लेख पढ़ें.

  2. अपने लोकल कॉन्फ़िगरेशन एनवायरमेंट को सेट अप करने के लिए, edgemicro init चलाएं. यह ठीक उसी तरह से काम करता है जैसे Edge Microgateway के सामान्य सेटअप में होता है. Edge Microgateway को कॉन्फ़िगर करना भी देखें.
  3. edgemicro configure को चलाएं, जैसा कि Edge Microgateway के सामान्य सेटअप में किया जाता है. उदाहरण के लिए:
    edgemicro configure -o your_org -e your_env -u your_apigee_username

    यह निर्देश, Edge पर edgemicro-auth नीति को डिप्लॉय करता है. साथ ही, एक कुंजी और सीक्रेट दिखाता है. आपको माइक्रोगेटवे शुरू करने के लिए, इनकी ज़रूरत होगी. अगर आपको मदद चाहिए, तो Edge Microgateway को कॉन्फ़िगर करें देखें.

  4. Apigee Edge पर, एक एपीआई प्रॉडक्ट बनाएं. इसके लिए, यहां दी गई ज़रूरी कॉन्फ़िगरेशन की शर्तों को पूरा करें. हालांकि, अन्य सभी कॉन्फ़िगरेशन को अपनी पसंद के मुताबिक मैनेज किया जा सकता है:
  5. Apigee Edge पर, कोई डेवलपर बनाएं या चाहें, तो किसी मौजूदा डेवलपर का इस्तेमाल करें. मदद पाने के लिए, Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके डेवलपर जोड़ना लेख पढ़ें.

  6. Apigee Edge पर, एक डेवलपर ऐप्लिकेशन बनाएं. आपको ऐप्लिकेशन में, अभी-अभी बनाया गया एपीआई प्रॉडक्ट जोड़ना होगा. मदद पाने के लिए, Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में ऐप्लिकेशन रजिस्टर करना लेख पढ़ें.
  7. जिस मशीन पर Edge Microgateway इंस्टॉल है उस पर, "1" वैल्यू के साथ यह एनवायरमेंट वैरिएबल एक्सपोर्ट करें.
    export EDGEMICRO_LOCAL_PROXY=1
  8. यहां दिया गया start कमांड चलाएं:
    edgemicro start -o your_org -e your_environment -k your_key -s your_secret \
        -a local_proxy_name -v local_proxy_version -t target_url -b base_path

    कहां:

    • your_org आपके Apigee संगठन का नाम है.
    • your_environment आपके संगठन का एक एनवायरमेंट है.
    • your_key वह कुंजी है जो edgemicro configure को चलाने पर मिली थी.
    • your_secret वह सीक्रेट है जो edgemicro configure को चलाने पर मिला था.
    • local_proxy_name, उस लोकल प्रॉक्सी का नाम है जिसे बनाया जाएगा.
    • local_proxy_version, प्रॉक्सी का वर्शन नंबर है.
    • target_url, प्रॉक्सी के टारगेट का यूआरएल है. यह वह सेवा है जिसे प्रॉक्सी कॉल करेगा.
    • base_path, प्रॉक्सी का बेस पाथ है. यह वैल्यू, फ़ॉरवर्ड स्लैश से शुरू होनी चाहिए. रूट बेस पाथ के लिए, सिर्फ़ फ़ॉरवर्ड स्लैश डालें. उदाहरण के लिए, "/".

    उदाहरण के लिए:

    edgemicro start -o your_org -e test -k 7eb6aae644cbc09035a...d2eae46a6c095f \
      -s e16e7b1f5d5e24df...ec29d409a2df853163a -a proxy1 -v 1 \
      -t http://mocktarget.apigee.net -b /echo

कॉन्फ़िगरेशन की जांच करना

प्रॉक्सी एंडपॉइंट को कॉल करके, लोकल प्रॉक्सी कॉन्फ़िगरेशन की जांच की जा सकती है. उदाहरण के लिए, अगर आपने /echo का बेसपाथ तय किया है, तो प्रॉक्सी को इस तरह कॉल किया जा सकता है:

curl  http://localhost:8000/echo
{
  "error" : "missing_authorization",
  "error_description" : "Missing Authorization header"
}

इस शुरुआती एपीआई कॉल में गड़बड़ी हुई, क्योंकि आपने मान्य एपीआई पासकोड नहीं दिया. आपको यह कुंजी, पहले बनाए गए डेवलपर ऐप्लिकेशन में मिल सकती है. Edge यूज़र इंटरफ़ेस (यूआई) में ऐप्लिकेशन खोलें, उपभोक्ता कुंजी को कॉपी करें, और उस कुंजी का इस्तेमाल इस तरह करें:

curl  http://localhost:8000/echo -H 'x-api-key:your_api_key'

उदाहरण के लिए:

curl  http://localhost:8000/echo -H "x-api-key:DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP"

आउटपुट का उदाहरण:

{
  "headers":{
    "user-agent":"curl/7.54.0",
    "accept":"*/*",
    "x-api-key":"DvUdLlFwG9AvGGpEgfnNGwtvaXIlUUvP",
    "client_received_start_timestamp":"1535134472699",
    "x-authorization-claims":"eyJhdWQiOi...TQ0YmUtOWNlOS05YzM1OTE5MTA1NDkifQ==",
    "target_sent_start_timestamp":"1535134472702",
    "x-request-id":"678e3080-a7ae-11e8-a70f-87ae30db3896.8cc81cb0-a7c9-11e8-a70f-87ae30db3896",
    "x-forwarded-proto":"http",
    "x-forwarded-host":"localhost:8000",
    "host":"mocktarget.apigee.net",
    "x-cloud-trace-context":"e2ac4fa0112c2d76237e5473714f1c85/1746478453618419513",
    "via":"1.1 localhost, 1.1 google",
    "x-forwarded-for":"::1, 216.98.205.223, 35.227.194.212",
    "connection":"Keep-Alive"
  },
  "method":"GET",
  "url":"/",
  "body":""
}