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

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

Edge Microgateway v. 3.1.x

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

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

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

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

  1. Edge के सबसे नए वर्शन पर अपग्रेड करने के लिए, नीचे दिया गया npm निर्देश चलाएं माइक्रोगेटवे:
    npm upgrade edgemicro -g

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

अगर Edge माइक्रोगेटवे चल रहा है, तो (शून्य-डाउनटाइम विकल्प):

  1. Edge Microgateway कॉन्फ़िगरेशन को फिर से लोड करें:
    edgemicro reload -o $ORG -e $ENV -k $KEY -s $SECRET

    कहां:

    • $ORG आपके Edge संगठन का नाम है (आपका एक संगठन होना ज़रूरी है एडमिन).
    • $ENV आपके संगठन का एक एनवायरमेंट है (जैसे कि "test" या "प्रॉडक्ट").
    • $KEY वह कुंजी है जो कॉन्फ़िगर करने के निर्देश से पहले मिलती थी.
    • $SECRET वह कुंजी है जो कॉन्फ़िगर करने के निर्देश से पहले मिलती थी.

    उदाहरण के लिए

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

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

  1. Edge माइक्रोगेटवे को रीस्टार्ट करें:
    edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET

    कहां:

    • $ORG आपके Edge संगठन का नाम है (आपका एक संगठन होना ज़रूरी है एडमिन).
    • $ENV आपके संगठन का एक एनवायरमेंट है. जैसे, "टेस्ट" या "प्रॉडक्ट").
    • $KEY वह कुंजी है जो कॉन्फ़िगर करने के निर्देश से पहले मिलती थी.
    • $SECRET वह कुंजी है जो कॉन्फ़िगर करने के निर्देश से पहले मिलती थी.

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

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

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

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

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

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

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

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

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

https://localhost:8000/myapi

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

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

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

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

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

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

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

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

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

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

Edgeमाइक्रो-ऑथराइज़ेशन प्रॉक्सी को पसंद के मुताबिक बनाना

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

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

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

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

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

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

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 का सुझाव है कि आप इन तरीकों का इस्तेमाल करें तरीके:

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

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

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

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

"api" की सामग्री लॉग फ़ाइल

"api" लॉग फ़ाइल में अनुरोधों और जवाबों के फ़्लो के बारे में पूरी जानकारी दी गई है एज माइक्रोगेटवे तक पहुंचा जा सकता है. "api" लॉग फ़ाइलों के नाम इस तरह रखे जाते हैं:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

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

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

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

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

Edge Microgateway के कॉन्फ़िगरेशन के बारे में जानकारी

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

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

Edge_config एट्रिब्यूट

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

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

Edgemicro एट्रिब्यूट

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

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

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

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

    edgemicro:
    keep_alive_timeout: 6000
    headers_timeout: 12000

    अंदरूनी तौर पर, पैरामीटर Node.js को Server.headersTimeout एट्रिब्यूट की वैल्यू सबमिट करें. (डिफ़ॉल्ट: 5 सेकंड से ज़्यादा edgemicro.keep_alive_timeout से सेट किया गया समय. यह डिफ़ॉल्ट यह सेटिंग, लोड बैलेंसर या प्रॉक्सी को गलती से कनेक्शन ड्रॉप करने से रोकती है.) (v3.1.1 को जोड़ा गया)

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

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

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

oauth एट्रिब्यूट

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

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

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

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

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

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

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

प्रॉडक्ट फ़िल्टर किए जा रहे हैं

Edge माइक्रोगेटवे पर चलने वाले एपीआई प्रॉडक्ट की संख्या को सीमित करने के लिए, यहां दिए गए कॉन्फ़िगरेशन का इस्तेमाल करें डाउनलोड और प्रोसेस करता है. डाउनलोड किए गए प्रॉडक्ट को फ़िल्टर करने के लिए, productnamefilter जोड़ें Edge माइक्रोगेटवे *.config.yaml में दिए गए, /products एपीआई के लिए क्वेरी पैरामीटर फ़ाइल से लिए जाते हैं. उदाहरण के लिए:

