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

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

Edge Microgateway v. 2.4.x

खास जानकारी

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

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

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

  • सिस्टम की डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल
  • हाल ही में शुरू किए गए Edge माइक्रोगेटवे इंस्टेंस के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल
  • चल रहे इंस्टेंस के लिए डाइनैमिक कॉन्फ़िगरेशन फ़ाइल

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

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

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

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

जहां [prefix], npm प्रीफ़िक्स डायरेक्ट्री है. देखें कि एज माइक्रोगेटवे कहां इंस्टॉल किया गया है.

सिस्टम कॉन्फ़िगरेशन फ़ाइल को बदलने पर, आपको Edge माइक्रोगेटवे को फिर से शुरू करना, उसे फिर से कॉन्फ़िगर करना, और रीस्टार्ट करना होगा:

  1. edgemicro init को कॉल करो
  2. edgemicro configure [params] को कॉल करो
  3. edgemicro start [params] को कॉल करो

हाल ही में शुरू किए गए Edge माइक्रोगेटवे इंस्टेंस के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल

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

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

  1. edgemicro stop
  2. edgemicro configure [params]
  3. edgemicro start [params]

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

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

अगर एज माइक्रोगेटवे चालू है (शून्य से डाउनटाइम का विकल्प):

  1. Edge माइक्रोगेटवे कॉन्फ़िगरेशन को फिर से लोड करें:
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]
    

    जगह:

    • आपके Edge संगठन का नाम org है. इसके लिए, ज़रूरी है कि आप संगठन के एडमिन हों.
    • env आपके संगठन का एक एनवायरमेंट है. जैसे, टेस्ट या प्रोडक्शन.
    • key, वह कुंजी है जिसे पहले कॉन्फ़िगर करने का निर्देश मिलने पर मिला था.
    • secret वह कुंजी है जिसे पहले 'कॉन्फ़िगर करें' निर्देश के ज़रिए लौटाया जाता है.

    उदाहरण

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
    

अगर Edge माइक्रोगेटवे बंद है, तो:

  1. एज माइक्रोगेटवे को रीस्टार्ट करें:
    edgemicro start -o [org] -e [env] -k [key] -s [secret]
    

    जगह:

    • आपके Edge संगठन का नाम org है. इसके लिए, ज़रूरी है कि आप संगठन के एडमिन हों.
    • env आपके संगठन का एक एनवायरमेंट है. जैसे, टेस्ट या प्रोडक्शन.
    • key, वह कुंजी है जिसे पहले कॉन्फ़िगर करने का निर्देश मिलने पर मिला था.
    • secret वह कुंजी है जिसे पहले 'कॉन्फ़िगर करें' निर्देश के ज़रिए लौटाया जाता है.

    उदाहरण

    edgemicro start -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
    

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

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 माइक्रोगेटवे को शुरू करने के लिए ज़रूरी कुंजी और सीक्रेट को इन एनवायरमेंट वैरिएबल में सेव किया जा सकता है:

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

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

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

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

https://localhost:8000/myapi

