एपीआई प्रॉक्सी कॉन्फ़िगरेशन के बारे में जानकारी

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

Apigee Edge के साथ काम करने वाले डेवलपर के तौर पर, आपकी मुख्य डेवलपमेंट गतिविधियों में ये शामिल हैं एपीआई या बैकएंड सेवाओं के लिए प्रॉक्सी के तौर पर काम करने वाली एपीआई प्रॉक्सी को कॉन्फ़िगर करना. यह दस्तावेज़ का संदर्भ भी शामिल है.

अगर आपको एपीआई प्रॉक्सी बनाने का तरीका सीखना है, तो हमारा सुझाव है कि आप कोई आसान एपीआई बनाएं प्रॉक्सी पर टैप करें.

प्रॉक्सी कॉन्फ़िगरेशन में बदलाव करने के सबसे सामान्य तरीके ये हैं:

प्रॉक्सी कॉन्फ़िगरेशन का लोकल डेवलपमेंट

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

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

यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, प्रॉक्सी कॉन्फ़िगरेशन में बदलाव करने के लिए:

  1. Edge के यूज़र इंटरफ़ेस (यूआई) में मौजूदा प्रॉक्सी कॉन्फ़िगरेशन डाउनलोड करें. (एपीआई प्रॉक्सी में देखें, प्रोजेक्ट > बदलाव डाउनलोड करें.)
  2. अपनी लोकल मशीन पर, एक नई डायरेक्ट्री बनाएं और डाउनलोड की गई ZIP फ़ाइल को इसे.

    ZIP फ़ाइल को बड़ा करने के लिए, unzip जैसी सुविधा का इस्तेमाल करें. इसके लिए, नीचे दिए गए तरीके अपनाएं उदाहरण में यह दिखाया गया है:

    mkdir myappdir
    unzip ./my-app_app_rev3_2019_04_20.zip -d myappdir

    ZIP फ़ाइल का बड़ा किया गया कॉन्टेंट, यहां बताए गए स्ट्रक्चर से मिलता-जुलता होना चाहिए एपीआई प्रॉक्सी स्ट्रक्चर.

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

    उदाहरण के लिए, हेल्थ मॉनिटरिंग अपना एपीआई प्रॉक्सी बनाने के लिए, /apiproxy/targets/ डायरेक्ट्री. इस डायरेक्ट्री में डिफ़ॉल्ट फ़ाइल यह है default.xml, हालांकि, इस्तेमाल करने पर अलग-अलग नामों वाली फ़ाइलें हो सकती हैं कंडिशनल टारगेट.

    इस मामले में, अगर TargetEndpoint कॉन्फ़िगरेशन फ़ाइल और उसकी डायरेक्ट्री मौजूद नहीं है, उन्हें बना सकता है.

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

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

    cd myappdir

    अपनी प्रॉक्सी कॉन्फ़िगरेशन फ़ाइलों को फिर से संग्रहित करने से पहले, आपको इस डायरेक्ट्री को इस्तेमाल करना होगा क्योंकि आप /myappdir डायरेक्ट्री को ZIP फ़ाइल में शामिल नहीं करना चाहते. ZIP फ़ाइल में टॉप-लेवल की डायरेक्ट्री /apiproxy होनी चाहिए.

  6. नई या बदली गई फ़ाइलों सहित प्रॉक्सी कॉन्फ़िगरेशन फ़ाइलें फिर से संग्रहित करें. Google आपके यूआरएल पैरामीटर को कैसे इस्तेमाल करेगा, यह तय करने के लिए सुविधा, जैसे कि zip, जैसा कि नीचे दिए गए उदाहरण में बताया गया है:
    zip my-new-proxy.zip -r .

    ZIP फ़ाइल में टॉप-लेवल की डायरेक्ट्री /apiproxy होनी चाहिए.

    ZIP फ़ाइल के नाम के लिए कोई खास ज़रूरत नहीं है. उदाहरण के लिए, आपको संशोधन संख्या बढ़ाएं या फ़ाइल नाम में तारीख दर्ज करें, लेकिन ऐसा करने से डीबग करने या सोर्स कंट्रोल के लिए मददगार.

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

  7. Edge यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके नया प्रॉक्सी कॉन्फ़िगरेशन अपलोड करें. (एपीआई प्रॉक्सी में देखें, प्रोजेक्ट > नया बदलाव अपलोड करें.)

    अगर आपको Bundle is invalid. Empty bundle. जैसी कोई गड़बड़ी मिलती है, तो पक्का करें कि आपकी ZIP फ़ाइल की टॉप-लेवल की डायरेक्ट्री /apiproxy है. अगर ऐसा नहीं है, तो अपने बड़ी की गई डायरेक्ट्री के रूट से प्रॉक्सी कॉन्फ़िगरेशन फ़ाइलें.

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

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

  8. अपने नए बदलाव को डिप्लॉय करें.

ज़्यादा जानकारी के लिए देखें ट्यूटोरियल: YouTube API में यूज़र इंटरफ़ेस (यूआई) और मैनेजमेंट एपीआई का इस्तेमाल करके प्रॉक्सी कैसे डाउनलोड करें Apigee कम्यूनिटी.

एपीआई प्रॉक्सी स्ट्रक्चर

एपीआई प्रॉक्सी में ये कॉन्फ़िगरेशन शामिल होते हैं:

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

एपीआई प्रॉक्सी डायरेक्ट्री का स्ट्रक्चर और कॉन्टेंट

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

उस डायरेक्ट्री स्ट्रक्चर को दिखाता है जिसमें apiप्रॉक्सी रूट होता है. सीधे
    apiप्रॉक्सी डायरेक्ट्री, नीतियां, प्रॉक्सी, रिसॉर्स, और टारगेट डायरेक्ट्री होती हैं. साथ ही,
    weatherapi.xml फ़ाइल.

कॉन्फ़िगरेशन फ़ाइलें और डायरेक्ट्री एपीआई प्रॉक्सी का स्ट्रक्चर

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

बुनियादी कॉन्फ़िगरेशन

/apiproxy/weatherapi.xml

एपीआई प्रॉक्सी का बेस कॉन्फ़िगरेशन, जो एपीआई प्रॉक्सी का नाम बताता है. नाम संगठन में यूनीक होना चाहिए.

कॉन्फ़िगरेशन का नमूना:

<APIProxy name="weatherapi">
</APIProxy>

बेस कॉन्फ़िगरेशन एलिमेंट