edge_config:
  bootstrap: >-
    https://edgemicroservices.apigee.net/edgemicro/bootstrap/organization/willwitman/environment/test
  jwt_public_key: 'https://myorg-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://myorg-test.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24'

ध्यान दें कि क्वेरी पैरामीटर की वैल्यू, रेगुलर एक्सप्रेशन फ़ॉर्मैट में होनी चाहिए और यूआरएल को कोड में बदला जा सकता है. उदाहरण के लिए, रेगुलर एक्सप्रेशन ^[Ee]dgemicro.*$ के नाम इस तरह के होते हैं: " Edgemicro-test-1" , " Edgemicro_demo" और "Edgemicro_New_Demo" शामिल हैं. यूआरएल कोड में बदली गई वैल्यू, इसके लिए सही है क्वेरी पैरामीटर में इसका इस्तेमाल किया जाएगा: %5E%5BEe%5Ddgemicro.%2A%24.

नीचे दिए गए डीबग आउटपुट से पता चलता है कि सिर्फ़ फ़िल्टर किए गए प्रॉडक्ट डाउनलोड किए गए थे:

...
2020-05-27T03:13:50.087Z [76060] [microgateway-config network] products download from https://gsc-demo-prod.apigee.net/edgemicro-auth/products?productnamefilter=%5E%5BEe%5Ddgemicro.%2A%24 returned 200 OK
...
....
....
{
   "apiProduct":[
      {
         "apiResources":[

         ],
         "approvalType":"auto",
         "attributes":[
            {
               "name":"access",
               "value":"public"
            }
         ],
         "createdAt":1590549037549,
         "createdBy":"k***@g********m",
         "displayName":"test upper case in name",
         "environments":[
            "prod",
            "test"
         ],
         "lastModifiedAt":1590549037549,
         "lastModifiedBy":"k***@g********m",
         "name":"Edgemicro_New_Demo",
         "proxies":[
            "catchall"
         ],
         "quota":"null",
         "quotaInterval":"null",
         "quotaTimeUnit":"null",
         "scopes":[

         ]
      },
      {
         "apiResources":[

         ],
         "approvalType":"auto",
         "attributes":[
            {
               "name":"access",
               "value":"public"
            }
         ],
         "createdAt":1590548328998,
         "createdBy":"k***@g********m",
         "displayName":"edgemicro test 1",
         "environments":[
            "prod",
            "test"
         ],
         "lastModifiedAt":1590548328998,
         "lastModifiedBy":"k***@g********m",
         "name":"edgemicro-test-1",
         "proxies":[
            "Lets-Encrypt-Validation-DoNotDelete"
         ],
         "quota":"null",
         "quotaInterval":"null",
         "quotaTimeUnit":"null",
         "scopes":[

         ]
      },
      {
         "apiResources":[
            "/",
            "/**"
         ],
         "approvalType":"auto",
         "attributes":[
            {
               "name":"access",
               "value":"public"
            }
         ],
         "createdAt":1558182193472,
         "createdBy":"m*********@g********m",
         "displayName":"Edge microgateway demo product",
         "environments":[
            "prod",
            "test"
         ],
         "lastModifiedAt":1569077897465,
         "lastModifiedBy":"m*********@g********m",
         "name":"edgemicro_demo",
         "proxies":[
            "edgemicro-auth",
            "edgemicro_hello"
         ],
         "quota":"600",
         "quotaInterval":"1",
         "quotaTimeUnit":"minute",
         "scopes":[

         ]
      }
   ]
}

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

Edge माइक्रोगेटवे की फ़्रीक्वेंसी को कंट्रोल करने के लिए, इन कॉन्फ़िगरेशन पैरामीटर का इस्तेमाल करें Apigee के लिए उपलब्ध आंकड़ों का डेटा:

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

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

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 प्लगिन को कॉन्फ़िगर करके, किसी एपीआई पाथ को अलग किया जा सकता है, ताकि यह इस तरह दिखे एज Analytics के डैशबोर्ड में एक अलग प्रॉक्सी. उदाहरण के लिए, आपके पास हेल्थ चेक एपीआई को डैशबोर्ड में अलग-अलग करें, ताकि उसे असल एपीआई प्रॉक्सी कॉल के साथ किसी तरह का भ्रम न हो. इस Analytics डैशबोर्ड, अलग-अलग प्रॉक्सी, नाम रखने के इस पैटर्न का पालन करते हैं:

