काम की गाइड

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

एपीआई पासकोड पाने का तरीका

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

1. Apigee में लॉग इन करें

  1. ब्राउज़र में Apigee यूज़र इंटरफ़ेस (यूआई) खोलें.
  2. यूज़र इंटरफ़ेस (यूआई) में आने के बाद, उसी संगठन को चुनें जिसका इस्तेमाल आपने Envoy के लिए Apigee अडैप्टर को कॉन्फ़िगर करने के लिए किया था.

2. डेवलपर बनाएं

जांच करने के लिए, किसी मौजूदा डेवलपर का इस्तेमाल किया जा सकता है या नया डेवलपर बनाया जा सकता है. इसके लिए, यह तरीका अपनाएं:

  1. पब्लिश करें > को चुनें डेवलपर पर क्लिक करें.
  2. + डेवलपर पर क्लिक करें.
  3. नया डेवलपर बनाने के लिए, डायलॉग बॉक्स भरें. डेवलपर के किसी भी नाम/ईमेल पते का इस्तेमाल किया जा सकता है.

3. एक एपीआई प्रॉडक्ट बनाएं

नीचे दिए गए, प्रॉडक्ट बनाने के उदाहरण का पालन करें. इन्हें भी देखें इसके बारे में एपीआई प्रॉडक्ट कॉन्फ़िगरेशन.

  1. पब्लिश करें > को चुनें एपीआई प्रॉडक्ट सेक्शन पर जाएं.
  2. + एपीआई प्रॉडक्ट पर क्लिक करें.
  3. प्रॉडक्ट की जानकारी वाले पेज को यहां बताए गए तरीके से भरें.
  4. फ़ील्ड मान
    नाम httpbin-product
    डिसप्ले नेम httpbin product
    परिवेश your_environment

    इसे उस एनवायरमेंट पर सेट करें जिसका इस्तेमाल आपने Envoy के लिए Apigee अडैप्टर का प्रावधान करते समय किया था.

    ऐक्सेस Private
    कोटा हर एक मिनट में पांच अनुरोध

    कोटा भी देखें.

  5. Apigee रिमोट सर्विस टारगेट सेक्शन में, Apigee रिमोट सर्विस टारगेट जोड़ें पर क्लिक करें.
  6. Apigee रिमोट सर्विस के टारगेट डायलॉग में, ये वैल्यू जोड़ें:
    एट्रिब्यूट मान ब्यौरा
    टारगेट का नाम चैनल का नाम डालें टारगेट सेवा. उदाहरण के लिए: httpbin.org टारगेट एंडपॉइंट को Envoy प्रॉक्सी के सामने रखा गया है.
    पाथ मिलान करने के लिए सेवा पर एक संसाधन पाथ डालें. इसके लिए उदाहरण: /headers. टारगेट एंडपॉइंट से मैच करने के लिए, अनुरोध का पाथ. इस पाथ के लिए एपीआई प्रॉक्सी कॉल इस एपीआई प्रॉडक्ट से मेल खाएगा.
  7. सेव करें पर क्लिक करें.