नाम ब्यौरा डिफ़ॉल्ट ज़रूरी है?
APIProxy
name एपीआई प्रॉक्सी का नाम, जो किसी संगठन में यूनीक होना चाहिए. किरदार आपको नाम में उपयोग करने की अनुमति है, तो इन तक सीमित है: A-Za-z0-9_- अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है लागू नहीं हां
revision एपीआई प्रॉक्सी कॉन्फ़िगरेशन की रिविज़न नंबर. आपको स्पष्ट रूप से सेट करने की आवश्यकता नहीं है रिविज़न नंबर, क्योंकि Apigee Edge, एपीआई के मौजूदा संशोधन को अपने-आप ट्रैक करता है प्रॉक्सी. लागू नहीं नहीं
ConfigurationVersion एपीआई प्रॉक्सी कॉन्फ़िगरेशन स्कीमा का वह वर्शन जिसका पालन करता है यह एपीआई प्रॉक्सी. कॉन्टेंट बनाने फ़िलहाल, इसमें इस्तेमाल होने वाली वैल्यू सिर्फ़MajorVersion 4 और टिप्पणी के वर्शन 0 में उपलब्ध है. यह सेटिंग का इस्तेमाल, एपीआई प्रॉक्सी फ़ॉर्मैट को बेहतर बनाने के लिए किया जाएगा. 4.0 नहीं
Description एपीआई प्रॉक्सी के बारे में टेक्स्ट के तौर पर जानकारी. अगर दिया गया हो, तो ब्यौरा एज मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) पर क्लिक करें. लागू नहीं नहीं
DisplayName यह नाम इस्तेमाल करने में आसान है. यह नाम, एट्रिब्यूट की name एट्रिब्यूट से अलग हो सकता है एपीआई प्रॉक्सी कॉन्फ़िगरेशन. लागू नहीं नहीं
Policies इस एपीआई प्रॉक्सी की /policies डायरेक्ट्री में मौजूद नीतियों की सूची. आपको आम तौर पर, यह एलिमेंट सिर्फ़ तब दिखता है, जब Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके एपीआई प्रॉक्सी बनाया गया हो. यह सिर्फ़ एक 'मेनिफ़ेस्ट' है सेटिंग की मदद से, कॉन्टेंट को आसानी से देखने की सुविधा एपीआई प्रॉक्सी को कहते हैं. लागू नहीं नहीं
ProxyEndpoints इस एपीआई प्रॉक्सी की /proxies डायरेक्ट्री में, ProxyEndpoints की सूची. आपने लोगों तक पहुंचाया मुफ़्त में आम तौर पर यह एलिमेंट तब ही दिखेगा, जब Edge का इस्तेमाल करके एपीआई प्रॉक्सी बनाया गया हो मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) की इमेज. यह सिर्फ़ एक 'मेनिफ़ेस्ट' है सेटिंग को इस तरह डिज़ाइन किया गया है कि एपीआई प्रॉक्सी की सामग्री. लागू नहीं नहीं
Resources /resources में मौजूद संसाधनों (JavaScript, Python, Java, XSLT) की सूची इस एपीआई प्रॉक्सी की डायरेक्ट्री. आम तौर पर आपको यह एलिमेंट सिर्फ़ तब दिखेगा, जब एपीआई प्रॉक्सी जिसे Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके बनाया गया है. यह सिर्फ़ एक 'मेनिफ़ेस्ट' है सेटिंग को इन कामों के लिए डिज़ाइन किया गया है एपीआई प्रॉक्सी के कॉन्टेंट को देखने की सुविधा देता है. लागू नहीं नहीं
Spec यह OpenAPI की उस खास जानकारी की पहचान करता है जो एपीआई प्रॉक्सी से जुड़ी है. वैल्यू स्पेसिफ़िकेशन स्टोर में किसी यूआरएल या पाथ पर सेट हो.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ध्यान दें: स्पेसिफ़िकेशन स्टोर, New Edge में उपलब्ध है सिर्फ़. स्पेसिफ़िकेशन स्टोर के बारे में ज़्यादा जानने के लिए, मैनेज करना और शेयर करना देखें खास जानकारी के मुताबिक होना चाहिए.
लागू नहीं नहीं
TargetServers इस एपीआई प्रॉक्सी के किसी भी TargetEndpoints में बताए गए TargetServers की सूची. आपको आम तौर पर, यह एलिमेंट सिर्फ़ तब दिखता है, जब Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके एपीआई प्रॉक्सी बनाया गया हो. यह सिर्फ़ एक 'मेनिफ़ेस्ट' है सेटिंग की मदद से, कॉन्टेंट को आसानी से देखने की सुविधा एपीआई प्रॉक्सी को कहते हैं. लागू नहीं नहीं
TargetEndpoints इस एपीआई प्रॉक्सी की /targets डायरेक्ट्री में TargetEndpoints की सूची. आपने लोगों तक पहुंचाया मुफ़्त में आम तौर पर यह एलिमेंट तब ही दिखेगा, जब Edge का इस्तेमाल करके एपीआई प्रॉक्सी बनाया गया हो मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) की इमेज. यह सिर्फ़ एक 'मेनिफ़ेस्ट' है सेटिंग को इस तरह डिज़ाइन किया गया है कि एपीआई प्रॉक्सी की सामग्री. लागू नहीं नहीं

ProxyEndpoint

नीचे दी गई इमेज में, अनुरोध/रिस्पॉन्स का फ़्लो दिखाया गया है:

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

/apiproxy/proxies/default.xml

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

नीचे दिए गए ProxyEndpoint कॉन्फ़िगरेशन का नमूना /apiproxy/proxies:

<ProxyEndpoint name="default">
  <PreFlow/>
  <Flows/>
  <PostFlow/>
  <HTTPProxyConnection>
    <BasePath>/weather</BasePath>
    <VirtualHost>default</VirtualHost>
  </HTTPProxyConnection>
  <FaultRules/>
  <DefaultFaultRule/>
  <RouteRule name="default">
    <TargetEndpoint>default</TargetEndpoint>
  </RouteRule>
</ProxyEndpoint>

बेसिक ProxyEndpoint में ज़रूरी कॉन्फ़िगरेशन एलिमेंट ये हैं:

ProxyEndpoint कॉन्फ़िगरेशन Elements

नाम ब्यौरा डिफ़ॉल्ट ज़रूरी है?
ProxyEndpoint
name ProxyEndpoint का नाम. एपीआई प्रॉक्सी कॉन्फ़िगरेशन में, जब अलग हो (बहुत कम मामलों में) एक से ज़्यादा ProxyEndpoint तय किए गए हैं. वे वर्ण जिनका उपयोग करने की आपको अनुमति है नाम में निम्न तक सीमित हैं: A-Za-z0-9._\-$ %. लागू नहीं हां
PreFlow किसी अनुरोध या जवाब के PreFlow फ़्लो में नीतियों के बारे में बताता है. लागू नहीं हां
Flows
यह किसी अनुरोध या जवाब के कंडिशनल फ़्लो में नीतियों के बारे में बताता है.
लागू नहीं हां
PostFlow
यह किसी अनुरोध या जवाब के PostFlow फ़्लो में नीतियों के बारे में बताता है.
लागू नहीं हां
HTTPProxyConnection एपीआई प्रॉक्सी से जुड़े नेटवर्क पता और यूआरआई पाथ के बारे में बताता है
BasePath