edgemicro_proxyname-health

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

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

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

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

एक GA4 की मदद से कंपनी के लिए फ़ायरवॉल

Apigee Edge से संपर्क करने के लिए, एचटीटीपी प्रॉक्सी का इस्तेमाल करें

वर्शन 3.1.2 में जोड़ा गया.

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

  1. एनवायरमेंट वैरिएबल सेट करना HTTP_PROXY, HTTPS_PROXY, और NO_PROXY. ये वैरिएबल हर उस एचटीटीपी प्रॉक्सी के होस्ट को कंट्रोल करते हैं जिसका इस्तेमाल आपको कम्यूनिकेशन के लिए करना है Apigee Edge या किन होस्ट को Apigee Edge के साथ कम्यूनिकेशन को मैनेज नहीं करना चाहिए. उदाहरण के लिए:
    export HTTP_PROXY='http://localhost:3786'
    export HTTPS_PROXY='https://localhost:3786'
    export NO_PROXY='localhost,localhost:8080'

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

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

  2. Edge Microgateway को रीस्टार्ट करें.

टारगेट कम्यूनिकेशन के लिए, एचटीटीपी प्रॉक्सी का इस्तेमाल करें

वर्शन 3.1.2 में जोड़ा गया.

Edge माइक्रोगेटवे और बैकएंड टारगेट के बीच कम्यूनिकेशन के लिए, एचटीटीपी प्रॉक्सी का इस्तेमाल करने के लिए, ये काम करें:

  1. माइक्रोगेटवे कॉन्फ़िगरेशन फ़ाइल में यह कॉन्फ़िगरेशन जोड़ें:
    edgemicro:
      proxy:
        tunnel: true | false
        url: proxy_url
        bypass: target_host # target hosts to bypass the proxy.
        enabled: true | false

    कहां:

    • टनल: (ज़रूरी नहीं) सही होने पर Edge Microgateway, एचटीटीपी को टनल करने के लिए एचटीटीपी कनेक्ट तरीके का इस्तेमाल करता है एक टीसीपी कनेक्शन पर अनुरोध भेजना चाहते हैं. (अगर एनवायरमेंट वैरिएबल, जैसे नीचे बताया गया है, प्रॉक्सी कॉन्फ़िगर करने के लिए TLS सक्षम है). डिफ़ॉल्ट: false
    • url: एचटीटीपी प्रॉक्सी यूआरएल.
    • बायपास: (ज़रूरी नहीं) कॉमा लगाकर अलग किए गए, टारगेट होस्ट के एक या उससे ज़्यादा यूआरएल दिखाता है को एचटीटीपी प्रॉक्सी को बायपास कर देना चाहिए. अगर यह प्रॉपर्टी सेट नहीं है, तो NO_PROXY का इस्तेमाल करें एनवायरमेंट वैरिएबल का इस्तेमाल करके तय करें कि किन टारगेट यूआरएल को बायपास करना है.
    • चालू है: अगर सही है और proxy.url सेट है, तो एचटीटीपी प्रॉक्सी के लिए proxy.url वैल्यू का इस्तेमाल करें. अगर सही है और proxy.url सेट नहीं है, तो एचटीटीपी प्रॉक्सी में बताई गई प्रॉक्सी का इस्तेमाल करें एनवायरमेंट वैरिएबल HTTP_PROXY और HTTPS_PROXY, जैसा कि इसमें बताया गया है Apigee Edge के साथ कम्यूनिकेशन के लिए, एचटीटीपी प्रॉक्सी का इस्तेमाल करें.

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

    edgemicro:
      proxy:
        tunnel: true
        url: 'http://localhost:3786'
        bypass: 'localhost','localhost:8080' # target hosts to bypass the proxy.
        enabled: true

  2. Edge Microgateway को रीस्टार्ट करें.

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