माइक्रोगेटवे सर्वर पर SSL को कॉन्फ़िगर करने के लिए, इन चरणों का पालन करें:

  1. openssl सुविधा का इस्तेमाल करके या अपने पसंदीदा तरीके से एसएसएल सर्टिफ़िकेट और कुंजी जनरेट करें या पाएं.
  2. Edge माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल में edgemicro:ssl एट्रिब्यूट जोड़ें. विकल्पों की पूरी सूची के लिए, नीचे दी गई टेबल देखें. Edge माइक्रोगेटवे कॉन्फ़िगरेशन में बदलाव करने के बारे में जानकारी के लिए, कॉन्फ़िगरेशन में बदलाव करना देखें. उदाहरण के लिए:
     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माइक्रो सेक्शन का उदाहरण दिया गया है:

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 फ़ॉर्मैट में क्लाइंट की निजी कुंजी, सर्टिफ़िकेट, और CA सर्टिफ़िकेट शामिल हैं.
passphrase इस स्ट्रिंग में निजी कुंजी या PFX के लिए लंबा पासवर्ड होता है.
ca PEM फ़ॉर्मैट में भरोसेमंद सर्टिफ़िकेट की सूची वाली फ़ाइल का पाथ.
ciphers इस्तेमाल करने के लिए साइफ़र के बारे में बताने वाली स्ट्रिंग, जिसे ',' से अलग किया जाता है.
rejectUnauthorized सही होने पर, सर्वर सर्टिफ़िकेट की पुष्टि, दिए गए CA की सूची के हिसाब से की जाती है. अगर पुष्टि नहीं हो पाती है, तो एक गड़बड़ी दिखती है.
secureProtocol इस्तेमाल करने के लिए एसएसएल का तरीका. उदाहरण के लिए, SSL को वर्शन 3 पर लागू करने के लिए SSLv3_method का इस्तेमाल करें.
servername SNI (सर्वर नेम इंंडिकेशन) TLS एक्सटेंशन के लिए सर्वर का नाम.
requestCert 2-वे एसएसएल के लिए सही; 1-वे एसएसएल के लिए गलत

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

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

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

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

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

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

यहां TLS का एक उदाहरण दिया गया है:

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

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

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

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

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

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

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

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

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

से मिलता-जुलता हो.

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

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

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

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

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

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

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

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

कंसोल को लॉग भेजें

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

edgemicro:
  logging:
    to_console: true  

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

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

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

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

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

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

  • 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 माइक्रोगेटवे इंस्टेंस तीन तरह की लॉग फ़ाइलें बनाता है:

  • api - Edge माइक्रोगेटवे से भेजे जाने वाले सभी अनुरोधों और जवाबों को लॉग करता है. एपीआई काउंटर (आंकड़े) और गड़बड़ियां भी इस फ़ाइल में लॉग की जाती हैं.
  • 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 Web Token (JWT) के JSON को हटा देती है. अगर आपको इन ऑब्जेक्ट को लॉग फ़ाइलों में आउटपुट करना है, तो Edge माइक्रोगेटवे को शुरू करते समय DEBUG=* सेट करें. उदाहरण के लिए:

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

ध्यान दें: Windows पर, SET DEBUG=* का इस्तेमाल करें

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

"एपीआई" लॉग फ़ाइल में, Edge माइक्रोगेटवे के ज़रिए अनुरोधों और रिस्पॉन्स के फ़्लो की पूरी जानकारी होती है. "api" लॉग फ़ाइलों के नाम ऐसे होते हैं:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

Edge माइक्रोगेटवे को किए गए हर अनुरोध के लिए, "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 - यूनिक्स तारीख का स्टैंप
  • info - संदर्भ पर निर्भर करता है. यह लॉग लेवल के आधार पर जानकारी, चेतावनी या गड़बड़ी हो सकती है. ये आंकड़े आंकड़े के रिकॉर्ड के लिए हो सकते हैं, चेतावनियों के लिए चेतावनी दे सकते हैं या गड़बड़ियों के लिए गड़बड़ी हो सकते हैं.
  • req - इवेंट की पहचान करता है. इस मामले में, क्लाइंट से अनुरोध करें.
  • m - अनुरोध में इस्तेमाल की गई एचटीटीपी कार्रवाई.
  • u - बेसपाथ के बाद आने वाला यूआरएल का हिस्सा.
  • h - वह होस्ट और पोर्ट नंबर जहां Edge माइक्रोगेटवे सुन रहा है.
  • r - वह रिमोट होस्ट और पोर्ट जहां से क्लाइंट का अनुरोध शुरू हुआ.
  • i - अनुरोध का आईडी. सभी चार इवेंट एंट्री में यह आईडी शेयर किया जाएगा. हर अनुरोध को एक यूनीक अनुरोध आईडी असाइन किया जाता है. लॉग रिकॉर्ड को अनुरोध आईडी के हिसाब से जोड़ने पर, टारगेट में लगने वाले समय के बारे में अहम जानकारी मिल सकती है.
  • d - Edge माइक्रोगेटवे को अनुरोध मिलने के बाद से मिलीसेकंड में अवधि. ऊपर दिए गए उदाहरण में, अनुरोध 0 के लिए टारगेट का जवाब सात मिलीसेकंड (लाइन 3) के बाद मिला था और जवाब क्लाइंट को अतिरिक्त चार मिलीसेकंड (लाइन 4) के बाद भेजा गया था. दूसरे शब्दों में, अनुरोध के लिए इंतज़ार का कुल समय 11 मिलीसेकंड था. इसमें से 7 मिलीसेकंड, टारगेट के हिसाब से लगे थे. वहीं, एज माइक्रोगेटवे ने ही 4 मिलीसेकंड लिया था.