एक ज़रूरी स्ट्रिंग, जो रूट के लिए Apigee Edge के इस्तेमाल किए गए यूआरआई पाथ की खास तौर पर पहचान करती है आने वाले मैसेज को सही एपीआई प्रॉक्सी पर भेजना.

BasePath, एक यूआरआई फ़्रैगमेंट होता है (उदाहरण के लिए /weather), जिसे एपीआई प्रॉक्सी का बेस यूआरएल, जैसे कि http://apifactory-test.apigee.net. किसी एनवायरमेंट में BasePath अलग होना चाहिए. एपीआई प्रॉक्सी के होने पर, यूनीक वैल्यू की पुष्टि की जाती है जनरेट या इंपोर्ट किया जाता है.

बेस पाथ में वाइल्डकार्ड का इस्तेमाल करना

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

अहम जानकारी: Apigee पर वाइल्डकार्ड "*" का इस्तेमाल नहीं किया जा सकता पहला बेस पाथ का एलिमेंट. उदाहरण के लिए, इसका इस्तेमाल नहीं किया जा सकता: /*/search. बेस पाथ की शुरुआत "*" से करना Edge की वजह से अनचाही गड़बड़ियां हो सकती हैं मान्य पाथ की पहचान करता है.

/ हां
VirtualHost

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

ProxyEndpoint के लिए तय किए गए VirtualHosts से डोमेन और पोर्ट तय होते हैं जिससे एपीआई प्रॉक्सी को बिना अनुमति के सार्वजनिक किया जाता है. साथ ही, एक्सटेंशन के हिसाब से, वह यूआरएल जिसे ऐप्लिकेशन, एपीआई शुरू करने के लिए इस्तेमाल करते हैं प्रॉक्सी.

डिफ़ॉल्ट रूप से, किसी एनवायरमेंट के लिए दो VirtualHost नाम तय किए जाते हैं: default और secure. संगठन, कस्टम कीवर्ड, डोमेन. यह पक्का करने के लिए कि एपीआई प्रॉक्सी सिर्फ़ एचटीटीपीएस पर उपलब्ध है, उदाहरण के लिए, secure के लिए HTTPProxyConnection में मौजूद VirtualHost.

डिफ़ॉल्ट नहीं
Properties वैकल्पिक एचटीटीपी कॉन्फ़िगरेशन सेटिंग के एक सेट को <ProxyEndpoint>. लागू नहीं नहीं
FaultRules
यह तय करता है कि ProxyEndpoint, किसी गड़बड़ी पर किस तरह प्रतिक्रिया करता है. गड़बड़ी का नियम दो के बारे में बताता है आइटम:
  • ऐसी शर्त जो पहले से तय की गई गड़बड़ी के आधार पर गड़बड़ी को ठीक करने के बारे में बताती है कैटगरी, सबकैटगरी या गड़बड़ी का नाम
  • एक या एक से ज़्यादा ऐसी नीतियां जो तय करती हैं कि मिलती-जुलती शर्त

गड़बड़ियां ठीक करना देखें.

लागू नहीं नहीं
DefaultFaultRule

ऐसी किसी भी गड़बड़ी (सिस्टम, ट्रांसपोर्ट, मैसेज सेवा या नीति) को हैंडल करती है जो साफ़ तौर पर नहीं बताई गई है गड़बड़ी को किसी दूसरे नियम से हैंडल किया जाता है.

गड़बड़ियां ठीक करना देखें.

लागू नहीं नहीं
RouteRule इनबाउंड अनुरोध मैसेज के डेस्टिनेशन के बारे में, ProxyEndpoint अनुरोध की पाइपलाइन. आम तौर पर, RouteRule नाम दिए गए TargetEndpoint की ओर ले जाता है कॉन्फ़िगरेशन के साथ-साथ, वह सीधे यूआरएल पर भी ले जा सकता है.
Name रूट रूल के लिए एक नाम देने वाली आवश्यक विशेषता. आपके पसंदीदा किरदार नाम में इस्तेमाल करने की अनुमति इन तक है: A-Za-z0-9._\-$ %. इसके लिए उदाहरण के लिए, Cat2 %_ एक कानूनी नाम है. लागू नहीं हां
Condition रनटाइम पर डाइनैमिक रूटिंग के लिए, इस्तेमाल किया जाने वाला एक कंडिशनल स्टेटमेंट है. हालांकि, यह स्टेटमेंट ज़रूरी नहीं होता. कंडिशनल राऊटर के नियम काम के होते हैं. उदाहरण के लिए, बैकएंड के साथ काम करने के लिए कॉन्टेंट पर आधारित रूटिंग चालू करने के लिए, रूट रूल इस्तेमाल किए जा सकते हैं वर्शन. लागू नहीं नहीं
TargetEndpoint

एक वैकल्पिक स्ट्रिंग, जो नाम वाले TargetEndpoint कॉन्फ़िगरेशन की पहचान करती है. A नाम दिया गया TargetEndpoint, ऐसा कोई TargetEndpoint है जिसे इसी एपीआई प्रॉक्सी में तय किया गया है /targets डायरेक्ट्री).

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

ProxyEndpoint, यूआरएल को सीधे कॉल कर सकता है. उदाहरण के लिए, JavaScript या Java संसाधन, वह एचटीटीपी क्लाइंट की भूमिका में काम कर रहा है और TargetEndpoint, जिसका इस्तेमाल किसी बैकएंड सेवा पर अनुरोध फ़ॉरवर्ड करने के लिए किया जाता है.

लागू नहीं नहीं
यूआरएल एक वैकल्पिक स्ट्रिंग, जो ProxyEndpoint, ऐसे किसी भी TargetEndpoint कॉन्फ़िगरेशन को बायपास करना जिन्हें इसमें स्टोर किया जा सकता है /targets अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है लागू नहीं नहीं

राऊटर के नियम कॉन्फ़िगर करने का तरीका

नाम वाला TargetEndpoint, /apiproxy/targets में मौजूद कॉन्फ़िगरेशन फ़ाइल को दिखाता है, ताकि इस लेख में, ProxyEndpoint की मदद से प्रोसेस होने के बाद राऊटर का नियम किसी अनुरोध को फ़ॉरवर्ड करता है.

उदाहरण के लिए, नीचे दिया गया RouteRule कॉन्फ़िगरेशन को दिखाता है /apiproxy/targets/myTarget.xml:

<RouteRule name="default">
  <TargetEndpoint>myTarget</TargetEndpoint>
</RouteRule>

डायरेक्ट यूआरएल को शुरू करना

ProxyEndpoint सीधे तौर पर बैकएंड सेवा भी शुरू कर सकता है. सीधे यूआरएल को शुरू करने की सुविधा, किसी भी प्रॉडक्ट को बायपास कर सकती है /apiproxy/targets में, TargetEndpoints कॉन्फ़िगरेशन को नाम दिया गया है. इस वजह से, TargetEndpoint एक वैकल्पिक एपीआई प्रॉक्सी कॉन्फ़िगरेशन है. हालांकि, सीधे तौर पर बोला जाना का सुझाव नहीं दिया जाता है.

उदाहरण के लिए, नीचे दिया गया RouteRule एक HTTP कॉल http://api.mycompany.com/v2.

<RouteRule name="default">
  <URL>http://api.mycompany.com/v2</URL> 
</RouteRule>

शर्तों के साथ रास्ते

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

कंडिशनल रूट रूल, Apigee Edge पर अन्य कंडिशनल स्टेटमेंट की तरह काम करते हैं. शर्तों का रेफ़रंस और वैरिएबल का रेफ़रंस देखें.

उदाहरण के लिए, नीचे दिए गए routeRule का कॉम्बिनेशन पहले, इनबाउंड अनुरोध की पुष्टि करता है एक एचटीटीपी हेडर की वैल्यू होती है. अगर एचटीटीपी हेडर routeTo की वैल्यू TargetEndpoint1 का इस्तेमाल किया जाता है, तो अनुरोध को TargetEndpoint1. अगर ऐसा नहीं होता है, तो इनबाउंड अनुरोध को http://api.mycompany.com/v2.

<RouteRule name="MyRoute">
  <Condition>request.header.routeTo = "TargetEndpoint1"</Condition>
  <TargetEndpoint>TargetEndpoint1</TargetEndpoint>
</RouteRule>
<RouteRule name="default">
  <URL>http://api.mycompany.com/v2</URL>
</RouteRule>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

शून्य रास्ते

जिन स्थितियों में अनुरोध वाला मैसेज को TargetEndpoint पर भेजना ज़रूरी होता है. यह तब उपयोगी होता है, जब ProxyEndpoint सभी ज़रूरी प्रोसेसिंग. उदाहरण के लिए, किसी बाहरी सेवा को कॉल करने के लिए JavaScript का इस्तेमाल करना या लुकअप से एपीआई सेवाओं में डेटा हासिल करना' कुंजी/वैल्यू स्टोर.

उदाहरण के लिए, नीचे दी गई वैल्यू शून्य रूट के बारे में बताती है:

<RouteRule name="GoNowhere"/>

शर्त के हिसाब से शून्य रूट का इस्तेमाल करना मददगार साबित हो सकता है. नीचे दिए गए उदाहरण में, शून्य रूट को एचटीटीपी हेडर request.header.X-DoNothing में null.

<RouteRule name="DoNothingOnDemand">
  <Condition>request.header.X-DoNothing != null</Condition>
</RouteRule>

याद रखें कि राऊटर के नियम एक-दूसरे से जुड़े हो सकते हैं, इसलिए एक कंडिशनल शून्य रूट आम तौर पर एक होगा रूट रूल के सेट का एक कॉम्पोनेंट है जिसे कंडिशनल रूटिंग को सपोर्ट करने के लिए डिज़ाइन किया गया है.

कंडिशनल शून्य रूट का व्यावहारिक इस्तेमाल तो कैश मेमोरी के साथ काम करने के लिए होगा. वैल्यू का इस्तेमाल करके जो कैश नीति से सेट किया जाता है, तो आप कैश मेमोरी से कोई एंट्री दिए जाने पर, शून्य रूट.

<RouteRule name="DoNothingUnlessTheCacheIsStale">
  <Condition>lookupcache.LookupCache-1.cachehit is true</Condition>
</RouteRule>

TargetEndpoint

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

TargetEndpoint, प्रॉक्सीएंडपॉइंट का आउटबाउंड जैसा होता है. TargetEndpoint इस तौर पर काम करता है क्लाइंट को किसी बैकएंड सेवा या API से लिंक किया जाता है - यह अनुरोध भेजता है और रिस्पॉन्स देता है.

एपीआई प्रॉक्सी में कोई TargetEndpoints नहीं होना चाहिए. ProxyEndpoints को यूआरएल को कॉल करने के लिए कॉन्फ़िगर किया जा सकता है सकता है. बिना TargetEndpoint वाले एपीआई प्रॉक्सी में आम तौर पर एक ProxyEndpoint होता है, जो सीधे किसी बैकएंड सेवा को कॉल करता है या उसे Java का इस्तेमाल करके या किसी सेवा को कॉल करने के लिए कॉन्फ़िगर किया गया है JavaScript.

TargetEndpoint कॉन्फ़िगरेशन

/targets/default.xml

TargetEndpoint, Apigee Edge से किसी दूसरी सेवा पर आउटबाउंड कनेक्शन को तय करता है या संसाधन.

यहां TargetEndpoint कॉन्फ़िगरेशन का सैंपल दिया गया है:

<TargetEndpoint name="default">
  <PreFlow/>
  <Flows/>
  <PostFlow/>
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <SSLInfo/>
  </HTTPTargetConnection>
  <FaultRules/>
  <DefaultFaultRule/>
  <ScriptTarget/>
  <LocalTargetConnection/>
</TargetEndpoint>

TargetEndpoint कॉन्फ़िगरेशन Elements

TargetEndpoint, इनमें से किसी एक तरीके से टारगेट को कॉल कर सकता है:

  • HTTP(S) कॉल के लिए HTTPTargetConnection
  • लोकल प्रॉक्सी-टू-प्रॉक्सी चेन के लिए LocalTargetConnection
  • Edge पर होस्ट किए गए कॉल के लिए ScriptTarget Node.js स्क्रिप्ट

TargetEndpoint में इनमें से सिर्फ़ एक को कॉन्फ़िगर करें.

नाम ब्यौरा डिफ़ॉल्ट ज़रूरी है?
TargetEndpoint
name TargetEndpoint का नाम, जो एपीआई प्रॉक्सी में अलग होना चाहिए कॉन्फ़िगरेशन. TargetEndPoint के नाम का इस्तेमाल ProxyEndpoint RouteRule में आउटबाउंड प्रोसेसिंग के लिए डायरेक्ट अनुरोध. वे वर्ण जिनका उपयोग आपको नाम में करने की अनुमति है इनके लिए प्रतिबंधित हैं: A-Za-z0-9._\-$ %. लागू नहीं हां
PreFlow किसी अनुरोध या जवाब के PreFlow फ़्लो में नीतियों के बारे में बताता है. लागू नहीं हां
Flows
यह किसी अनुरोध या जवाब के कंडिशनल फ़्लो में नीतियों के बारे में बताता है.
लागू नहीं हां
PostFlow
यह किसी अनुरोध या जवाब के PostFlow फ़्लो में नीतियों के बारे में बताता है.
लागू नहीं हां
HTTPTargetConnection

चाइल्ड एलिमेंट की मदद से, यह एचटीटीपी के ज़रिए बैकएंड संसाधन की पहुंच के बारे में जानकारी देता है.

अगर आप HTTPTargetConnection का इस्तेमाल करते हैं, तो दूसरी तरह के टारगेट कनेक्शन को कॉन्फ़िगर न करें (ScriptTarget या LocalTargetConnection).

URL उस बैकएंड सेवा का नेटवर्क पता तय करता है जिस पर TargetEndpoint फ़ॉरवर्ड करता है अनुरोध मैसेज. लागू नहीं नहीं
LoadBalancer

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

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

लोड देखें बैकएंड सर्वर के बीच संतुलन बनाना.

लागू नहीं नहीं
Properties वैकल्पिक एचटीटीपी कॉन्फ़िगरेशन सेटिंग के एक सेट को <TargetEndpoint>. लागू नहीं नहीं
SSLInfo TLS/एसएसएल को कंट्रोल करने के लिए, TargetEndpoint पर TLS/एसएसएल सेटिंग तय करें एपीआई प्रॉक्सी और टारगेट सेवा के बीच कनेक्शन. TLS/SSL TargetEndpoint कॉन्फ़िगरेशन देखें. लागू नहीं नहीं
LocalTargetConnection अपने चाइल्ड एलिमेंट के साथ, यह नेटवर्क को बायपास करते हुए, स्थानीय तौर पर ऐक्सेस किए जाने वाले संसाधन के बारे में बताता है लोड बैलेंसिंग और मैसेज प्रोसेसर जैसी विशेषताएं शामिल करें.

लक्ष्य संसाधन तय करने के लिए, या तो APIप्रॉक्सी चाइल्ड एलीमेंट (जिसमें ProxyEndpoint एलिमेंट) या पाथ चाइल्ड एलिमेंट.

ज़्यादा जानकारी के लिए, Chaining API प्रॉक्सी देखें साथ में इस्तेमाल करें.

अगर LocalTargetConnection का इस्तेमाल किया जाता है, तो दूसरी तरह के टारगेट कनेक्शन कॉन्फ़िगर न करें (HTTPTargetConnection या ScriptTarget).

APIProxy अनुरोधों के टारगेट के तौर पर इस्तेमाल करने के लिए, एपीआई प्रॉक्सी का नाम बताता है. टारगेट प्रॉक्सी उसी संगठन और एनवायरमेंट में होना चाहिए जिसमें प्रॉक्सी ईमेल भेजने के अनुरोध मौजूद हैं. यह है विकल्प है. लागू नहीं नहीं
ProxyEndpoint टारगेट प्रॉक्सी के ProxyEndpoint का नाम तय करने के लिए, APIप्रॉक्सी के साथ इस्तेमाल किया जाता है. लागू नहीं नहीं
Path अनुरोधों के टारगेट के तौर पर इस्तेमाल करने के लिए, एपीआई प्रॉक्सी के एंडपॉइंट पाथ की जानकारी देता है. टारगेट प्रॉक्सी, उसी संगठन और एनवायरमेंट में होनी चाहिए जिसमें प्रॉक्सी भेजने वाले अनुरोध शामिल हैं. यह API-प्रॉक्सी का इस्तेमाल करने की जगह, एक विकल्प है. लागू नहीं नहीं
FaultRules
इससे पता चलता है कि TargetEndpoint किसी गड़बड़ी पर कैसे प्रतिक्रिया करता है. गड़बड़ी का नियम दो के बारे में बताता है आइटम:
  • ऐसी शर्त जो पहले से तय की गई गड़बड़ी के आधार पर गड़बड़ी को ठीक करने के बारे में बताती है कैटगरी, सबकैटगरी या गड़बड़ी का नाम
  • एक या एक से ज़्यादा ऐसी नीतियां जो तय करती हैं कि मिलती-जुलती शर्त

गड़बड़ियां ठीक करना देखें.

लागू नहीं नहीं
DefaultFaultRule

ऐसी किसी भी गड़बड़ी (सिस्टम, ट्रांसपोर्ट, मैसेज सेवा या नीति) को हैंडल करती है जो साफ़ तौर पर नहीं बताई गई है इसे किसी दूसरे FultRule ने हैंडल किया है.

गड़बड़ियां ठीक करना देखें.

लागू नहीं नहीं
ScriptTarget
ResourceURL

यह संसाधन टाइप (नोड) और उस मुख्य Node.js स्क्रिप्ट का नाम तय करता है जो TargetEndpoint फ़ंक्शन लागू करता है.

<ResourceURL>node://server.js</ResourceURL>

स्क्रिप्ट को आपके एपीआई प्रॉक्सी की संसाधन फ़ाइलों में शामिल करना ज़रूरी है. Node.js को मौजूदा एपीआई प्रॉक्सी.

अगर आप ScriptTarget का इस्तेमाल करते हैं, तो दूसरी तरह के टारगेट कनेक्शन कॉन्फ़िगर न करें (HTTPTargetConnection या LocalTargetConnection को शामिल कर सकता है).

लागू नहीं हां
EnvironmentVariable

इसके अलावा, आप एनवायरमेंट वैरिएबल को मुख्य Node.js स्क्रिप्ट में भी पास कर सकते हैं.

Edge को समझना देखें Node.js मॉड्यूल के साथ काम करता है.

लागू नहीं नहीं
Arguments

इसकी मदद से, मुख्य Node.js स्क्रिप्ट में आर्ग्युमेंट को पास करें.

Edge को समझना देखें Node.js मॉड्यूल के साथ काम करता है.

लागू नहीं नहीं

TLS/SSL TargetEndpoint कॉन्फ़िगरेशन

TargetEndpoints को अक्सर विषम बैकएंड की मदद से एचटीटीपीएस कनेक्शन को मैनेज करने की ज़रूरत पड़ती है किया जा सकता है. इस कारण से, कई TLS/SSL कॉन्फ़िगरेशन सेटिंग समर्थित हैं.

TLS/SSL TargetEndpoint के कॉन्फ़िगरेशन के एलिमेंट

नाम ब्यौरा डिफ़ॉल्ट ज़रूरी है?
SSLInfo
Enabled यह बताता है कि एंडपॉइंट के लिए TLS/एसएसएल की सुविधा चालू है या नहीं. अगर <URL> एचटीटीपीएस प्रोटोकॉल तय करता है, तो डिफ़ॉल्ट वैल्यू true होती है. और अगर <URL>, एचटीटीपी के बारे में बताता है, तो false. अगर <URL> एचटीटीपीएस का इस्तेमाल करता है, तो सही है नहीं
TrustStore भरोसेमंद सर्वर सर्टिफ़िकेट वाला कीस्टोर. लागू नहीं नहीं
ClientAuthEnabled ऐसी सेटिंग जो आउटबाउंड क्लाइंट ऑथेंटिकेशन (2-तरफ़ा TLS/एसएसएल) को चालू करती है गलत नहीं
KeyStore निजी पासकोड वाला कीस्टोर, जिसका इस्तेमाल आउटबाउंड क्लाइंट की पुष्टि करने के लिए किया जाता है लागू नहीं हां (अगर ClientAuthEnabled सही है)
KeyAlias आउटबाउंड क्लाइंट की पुष्टि करने के लिए इस्तेमाल की जाने वाली निजी कुंजी का अन्य नाम लागू नहीं हां (अगर ClientAuthEnabled सही है)
Ciphers

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

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

<Ciphers>
 <Cipher>TLS_RSA_WITH_3DES_EDE_CBC_SHA</Cipher>    
 <Cipher>TLS_RSA_WITH_DES_CBC_SHA</Cipher>
</Ciphers>
लागू नहीं नहीं
Protocols

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

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

<Protocols>
 <Protocol>TLSv1.1</Protocol>
 <Protocol>TLSv1.2</Protocol>
</Protocols>
लागू नहीं नहीं
CommonName

अगर तय किया गया हो, तो वह वैल्यू जिसके हिसाब से टारगेट सर्टिफ़िकेट के सामान्य नाम की पुष्टि की जाती है. यह वैल्यू सिर्फ़ TargetEndpoint और TargetServer के कॉन्फ़िगरेशन के लिए मान्य है. ऐसा नहीं है VirtualHost कॉन्फ़िगरेशन के लिए मान्य है.

डिफ़ॉल्ट रूप से, यहां दी गई वैल्यू, टारगेट सर्टिफ़िकेट के नाम से एग्ज़ैक्ट से मैच होती है. उदाहरण के लिए, <CommonName> की वैल्यू के तौर पर *.myhost.com का इस्तेमाल करना केवल तभी मेल करेगा और टारगेट होस्टनेम की पुष्टि करें, अगर सटीक वैल्यू *.myhost.com को आम नाम के तौर पर टारगेट सर्टिफ़िकेट.

इसके अलावा, Apigee, wildcardMatch एट्रिब्यूट का इस्तेमाल करके वाइल्डकार्ड की मदद से मैच कर सकता है.

उदाहरण के लिए, टारगेट सर्टिफ़िकेट में abc.myhost.com नाम के सामान्य नाम का मिलान किया जाएगा और उसकी पुष्टि की जाएगी अगर <CommonName> तत्व को इस तरह दर्ज किया गया है:

<CommonName wildcardMatch="true">*.myhost.com</CommonName>

लागू नहीं नहीं

आउटबाउंड क्लाइंट की पुष्टि करने की सुविधा चालू होने पर, TargetEndpoint का सैंपल

<TargetEndpoint name="default">
  <HttpTargetConnection>
        <URL>https://myservice.com</URL>
    <SSLInfo>
      <Enabled>true</Enabled>
      <ClientAuthEnabled>true</ClientAuthEnabled>
      <KeyStore>myKeystore</KeyStore>
      <KeyAlias>myKey</KeyAlias>
      <TrustStore>myTruststore</TrustStore>
    </SSLInfo>
  </HttpTargetConnection>
</TargetEndpoint>

ज़्यादा जानकारी के लिए, TLS कॉन्फ़िगर करना एज से लेकर बैकएंड (क्लाउड और प्राइवेट क्लाउड) तक.

इसका इस्तेमाल किया जा रहा है TLS/एसएसएल वैल्यू को डाइनैमिक तरीके से सेट करने के लिए फ़्लो वैरिएबल

अपने हिसाब से रनटाइम की ज़रूरतों के हिसाब से काम करने के लिए, डाइनैमिक TLS/एसएसएल की जानकारी भी सेट की जा सकती है. उदाहरण के लिए, अगर आपका प्रॉक्सी दो अलग-अलग टारगेट से कनेक्ट होता है (टेस्ट टारगेट और प्रोडक्शन टारगेट) के हिसाब से सेट किया जाता है, तो आप अपने एपीआई प्रॉक्सी को प्रोग्राम के हिसाब से यह पता लगा सकते हैं कि वह कौनसा एनवायरमेंट है कॉल करने और सही कीस्टोर और ट्रस्टस्टोर के लिए डाइनैमिक तौर पर रेफ़रंस सेट करने की सुविधा मिलती है. नीचे दिए गए Apigee कम्यूनिटी के लेख में इस स्थिति के बारे में ज़्यादा जानकारी दी गई है. साथ ही, डिप्लॉय किया जा सकने वाला एपीआई उपलब्ध कराया गया है प्रॉक्सी के उदाहरण: https://community.apigee.com/articles/21424/dynamic-sslinfo-for-targetendpoint-using-variable.html.

नीचे दिए गए उदाहरण में बताया गया है कि <SSLInfo> टैग को TargetEndpoint कॉन्फ़िगरेशन, रनटाइम के दौरान वैल्यू दी जा सकती हैं. उदाहरण के लिए, Java का इस्तेमाल करके कॉलआउट, JavaScript नीति या 'मैसेज असाइन करें' नीति. मैसेज वैरिएबल का इस्तेमाल करें शामिल किए जा सकते हैं, जिन्हें आप सेट करना चाहते हैं.

वैरिएबल की अनुमति सिर्फ़ इन एलिमेंट में दी जाती है.

<SSLInfo>
    <Enabled>{myvars.ssl.enabled}</Enabled>
    <ClientAuthEnabled>{myvars.ssl.client.auth.enabled}</ClientAuthEnabled>
    <KeyStore>{myvars.ssl.keystore}</KeyStore>
    <KeyAlias>{myvars.ssl.keyAlias}</KeyAlias>
    <TrustStore>{myvars.ssl.trustStore}</TrustStore>
</SSLInfo>
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

इसका इस्तेमाल किया जा रहा है TLS/एसएसएल की वैल्यू डाइनैमिक तरीके से सेट करने के लिए रेफ़रंस

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

ज़्यादा जानकारी के लिए, TLS अपडेट करें सर्टिफ़िकेट.

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

उदाहरण के लिए, नीचे एक TargetEndpoint दिखाया गया है, जो कीस्टोर के रेफ़रंस का इस्तेमाल करता है:

<SSLInfo> 
    <Enabled>true</Enabled> 
    <ClientAuthEnabled>false</ClientAuthEnabled> 
    <KeyStore>ref://keystoreref</KeyStore> 
    <KeyAlias>myKeyAlias</KeyAlias> 
</SSLInfo>

इस नाम वाली रेफ़रंस फ़ाइल बनाने के लिए, नीचे दिए गए POST API कॉल का इस्तेमाल करें keystoreref:

curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
-d '<ResourceReference name="keystoreref">
    <Refers>myTestKeystore</Refers>
    <ResourceType>KeyStore</ResourceType>
</ResourceReference>' -u email:password

रेफ़रंस, कीस्टोर का नाम और उसके टाइप के बारे में बताता है.

रेफ़रंस फ़ाइल देखने के लिए, इस जीईटी एपीआई कॉल का इस्तेमाल करें:

curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/keystoreref -u uname:password

किसी दूसरे कीस्टोर पर ले जाने के लिए, बाद में रेफ़रंस बदलने के लिए, पक्का करें कि उपनाम में समान नाम, निम्न PUT कॉल का उपयोग करें:

curl -X PUT -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references/keystoreref \
-d '<ResourceReference name="keystoreref">
    <Refers>myNewKeystore</Refers>
    <ResourceType>KeyStore</ResourceType>
</ResourceReference>' -u email:password

TargetEndpoint वह भी कसरत के दौरान,

TargetEndpoints, तीन लोड का इस्तेमाल करके नाम वाले कई TargetServers में लोड बैलेंस करने की सुविधा देता है बैलेंस करने वाले एल्गोरिदम.

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

नीतियां

एपीआई प्रॉक्सी की /policies डायरेक्ट्री में, सभी उपलब्ध नीतियां शामिल होती हैं API प्रॉक्सी में फ़्लो से अटैच हो जाता है.

नीति के कॉन्फ़िगरेशन एलिमेंट

नाम ब्यौरा डिफ़ॉल्ट ज़रूरी है?
Policy
name

नीति का अंदरूनी नाम. नाम में इस्तेमाल किए जा सकने वाले वर्णों पर पाबंदी है पाने वाला: A-Za-z0-9._\-$ %. हालांकि, Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) की मदद से पाबंदियां, जैसे कि अक्षर और अंक के अलावा किसी और वर्ण को अपने-आप हटाना.

विकल्प के तौर पर, यूआरएल को लेबल करने के लिए, <DisplayName> एलिमेंट का इस्तेमाल करें की नीति को अलग और सामान्य भाषा में लिखा गया है.

लागू नहीं हां
enabled

नीति को लागू करने के लिए, true पर सेट करें.

false को "बंद करें" पर सेट करें नीति के बारे में ज़्यादा जानें. नीति लागू किया जाता है, भले ही वह किसी फ़्लो से जुड़ा रहता हो.

सही नहीं
continueOnError

किसी नीति के काम न करने पर, गड़बड़ी दिखाने के लिए false पर सेट करें. यह है ज़्यादातर नीतियों के लिए अनुमानित व्यवहार.

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

गलत नहीं
async

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

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

एपीआई प्रॉक्सी में एसिंक्रोनस व्यवहार का इस्तेमाल करने के लिए, JavaScript ऑब्जेक्ट मॉडल देखें.

गलत नहीं

नीति अटैचमेंट

नीचे दी गई इमेज में, एपीआई प्रॉक्सी फ़्लो को लागू करने का क्रम दिखाया गया है:

किसी क्लाइंट को दिखाता है, जो एचटीटीपी सेवा को कॉल कर रहा है. अनुरोध को
  ProxyEndpoint और TargetEndpoint, दोनों में नीतियों को ट्रिगर करने वाले चरण होते हैं. इसके बाद
  एचटीटीपी सेवा से जवाब मिलता है. इसके रिस्पॉन्स को TargetEndpoint प्रोसेस करता है और इसके बाद
  क्लाइंट को लौटाए जाने से पहले ProxyEndpoing. अनुरोध के मुताबिक, जवाब को प्रोसेस किया जाता है
  में दी गई जानकारी देखने की सुविधा मिलती है.

जैसा कि ऊपर दिखाया गया है:

नीतियों को फ़्लो के प्रोसेस के चरणों के तौर पर अटैच किया गया है. नीति के नाम का इस्तेमाल इन कामों के लिए किया जाता है संसाधन चरण के रूप में लागू की जाने वाली नीति का संदर्भ दें. नीति अटैचमेंट का फ़ॉर्मैट यह है निम्न:

<Step><Name>MyPolicy</Name></Step>

नीतियां उसी क्रम में लागू की जाती हैं जिस क्रम में वे किसी फ़्लो से जुड़ी होती हैं. उदाहरण के लिए:

<Step><Name>FirstPolicy</Name></Step>
<Step><Name>SecondPolicy</Name></Step>

नीति अटैचमेंट का कॉन्फ़िगरेशन Elements

नाम ब्यौरा डिफ़ॉल्ट ज़रूरी है?
Step
Name इस चरण की परिभाषा के मुताबिक लागू की जाने वाली नीति का नाम. लागू नहीं हां
Condition यह एक कंडिशनल स्टेटमेंट है, जिससे यह तय होता है कि नीति लागू हुई है या नहीं. अगर कोई नीति से जुड़ी कोई शर्त है, तो नीति सिर्फ़ तब काम करती है, जब स्टेटमेंट का मूल्यांकन सही के तौर पर होता है. लागू नहीं नहीं

फ़्लो

ProxyEndpoint और TargetEndpoint, अनुरोध और जवाब वाले मैसेज के लिए एक पाइपलाइन तय करते हैं प्रोसेस चल रही है. प्रोसेसिंग पाइपलाइन में, अनुरोध और रिस्पॉन्स का फ़्लो शामिल होता है. हर अनुरोध फ़्लो और रिस्पॉन्स फ़्लो को PreFlow, एक या एक से ज़्यादा वैकल्पिक 'कंडिशनल' में बांटा गया है या 'नाम' और PostFlow, दोनों को शामिल करते हैं.

  • PreFlow: हमेशा काम करता है. यह किसी भी कंडिशनल फ़्लो से पहले लागू होता है.
  • PostFlow: हमेशा काम करता है. यह किसी भी कंडिशनल फ़्लो के बाद लागू होता है.

इसके अलावा, आप ProxyEndpoint में PostClientFlow जोड़ सकते हैं, जो अनुरोध करने वाले क्लाइंट के ऐप्लिकेशन को रिस्पॉन्स भेजा जाता है. सिर्फ़ MessageLogging नीति और Google स्टैकड्राइवर लॉगिंग एक्सटेंशन अटैच किया जा सकता है इस फ़्लो में शामिल हो जाएंगे. PostClientFlow, एपीआई प्रॉक्सी इंतज़ार के समय को कम करता है और यह एक ऐसी लॉगिंग है जिसकी गणना तब तक नहीं की जाती, जब तक कि क्लाइंट को रिस्पॉन्स लौटा नहीं दिया जाता, जैसे client.sent.start.timestamp और client.sent.end.timestamp.फ़्लो का इस्तेमाल किया जाता है मुख्य तौर पर, किसी रिस्पॉन्स के शुरू और खत्म होने के टाइमस्टैंप के बीच के समय को मापने के लिए दिखाई देगा.

कोई तरीका सिखाने वाला झटपट वीडियो देखें

वीडियो: संदेश प्रवेश का उपयोग करने के बारे में जानने के लिए PostClientFlow.

यहां PostClientFlow का एक उदाहरण दिया गया है, जिसमें मैसेज लॉग करने की नीति अटैच की गई है.

    ...
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
    <PostClientFlow>
        <Request/>
        <Response>
            <Step>
                <Name>Message-Logging-1</Name>
            </Step>
        </Response>
    </PostClientFlow>
    ...

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

पाइपलाइन का अनुरोध करें:

  1. प्रॉक्सी अनुरोध प्रीफ़्लो
  2. प्रॉक्सी अनुरोध की शर्त के हिसाब से फ़्लो (ज़रूरी नहीं)
  3. प्रॉक्सी अनुरोध पोस्टफ़्लो
  4. टारगेट रिक्वेस्ट प्रीफ़्लो
  5. लक्ष्य अनुरोध के शर्त वाले फ़्लो (ज़रूरी नहीं)
  6. टारगेट रिक्वेस्ट पोस्टफ़्लो

रिस्पॉन्स पाइपलाइन:

  1. टारगेट रिस्पॉन्स प्रीफ़्लो
  2. टारगेट जवाब के कंडिशनल फ़्लो (ज़रूरी नहीं)
  3. टारगेट रिस्पॉन्स पोस्टफ़्लो
  4. प्रॉक्सी रिस्पॉन्स प्रीफ़्लो
  5. प्रॉक्सी रिस्पॉन्स कंडिशनल फ़्लो (ज़रूरी नहीं)
  6. प्रॉक्सी रिस्पॉन्स पोस्टफ़्लो
  7. PostClientFlow रिस्पॉन्स (ज़रूरी नहीं)

सिर्फ़ नीति वाले अटैचमेंट वाले फ़्लो को ही ProxyEndpoint में कॉन्फ़िगर करना होगा या TargetEndpoint कॉन्फ़िगरेशन. PreFlow और PostFlow को सिर्फ़ ProxyEndpoint में बताना ज़रूरी है या जब PreFlow या PostFlow के दौरान किसी नीति को लागू करने की ज़रूरत होती है, तब TargetEndpoint कॉन्फ़िगरेशन प्रोसेस चल रही है.

कंडिशनल फ़्लो के उलट, PreFlow और PostFlow एलिमेंट का क्रम ज़रूरी--एपीआई प्रॉक्सी हर एक को पाइपलाइन में सही पॉइंट पर एक्ज़ीक्यूट करेगा, भले ही, एंडपॉइंट कॉन्फ़िगरेशन में वे कहीं भी दिखें.

कंडिशनल फ़्लो

ProxyEndpoints और TargetEndpoints की मदद से, बिना किसी शर्त वाले फ़्लो की संख्या अनलिमिटेड की जा सकती है ( जिसे 'नेम्ड फ़्लो' कहा जाता है).

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

कंडिशनल फ़्लो तय करने पर, आपको एपीआई प्रॉक्सी में प्रोसेसिंग के चरण लागू करने की सुविधा मिलती है इस पर आधारित:

  • अनुरोध URI
  • एचटीटीपी क्रिया (GET/PUT/POST/DELETE)
  • क्वेरी पैरामीटर, हेडर, और फ़ॉर्म पैरामीटर का मान
  • कई अन्य तरह की स्थितियां

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

<Flows>
  <Flow name="TokenEndpoint">
    <Condition>proxy.pathsuffix MatchesPath "/accesstoken"</Condition>
    <Request>
      <Step>
        <Name>GenerateAccessToken</Name>
      </Step>
    </Request> 
  </Flow>
</Flows>   

फ़्लो कॉन्फ़िगरेशन एलिमेंट

नाम ब्यौरा डिफ़ॉल्ट ज़रूरी है?
Flow प्रॉक्सीएंडपॉइंट से तय किया जाने वाला अनुरोध या रिस्पॉन्स प्रोसेस करने वाली पाइपलाइन या TargetEndpoint
Name फ़्लो का यूनीक नाम. लागू नहीं हां
Condition एक कंडिशनल स्टेटमेंट, जो 'सही' या गलत. पहले से तय PreFlow और PostFlow टाइप को छोड़कर बाकी सभी फ़्लो को, एक शर्त है. लागू नहीं हां
Request अनुरोध की मैसेज प्रोसेसिंग से जुड़ी पाइपलाइन लागू नहीं नहीं
Response जवाब वाले मैसेज को प्रोसेस करने से जुड़ी पाइपलाइन लागू नहीं नहीं

चरणों की प्रोसेसिंग

कंडिशनल फ़्लो को क्रम में लगाने के लिए, Apigee Edge का इस्तेमाल किया जाता है. कंडिशनल फ़्लो ऊपर से नीचे तक लागू करता है. पहला कंडिशनल फ़्लो, जिसकी शर्त का आकलन होता है true चलाया जाता है और सिर्फ़ एक शर्त वाला फ़्लो लागू होता है.

उदाहरण के लिए, नीचे दिए गए फ़्लो कॉन्फ़िगरेशन में, ऐसा कोई भी इनबाउंड अनुरोध जिसमें शामिल न हो पाथ सफ़िक्स /first या /second की वजह से ThirdFlow लागू करने के लिए, Return404 नाम की नीति को लागू करें.

<Flows>
  <Flow name="FirstFlow">
    <Condition>proxy.pathsuffix MatchesPath "/first"</Condition>
    <Request>
      <Step><Name>FirstPolicy</Name></Step>
    </Request>
  </Flow>
  <Flow name="SecondFlow">
    <Condition>proxy.pathsuffix MatchesPath "/second"</Condition>
    <Request>
      <Step><Name>FirstPolicy</Name></Step>
      <Step><Name>SecondPolicy</Name></Step>
    </Request>
  </Flow>
  <Flow name="ThirdFlow">
    <Request>
      <Step><Name>Return404</Name></Step>
    </Request>
  </Flow>
</Flows>

संसाधन

"संसाधन" (एपीआई प्रॉक्सी में इस्तेमाल करने के लिए संसाधन फ़ाइलें) स्क्रिप्ट, कोड, और XSL ट्रांसफ़ॉर्मेशन हैं जिसे नीतियों का इस्तेमाल करके, Flows पर अटैच किया जा सकता है. ये "स्क्रिप्ट" में दिखाई देते हैं सेक्शन में मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में प्रॉक्सी एडिटर.

इस्तेमाल की जा सकने वाली फ़ाइलों के लिए संसाधन फ़ाइलें देखें संसाधन प्रकार.

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

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