एक या उससे ज़्यादा "*" का इस्तेमाल किया जा सकता है किसी प्रॉपर्टी के बेस पाथ में वाइल्डकार्ड edgemicro_* (माइक्रोगेटवे-अवेयर) प्रॉक्सी. उदाहरण के लिए, इसका बेस पाथ /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 सुरक्षा के लिए बीयरर टोकन के रूप में JWTs का इस्तेमाल करता है. जनरेट करने पर का इस्तेमाल करने पर, आपको एक JWT वापस मिलता है. इसके बाद आप JWT का इस्तेमाल एपीआई कॉल का ऑथराइज़ेशन हेडर. उदाहरण के लिए:

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

नया JWT जनरेट किया जा रहा है

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

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 संगठन/एनवायरमेंट में केवीएम. इसके अलावा, पुरानी सार्वजनिक कुंजी, उसके मूल पासकोड आईडी की वैल्यू के साथ सेव रहती है.

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

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

  • private_key - साइन करने के लिए इस्तेमाल की जाने वाली सबसे नई आरएसए निजी कुंजी (हाल ही में बनाई गई) JWTs.

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

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

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

  • public_key1 - सबसे नई (हाल ही में बनाई गई) सार्वजनिक कुंजी.

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

  • public_key2_kid - पुराना सार्वजनिक पासकोड आईडी. यह कुंजी, Public_key2 वैल्यू है और इसका इस्तेमाल कुंजी को घुमाने के लिए किया जाता है.

  • public_key2 - पुरानी सार्वजनिक कुंजी.

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

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

इस सेक्शन में, 'की' का नया वर्शन बनाने का तरीका बताया गया है.

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

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

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

कुंजी घुमाने के बाद Edge, Edge Microgateway के लिए कई कुंजियां दिखाता है. इसमें नोट नीचे दिए गए उदाहरण में, हर कुंजी का एक यूनीक "बच्चा" है (मुख्य आईडी) की वैल्यू. इसके बाद माइक्रोगेटवे इनका इस्तेमाल करता है अनुमति टोकन की पुष्टि करने की कुंजियां. अगर टोकन की पुष्टि नहीं हो पाती है, तो माइक्रोगेटवे देखें कि क्या कुंजी के सेट में कोई पुरानी कुंजी है और उस कुंजी को आज़माता है. फ़ॉर्मैट दी गई कुंजी, JSON Web Key (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 माइक्रो कॉन्फ़िगरेशन फ़ाइल खोलें: ~/.edgemicro/org-env-config.yaml
  2. Edge_config में प्रॉक्सी पैटर्न एलिमेंट जोड़ें. उदाहरण के लिए, निम्न पैटर्न Edgemicro_foo, Edgemicro_Fast, और Edgemicro_first जैसे प्रॉक्सी डाउनलोड करें.
    edge_config:proxyPattern: edgemicro_f*

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

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

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

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

एज माइक्रोगेटवे को डीबगर की मदद से चलाया जा सकता है. जैसे, node-inspector. यह इनके लिए काम का है का इस्तेमाल करें.

  1. डीबग मोड में Edge माइक्रोगेटवे को रीस्टार्ट करें. ऐसा करने के लिए, DEBUG=* को इसमें जोड़ें start कमांड की शुरुआत:
    DEBUG=* edgemicro start -o $ORG -e $ENV -k $KEY -s $SECRET

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

    export DEBUG=* nohup edgemicro start \
    -o $ORG -e $ENV -k $KEY -s $SECRET 2>&1 | tee /tmp/file.log

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

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

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

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

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

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

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

एपीआई पासकोड, कैश मेमोरी में सेव किए गए बेयरर टोकन के लिए इस्तेमाल किए जाते हैं. आप सेटिंग करके कैश मेमोरी में सेव होने की सुविधा बंद कर सकते हैं Edge पर आने वाले अनुरोधों के लिए 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"

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

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

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

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

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

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

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

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

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

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

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

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

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. इस आदेश फ़ॉर्म की चर्चा इसमें भी की गई है आरएफ़सी 6749: OAuth 2.0 ऑथराइज़ेशन फ़्रेमवर्क.

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"
}

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

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

  1. /token API का इस्तेमाल करके, ऐक्सेस और रीफ़्रेश टोकन पाएं. ध्यान दें कि अनुदान का टाइप 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 ऐप्लिकेशन को अपने-आप रीस्टार्ट करेगा. किनारे Microgateway में एक forever.json फ़ाइल होती है, जिसे आप कॉन्फ़िगर कर सकते हैं कि आप कितनी Edge माइक्रोगेटवे को कितनी बार और कितने अंतरालों पर रीस्टार्ट किया जाना चाहिए. यह फ़ाइल किसी हमेशा के लिए ऐसी सेवा जिसे हमेशा के लिए मॉनिटर कहा जाता है, जो हमेशा के लिए मैनेज करती है प्रोग्रामेटिक रूप से.

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

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

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