2. टारगेट के लिए किए गए आउटगोइंग अनुरोध का सैंपल:

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

3. टारगेट से मिलने वाले जवाब का सैंपल

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

1436403888651 - यूनिक्स तारीख का स्टैंप

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

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

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

1436403888651 - यूनिक्स तारीख का स्टैंप

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

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

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

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

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

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

Edge_config एट्रिब्यूट

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

  • bootstrap: (डिफ़ॉल्ट: कोई नहीं) Apigee Edge पर चल रही Edge माइक्रोगेटवे की खास सेवा पर ले जाने वाला यूआरएल. Edge माइक्रोगेटवे, इस सेवा का इस्तेमाल Apigee Edge से कम्यूनिकेट करने के लिए करता है. जब सार्वजनिक/निजी कुंजी का जोड़ा जनरेट करने के लिए निर्देश दिया जाता है, तब यह यूआरएल दिखता है: edgemicro genkeys. ज़्यादा जानकारी के लिए, एज माइक्रोगेटवे को सेट अप और कॉन्फ़िगर करना देखें.
  • jwt_public_key: (डिफ़ॉल्ट: कोई नहीं) वह यूआरएल जो Apigee Edge पर डिप्लॉय किए गए एज माइक्रोगेटवे प्रॉक्सी पर ले जाता है. यह प्रॉक्सी, क्लाइंट को साइन किए हुए ऐक्सेस टोकन जारी करने के लिए, पुष्टि करने वाले एंडपॉइंट के तौर पर काम करता है. जब प्रॉक्सी को डिप्लॉय करने के लिए निर्देश दिया जाता है, तब यह यूआरएल दिखता है: edgemicro कॉन्फ़िगरेशन. ज़्यादा जानकारी के लिए, एज माइक्रोगेटवे को सेट अप और कॉन्फ़िगर करना देखें.

Edgeमाइक्रो एट्रिब्यूट

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

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

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

हेडर एट्रिब्यूट

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

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