4. डेवलपर ऐप्लिकेशन बनाना

  1. पब्लिश करें > को चुनें ऐप्लिकेशन पर क्लिक करें.
  2. + ऐप्लिकेशन पर क्लिक करें.
  3. डेवलपर ऐप्लिकेशन पेज को नीचे बताए गए तरीके से भरें. तब तक सेव न करें, जब तक आपके लिए निर्देश न दिया जाए.
  4. नाम httpbin-app
    डिसप्ले नेम httpbin app
    डेवलपर वह डेवलपर चुनें जिसे आपने पहले बनाया था या सूची में से अपनी पसंद का कोई डेवलपर चुनें.
  5. इसके बाद, एपीआई प्रॉडक्ट को ऐप्लिकेशन में जोड़ें:
    1. क्रेडेंशियल सेक्शन में, + प्रॉडक्ट जोड़ें पर क्लिक करें. इसके बाद, वह प्रॉडक्ट चुनें अभी-अभी कॉन्फ़िगर किया गया है: httpbin-product.
    2. बनाएं पर क्लिक करें.
    3. क्रेडेंशियल में जाकर, कुंजी के आगे मौजूद दिखाएं पर क्लिक करें.
    4. उपभोक्ता कुंजी की वैल्यू कॉपी करें. यह वैल्यू एपीआई पासकोड है जिसे आप httpbin सेवा को एपीआई कॉल करने के लिए इस्तेमाल करेंगे.

    एपीआई प्रॉडक्ट के बारे में जानकारी

    मुख्य तौर पर, एपीआई प्रॉडक्ट को कंट्रोल किया जाता है Apigee Remote Service के लिए पॉइंट. जब आप कोई API प्रॉडक्ट बनाते हैं और इसे सेवा को लक्षित करना चाहते हैं, तो आप ऐसी नीति बना रहे हैं जो ऐसे किसी भी अनुरोध पर लागू होता है जिससे आपने Envoy के लिए Apigee अडैप्टर को कॉन्फ़िगर किया हो संभाल नहीं सकता.

    एपीआई प्रॉडक्ट की परिभाषा

    Apigee में किसी एपीआई प्रॉडक्ट को तय करने के बाद, आपके पास ऐसे कई पैरामीटर सेट करने का विकल्प होता है का इस्तेमाल अनुरोधों की समीक्षा करने के लिए किया जाएगा:

    • टारगेट
    • अनुरोध का पाथ
    • अनुरोध भेजने की तय सीमा (कोटा)
    • OAuth के दायरे

    रिमोट सर्विस टारगेट

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

    डिफ़ॉल्ट रूप से, Apigee Remote Service, Envoy के खास :authority (host) हेडर की जांच टारगेट की सूची; हालांकि, इसे अन्य हेडर का इस्तेमाल करने के लिए कॉन्फ़िगर किया जा सकता है.

    एपीआई संसाधन पाथ

    डाला गया पाथ इन नियमों के मुताबिक मेल खाता है:

    • एक स्लैश (/) अपने-आप किसी भी पाथ से मेल खाता है.
    • * कहीं भी मान्य है और सेगमेंट के अंदर (स्लैश के बीच) से मेल खाता है.
    • ** अंत में मान्य है और पंक्ति के अंत में किसी भी चीज़ से मेल खाता है.

    अनुरोध भेजने की तय सीमा (कोटा)

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

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

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

    कोटा की जानकारी, एपीआई प्रॉडक्ट में दी जाती है

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

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

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

    तय सीमा का इस्तेमाल कहां किया जाता है

    रिमोट सर्विस प्रोसेस और एसिंक्रोनस तरीके से, कोटा का रखरखाव और जांच स्थानीय तौर पर की जाती है Apigee रनटाइम के साथ मैनेज किया जाता है. इसका मतलब है कि कोटा सटीक नहीं है और हो सकता है कि अगर आपके पास कोटा बनाए रखने वाली एक से ज़्यादा रिमोट सेवा है, तो कुछ ओवररन हो जाते हैं. अगर Apigee रनटाइम के कनेक्शन में रुकावट आ रही है, लोकल कोटा स्टैंड-अलोन के तौर पर जारी रहेगा कोटा को तब तक के लिए सेट नहीं किया जा सकता, जब तक कि वह Apigee रनटाइम से फिर से कनेक्ट नहीं हो पाता.

    OAuth का दायरा

    अगर JWT टोकन का इस्तेमाल किया जा रहा है, तो टोकन को अनुमति वाले OAuth दायरों के सबसेट तक सीमित किया जा सकता है. आपके जारी किए गए JWT टोकन को असाइन किए गए दायरे की जांच, एपीआई प्रॉडक्ट के दायरों से की जाएगी.

    डेवलपर ऐप्लिकेशन के बारे में जानकारी

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

    JWT आधारित प्रमाणीकरण का उपयोग करना

    किसी एपीआई पासकोड के बजाय, पुष्टि किए गए एपीआई प्रॉक्सी कॉल करने के लिए, JWT टोकन का इस्तेमाल किया जा सकता है. यह सेक्शन में बताया गया है कि इन कामों के लिए, apigee-remote-service-cli token कमांड का इस्तेमाल कैसे किया जाता है JWT टोकन बनाने, उनकी जाँच करने, और उन्हें घुमाने के लिए किया जा सकता है.

    खास जानकारी

    JWT की पुष्टि और पुष्टि करने का काम Envoy करता है. इसके लिए, यह का इस्तेमाल करता है JWT की पुष्टि करने वाला फ़िल्टर.

    प्रमाणित होने के बाद, Envoy ext-authz फ़िल्टर इस पते पर अनुरोध हेडर और JWT भेजता है apigee-remote-service-envoy. यह JWT के api_product_list और scope दावों से मेल खाता है इसके लिए, Apigee API प्रॉडक्ट की ज़रूरी शर्तों को पूरा करना होगा, ताकि अनुरोध के टारगेट के हिसाब से उसे अनुमति दी जा सके.

    Apigee JWT टोकन बनाना

    सीएलआई का इस्तेमाल करके, Apigee JWT टोकन बनाए जा सकते हैं:

    $CLI_HOME/apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET

    इसके अलावा, स्टैंडर्ड OAuth टोकन एंडपॉइंट का इस्तेमाल करके भी ऐसा किया जा सकता है. कर्ल का उदाहरण:

    curl https://org-env.apigee.net/remote-token/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"

    JWT टोकन का उपयोग करना

    टोकन मिलने के बाद, आपको बस उसे 'ऑथराइज़ेशन' हेडर में Envoy में भेज देना चाहिए. उदाहरण:

    curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"

    JWT टोकन विफलता

    एंवॉय अस्वीकार

    अगर Envoy टोकन अस्वीकार कर देता है, तो आपको इस तरह का मैसेज दिख सकता है:

    Jwks remote fetch is failed

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

    उदाहरण:

    curl https://myorg-eval-test.apigee.net/remote-service/certs

    Envoy के अन्य मैसेज ऐसे दिख सकते हैं:

    • "Jwt में ऑडियंस की अनुमति नहीं है"
    • "Jwt जारी करने वाले को कॉन्फ़िगर नहीं किया गया है"

    ये आपके Envoy कॉन्फ़िगरेशन की ज़रूरी शर्तों में से हैं. आपको इनमें बदलाव करना पड़ सकता है.

    टोकन की जांच करें

    अपने टोकन की जांच करने के लिए, सीएलआई का इस्तेमाल किया जा सकता है. उदाहरण

    $CLI_HOME/apigee-remote-service-cli -c config.yaml token inspect -f path/to/file

    या

    $CLI_HOME/apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN

    डीबग करना

    मान्य एपीआई पासकोड की वजह से हुई गड़बड़ी देखें.

    लॉग इन हो रहा है

    $REMOTE_SERVICE_HOME/apigee-remote-service-envoy सेवा पर जाकर, लॉगिंग लेवल में बदलाव किया जा सकता है. सभी लॉगिंग stdout और stderr को भेजी जाती है.

    एलिमेंट ज़रूरी है ब्यौरा
    -l, --लॉग-लेवल मान्य लेवल: डीबग, जानकारी, चेतावनी, गड़बड़ी. लॉगिंग लेवल को अडजस्ट करता है. डिफ़ॉल्ट: जानकारी
    -j, --json-लॉग लॉग आउटपुट को JSON रिकॉर्ड के तौर पर जोड़ता है.

    Envoy, लॉगिंग प्रदान करता है. ज़्यादा जानकारी के लिए, Envoy से जुड़े इन दस्तावेज़ों के लिंक देखें:

    नेटवर्क प्रॉक्सी का इस्तेमाल करना

    HTTP_PROXY और एचटीटीपीएस_PROXY एनवायरमेंट वैरिएबल का इस्तेमाल करके, एचटीटीपी प्रॉक्सी को शामिल किया जा सकता है apigee-remote-service-envoy बाइनरी के माहौल में हो सकता है. इनका इस्तेमाल करते समय, NO_PROXY एनवायरमेंट वैरिएबल का इस्तेमाल, प्रॉक्सी के ज़रिए खास होस्ट को भेजने से रोकने के लिए भी किया जा सकता है.

    HTTP_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
    HTTPS_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
    NO_PROXY=127.0.0.1,localhost

    याद रखें कि प्रॉक्सी पर apigee-remote-service-envoy से पहुंचा जा सकता है.

    मेट्रिक और आंकड़ों के बारे में जानकारी

    Prometheus मेट्रिक एंडपॉइंट :5001/metrics पर उपलब्ध है. कॉन्फ़िगर किया जा सकता है इस पोर्ट नंबर को. कॉन्फ़िगरेशन फ़ाइल देखें.

    Envoy चैनल के आंकड़े

    यहां दिए गए लिंक से Envoy प्रॉक्सी ऐनलिटिक्स पाने के बारे में जानकारी मिलती है डेटा:

    इस्टियो ऐनलिटिक्स

    यहां दिए गए लिंक से Envoy प्रॉक्सी ऐनलिटिक्स पाने के बारे में जानकारी मिलती है डेटा:

    Apigee के आंकड़े

    Envoy के लिए Apigee Remote Service, विश्लेषण प्रोसेस करने के लिए Apigee को अनुरोध के आंकड़े भेजता है. Apigee, इन अनुरोधों को संबंधित एपीआई प्रॉडक्ट के नाम के तहत रिपोर्ट करता है.

    Apigee के आंकड़ों के बारे में जानकारी पाने के लिए, Analytics सेवाओं की खास जानकारी देखें.

    मल्टी-टेनेंट एनवायरमेंट की सुविधा

    अब इस अडैप्टर को कई तरीकों से कनेक्ट करने के लिए चालू किया जा सकता है एक Apigee संगठन में वातावरण. इस सुविधा से, एक Apigee का इस्तेमाल किया जा सकता है एक से ज़्यादा एनवायरमेंट की सेवा देने के लिए, एक Apigee संगठन से जुड़े Envoy के लिए अडैप्टर. इस तारीख से पहले यह बदलाव हुआ है, इसलिए एक अडैप्टर हमेशा एक Apigee एनवायरमेंट से जुड़ा था.

    कई एनवायरमेंट सपोर्ट को कॉन्फ़िगर करने के लिए, इनमें बदलाव करें config.yaml में tenant:env_name से * तक की वैल्यू फ़ाइल से लिए जाते हैं. उदाहरण के लिए:

    1. config.yaml फ़ाइल को एडिटर में खोलें.
    2. tenant.env_name की वैल्यू को * में बदलें. उदाहरण के लिए:
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: apigee-remote-service-envoy
        namespace: apigee
      data:
        config.yaml: |
          tenant:
            remote_service_api: https://myorg-myenv.apigee.net/remote-service
            org_name: apigee-docs-hybrid-a
            env_name: *
            allow_unverified_ssl_cert: true
          analytics:
            collection_interval: 10s
          auth:
            jwt_provider_key: https://myorg-myenv.apigee.net.net/remote-token/token
    3. फ़ाइल सेव करें.
    4. फ़ाइल लागू करें:
      kubectl apply -f $CLI_HOME/config.yaml

    मल्टी-एनवायरमेंट मोड को कॉन्फ़िगर करते समय, आपको Envoy को भी कॉन्फ़िगर करना होगा, ताकि वह हमें पर्यावरण मान को अडैप्टर में बदलने के लिए, envoy-config.yaml फ़ाइल का virtual_hosts:routes सेक्शन. उदाहरण के लिए:

    1. सीएलआई का इस्तेमाल करके envoy-config.yaml फ़ाइल जनरेट करें. उदाहरण के लिए:
      $CLI_HOME/apigee-remote-service-cli samples create \
        -t envoy-1.16 -c ./config.yaml --out myconfigs
    2. जनरेट की गई फ़ाइल खोलें (इसे envoy-config.yaml कहा जाता है).
    3. इस मेटाडेटा को या तो virtual_host में जोड़ें या फ़ाइल का routes सेक्शन:
      typed_per_filter_config:
        envoy.filters.http.ext_authz:
          "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute
          check_settings:
            context_extensions:
              apigee_environment: test

      इस उदाहरण में, एक से ज़्यादा रूट वाले virtual_host के कॉन्फ़िगरेशन को दिखाया गया है तय किया गया है, जहां हर रूट एक खास एनवायरमेंट में ट्रैफ़िक भेजता है:

      filter_chains:
          - filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                stat_prefix: ingress_http
                route_config:
                  virtual_hosts:
                  - name: default
                    domains: "*"
                    routes:
                    - match: { prefix: /test }
                      route:
                        cluster: httpbin
                      typed_per_filter_config:
                        envoy.filters.http.ext_authz:
                          "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute
                          check_settings:
                            context_extensions:
                               apigee_environment: test
                    - match: { prefix: /prod }
                      route:
                        cluster: httpbin
                      typed_per_filter_config:
                        envoy.filters.http.ext_authz:
                          "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute
                          check_settings:
                            context_extensions:
                               apigee_environment: prod
    4. ज़रूरत के मुताबिक अतिरिक्त एनवायरमेंट जोड़ने के लिए, आखिरी चरण दोहराएं.
    5. फ़ाइल सेव करें और उसे लागू करें.

    अडैप्टर और Apigee रनटाइम के बीच mTLS कॉन्फ़िगर करना

    क्लाइंट-साइड TLS सर्टिफ़िकेट देने के लिए, यहां जाएं: tenant अडैप्टर की config.yaml फ़ाइल का इस्तेमाल करके, अडैप्टर और Apigee रनटाइम के बीच mTLS का इस्तेमाल किया जाता है. यह यह बदलाव, इस्तेमाल किए जा सकने वाले सभी Apigee प्लैटफ़ॉर्म पर लागू होगा. यह आंकड़ों के लिए mTLS को भी चालू करता है Apigee Edge के लिए उपलब्ध है. उदाहरण के लिए:

    tenant:
      tls:
        ca_file: path/ca.pem
        cert_file: path/cert.pem
        key_file: path/key.pem
        allow_unverified_ssl_cert: false