ज़्यादा जानकारी के लिए, सीएलआई रेफ़रंस में हमेशा के लिए मॉनिटरिंग करना लेख पढ़ें.

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

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

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

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

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

टीसीपी कनेक्शन के डेटा को बफ़र करने की सुविधा बंद की जा रही है

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

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

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

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 माइक्रोगेटवे, स्टैंडअलोन मोड में चल रहा है

Edge Microgateway को किसी भी डिवाइस से पूरी तरह से डिसकनेक्ट किया जा सकता है Apigee Edge डिपेंडेंसी. 'एज माइक्रोगेटवे' को चलाने और टेस्ट करने की सुविधा के तौर पर 'स्टैंडअलोन मोड' कहा जाता है का इस्तेमाल किया जा सकता है.

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

  • OAuth और API कुंजी
  • अनुरोध भेजने की तय सीमा (कोटा)
  • Analytics

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

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

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

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

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

    vi $HOME/.edgemicro/foo-bar-config.yaml
  2. फ़ाइल में यह कोड चिपकाएं:
    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
  3. नीचे दिए गए एनवायरमेंट वैरिएबल को "1" वैल्यू के साथ एक्सपोर्ट करें:
    export EDGEMICRO_LOCAL=1
  4. यहां दिया गया start निर्देश चलाएं, जहां आपको इंस्टैंशिएट करने के लिए वैल्यू देनी है लोकल प्रॉक्सी:
    edgemicro start -o $ORG -e $ENV -a $LOCAL_PROXY_NAME \
      -v $LOCAL_PROXY_VERSION -t $TARGET_URL -b $BASE_PATH

    कहां:

    • $ORG "संगठन" है दिया गया है, जिसका उपयोग आपने कॉन्फ़िगरेशन फ़ाइल नाम में किया था.
    • $ENV "env" है वह नाम जिसे आपने कॉन्फ़िगरेशन फ़ाइल में इस्तेमाल किया है नाम.
    • $LOCAL_PROXY_NAME बनाई जाने वाली लोकल प्रॉक्सी का नाम है. Google Analytics 4 पर माइग्रेट करने के लिए, अपनी पसंद का कोई भी नाम डालें.
    • $LOCAL_PROXY_VERSION, प्रॉक्सी का वर्शन नंबर है.
    • $TARGET_URL, प्रॉक्सी के टारगेट के लिए यूआरएल है. (टारगेट प्रॉक्सी कॉल करने की सेवा.)
    • $BASE_PATH, प्रॉक्सी का बेस पाथ है. यह मान फ़ॉरवर्ड से शुरू होना चाहिए स्लैश. रूट बेस पाथ के लिए, सिर्फ़ फ़ॉरवर्ड स्लैश की जानकारी दें; उदाहरण के लिए, "/".

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

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

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