oauth एट्रिब्यूट

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

  • allowNoAuthorization: (डिफ़ॉल्ट: गलत) अगर 'सही है' पर सेट किया जाता है, तो एपीआई कॉल को Edge माइक्रोगेटवे से पास किया जा सकता है. इसके लिए, कोई भी अनुमति देने वाले हेडर का इस्तेमाल नहीं किया जाता. 'ऑथराइज़ेशन हेडर' (डिफ़ॉल्ट) ज़रूरी बनाने के लिए, इसे 'गलत' पर सेट करें.
  • allowInvalidAuthorization: (डिफ़ॉल्ट: गलत) अगर इसे 'सही है' पर सेट किया जाता है, तो एपीआई कॉल को पास किया जा सकता है. ऐसा तब किया जाता है, जब ऑथराइज़ेशन हेडर में पास किया गया टोकन अमान्य हो या उसकी समयसीमा खत्म हो गई हो. मान्य टोकन की ज़रूरत के लिए, इसे 'गलत' पर सेट करें (डिफ़ॉल्ट).
  • ऑथराइज़ेशन-हेडर: (डिफ़ॉल्ट: Authorize: Bearer) यह हेडर, Edge माइक्रोगेटवे पर ऐक्सेस टोकन भेजने के लिए इस्तेमाल किया जाता है. उन मामलों में डिफ़ॉल्ट सेटिंग को बदला जा सकता है जहां टारगेट को किसी दूसरे काम के लिए, अनुमति देने वाले हेडर का इस्तेमाल करने की ज़रूरत होती है.
  • api-key-header: (डिफ़ॉल्ट: x-api-key) हेडर या क्वेरी पैरामीटर का नाम Edge माइक्रोगेटवे में एपीआई पासकोड भेजने के लिए इस्तेमाल किया जाता है. एपीआई पासकोड का इस्तेमाल करना भी देखें.
  • keepAuthHeader: (डिफ़ॉल्ट: गलत) अगर 'सही' पर सेट किया जाता है, तो अनुरोध में भेजा गया ऑथराइज़ेशन हेडर, टारगेट को पास कर दिया जाता है (इसे सुरक्षित रखा जाता है).
  • allowOAuthOnly -- अगर इस नीति को 'सही है' पर सेट किया जाता है, तो हर एपीआई में बेयरर ऐक्सेस टोकन के साथ ऑथराइज़ेशन हेडर होना चाहिए. आपको सिर्फ़ OAuth सुरक्षा मॉडल को अनुमति देने की अनुमति मिलती है (पुराने सिस्टम के साथ काम करने की सुविधा को बनाए रखते हुए). (4.2.x जोड़ा गया)
  • allowAPIKeyOnly -- अगर 'सही है' पर सेट किया जाता है, तो हर एपीआई में एपीआई पासकोड के साथ एक x-api-key हेडर (या पसंद के मुताबिक जगह) होना चाहिए.इससे आपको सिर्फ़ एपीआई पासकोड के सुरक्षा मॉडल को अनुमति मिलती है (पुराने सिस्टम के साथ काम करने की सुविधा को बनाए रखते हुए). (4.2.x जोड़ा गया)

प्लग इन के लिए बने एट्रिब्यूट

हर प्लगिन की कॉन्फ़िगर की जा सकने वाली विशेषताओं के बारे में जानने के लिए, प्लगिन इस्तेमाल करना देखें.

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

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

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

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

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

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

कंपनी के फ़ायरवॉल के पीछे, Edge माइक्रोगेटवे सेट अप करना

इस्तेमाल किया जा सकने वाला v4.2.x

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

पहला विकल्प:

पहला विकल्प यह है कि माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल में, Edgemicro: प्रॉक्सी_tunnel विकल्प को 'सही' पर सेट किया जाए:

edge_config:

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

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

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

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

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

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

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

export NO_PROXY='localhost,localhost:8080'

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

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 माइक्रोगेटवे को सेट अप करने का तरीका.

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

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

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


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

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

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

  1. डीबग मोड में, Edge माइक्रोगेटवे को रीस्टार्ट करें. ऐसा करने के लिए, स्टार्ट कमांड की शुरुआत में DEBUG=* जोड़ें. उदाहरण के लिए:

    DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed

    ध्यान दें: Windows पर, SET DEBUG=* का इस्तेमाल करें

  2. डीबगर की प्रोसेस शुरू करें और इसे पोर्ट नंबर पर सुनने के लिए सेट करें, ताकि डीबग करने की प्रोसेस पूरी हो सके.
  3. इसके बाद, Edge माइक्रोगेटवे कोड को इस्तेमाल किया जा सकता है, ब्रेकपॉइंट सेट किया जा सकता है, एक्सप्रेशन देखे जा सकते हैं वगैरह.

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

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

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

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

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

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

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

OAuth2 टोकन सुरक्षा का इस्तेमाल किया जा रहा है

प्रॉक्सी अनुरोधों के साथ OAuth टोकन का इस्तेमाल करने के बारे में जानकारी पाने के लिए, सिक्योर Edge माइक्रोगेटवे देखें.

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

प्रॉक्सी अनुरोधों के साथ एपीआई कुंजियों का इस्तेमाल करने के बारे में जानकारी पाने के लिए, सिक्योर Edge माइक्रोगेटवे पर जाएं.

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

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

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