उदाहरण के लिए: ऑथराइज़ेशन टोकन पाना

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

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

  1. आपको मानकों का पालन करना होगा edgemicro-auth प्रॉक्सी को डिप्लॉय करने के लिए, एज माइक्रोगेटवे का सेटअप और कॉन्फ़िगरेशन आपके संगठन या एनवायरमेंट के लिए, Apigee Edge पर उपलब्ध है. अगर आपने यह चरण पहले कर लिया है, तो आपको इसे दोहराने की ज़रूरत नहीं है.
  2. अगर आपने Edge Microgateway को Apigee Cloud में डिप्लॉय किया है, तो आपका डिवाइस इंटरनेट से कनेक्ट होना ज़रूरी है. इससे आपको इस एंडपॉइंट से जेडब्ल्यूटी मिलता है.
  3. Edge माइक्रोगेटवे को बंद करें:
    edgemicro stop
  4. आपकी पहले बनाई गई कॉन्फ़िगरेशन फ़ाइल में ($HOME/.edgemicro/org-env-config.yaml), extauth:publickey_url को पॉइंट करें एट्रिब्यूट की वैल्यू के तौर पर 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 का इस्तेमाल कर रहे हैं एंडपॉइंट के रूप में, आप इस सीएलआई कमांड का इस्तेमाल कर सकते हैं:

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

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

कहां:

  • your_org, आपके उस Apigee संगठन का नाम है जिसके लिए पहले आपने साइन इन किया था कॉन्फ़िगर किया गया Edge माइक्रोगेटवे है.
  • 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 माइक्रोगेटवे अपने सामान्य मोड में है. पुष्टि करने की सुविधा, अचानक से अपने-आप पुष्टि होने की सुविधा की तरह ही काम करती है गिरफ़्तारी और कोटा लागू करना, कस्टम प्लगिन वगैरह.

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

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

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

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

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

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

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

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

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

  5. Apigee Edge पर, डेवलपर ऐप्लिकेशन बनाएं. आपको एपीआई प्रॉडक्ट जोड़ना ज़रूरी है जिसे अभी ऐप्लिकेशन के लिए बनाया गया है. सहायता के लिए, Edge में ऐप्लिकेशन रजिस्टर करना देखें मैनेजमेंट यूज़र इंटरफ़ेस (यूआई).
  6. जिस मशीन पर Edge माइक्रोगेटवे इंस्टॉल है उस पर, इन्हें एक्सपोर्ट करें "1" वैल्यू वाला एनवायरमेंट वैरिएबल.
    export EDGEMICRO_LOCAL_PROXY=1
  7. नीचे दिया गया 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":""
}

सिंक करने वाले का इस्तेमाल करना

यह अनुभाग बताता है कि सिंकर का उपयोग कैसे किया जाए, यह एक वैकल्पिक सुविधा है, जो Edge Microgteway को बेहतर बनाता है, जिससे वह अपने असर को कम करता है का इस्तेमाल करें. के साथ सिंक करने वाला इंस्टेंस चल रहा हो, अलग-अलग नोड पर चल रहे अन्य Edge Microgateway इंस्टेंस वे सीधे इस डेटाबेस से अपना कॉन्फ़िगरेशन हासिल कर सकते हैं.

फ़िलहाल, सिंक्रोनाइज़र की सुविधा Redis 5.0.x के साथ काम करती है.

सिंक करने वाला क्या है?

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

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

Edge माइक्रोगेटवे सिंकर, एज माइक्रोगेटवे के लिए एक वैकल्पिक तरीका है का इस्तेमाल करता है. इस सिंकर की मदद से, Edge माइक्रोगेट वे सभी काम कर सकते हैं ठीक से प्रारंभ होने और सिंक में बने रहने के लिए अलग-अलग नोड पर चल रहे इंस्टेंस Edge Microgateway और Apigee Edge के बीच के इंटरनेट कनेक्शन में रुकावट आ रही है.

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

सिंक करने वाले इंस्टेंस को कॉन्फ़िगर करना

org-env/config.yaml फ़ाइल में इसके लिए, यह कॉन्फ़िगरेशन जोड़ें वह Edge Microgateway इंस्टॉलेशन जिसे आप सिंक करने वाले के रूप में इस्तेमाल करना चाहते हैं:

edgemicro:
  redisHost: host_IP
  redisPort: host_port
  redisDb: database_index
  redisPassword: password
edge_config:
  synchronizerMode: 1
  redisBasedConfigCache: true

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

edgemicro:
  redisHost: 192.168.4.77
  redisPort: 6379
  redisDb: 0
  redisPassword: codemaster
edge_config:
  synchronizerMode: 1
  redisBasedConfigCache: true
विकल्प ब्यौरा
redisHost वह होस्ट जहां आपका Redis इंस्टेंस चल रहा है. डिफ़ॉल्ट: 127.0.0.1
redisPort Redis इंस्टेंस का पोर्ट. डिफ़ॉल्ट: 6379
redisDb इस्तेमाल करने के लिए Redis DB. डिफ़ॉल्ट: 0
redisPassword आपके डेटाबेस का पासवर्ड.

आखिर में, कॉन्फ़िगरेशन फ़ाइल को सेव करें और Edge Microgateway इंस्टेंस शुरू करें. यह शुरू हो जाएगा पोलिंग Apigee Edge और डाउनलोड किए गए कॉन्फ़िगरेशन का डेटा, Redis डेटाबेस में सेव करना.

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

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

हर अतिरिक्त एज माइक्रोगेटवे नोड में नीचे दिया गया कॉन्फ़िगरेशन जोड़ें org-env/config.yaml फ़ाइल. ध्यान दें कि synchronizerMode प्रॉपर्टी को 0 पर सेट किया गया है. यह प्रॉपर्टी, इंस्टेंस को सामान्य ऑपरेट करने के लिए सेट करती है Edge Microgateway इंस्टेंस, जो API प्रॉक्सी ट्रैफ़िक को प्रोसेस करता है और इंस्टेंस को जो Redis डेटाबेस से लिया गया है.

edgemicro:
  redisHost: host_IP
  redisPort: host_port
  redisDb: database_index
  redisPassword: password
edge_config:
  synchronizerMode: 0
  redisBasedConfigCache: true

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

edgemicro:
  redisHost: 192.168.4.77
  redisPort: 6379
  redisDb: 0
  redisPassword: codemaster
edge_config:
  synchronizerMode: 0
  redisBasedConfigCache: true

कॉन्फ़िगरेशन प्रॉपर्टी

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

एट्रिब्यूट वैल्यू ब्यौरा
edge_config.synchronizerMode 0 या 1

अगर 0 (डिफ़ॉल्ट) Edge माइक्रोगेटवे अपने स्टैंडर्ड मोड में काम करता है.

अगर 1 है, तो सिंक करने वाले के तौर पर काम करने के लिए, Edge Microgateway इंस्टेंस को चालू करें. इसमें मोड में, इंस्टेंस Apigee Edge से कॉन्फ़िगरेशन डेटा लेकर, उसे एक स्थानीय Redis डेटाबेस है. यह इंस्टेंस, एपीआई प्रॉक्सी अनुरोधों को प्रोसेस नहीं कर सकता; यह इसका मकसद सिर्फ़ कॉन्फ़िगरेशन डेटा के लिए Apigee Edge को पोल करना और उसे स्थानीय पते पर लिखना है डेटाबेस. इसके बाद, आपको डेटाबेस से पढ़ने के लिए अन्य माइक्रोगेटवे इंस्टेंस कॉन्फ़िगर करने होंगे.

edge_config.redisBasedConfigCache सही या गलत अगर सही है, तो Edge Microgateway इंस्टेंस अपना कॉन्फ़िगरेशन डेटा Apigee Edge के बजाय Redis डेटाबेस. Redis डेटाबेस एक ही होना चाहिए जिस पर लिखने के लिए सिंकर को कॉन्फ़िगर किया गया है. अगर Redis डेटाबेस उपलब्ध नहीं है या अगर डेटाबेस खाली है, तो माइक्रोगेटवे मौजूदा cache-config.yaml को खोजता है फ़ाइल के कॉन्फ़िगरेशन के लिए.

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

edgemicro.config_change_poll_interval समय अंतराल, सेकंड में सिंक करने वाले व्यक्ति के लिए, Apigee Edge से डेटा पाने के लिए पोलिंग का इंटरवल तय करता है.