Apigee Edge से Apigee X माइग्रेशन एंटीपैटर्न

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

Apigee Edge के मौजूदा ग्राहक के तौर पर, आपके पास इंस्टॉल किए गए ऐप्लिकेशन को Apigee X पर माइग्रेट करने का विकल्प है. ऐसा, नई सुविधाओं या अलग-अलग क्षेत्र में उपलब्धता के लिए किया जा सकता है.

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

Apigee Edge के एंटीपैटर्न की सूची में, इस्तेमाल के उन तरीकों के बारे में बताया गया है जिनसे किसी भी स्थिति में बचना चाहिए. इस पेज पर, इस्तेमाल के ऐसे खास तरीकों के बारे में बताया गया है जिन्हें अस्वीकार कर दिया गया है. इनकी मदद से माइग्रेशन ब्लॉक हो जाएगा. Apigee X पर माइग्रेट करते समय आने वाली समस्याओं से बचने के लिए, इन्हें अभी ठीक करें.

ऐसे ऐप्लिकेशन जिनमें एपीआई प्रॉडक्ट मौजूद नहीं हैं

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

कुछ ऐप्लिकेशन में एपीआई प्रॉडक्ट मौजूद नहीं हैं.

Apigee Edge और Apigee X में अंतर:

Apigee Edge Apigee X
किसी ऐसे ऐप्लिकेशन और क्रेडेंशियल को कॉन्फ़िगर किया जा सकता है जो किसी भी एपीआई प्रॉडक्ट से जुड़ा न हो. इस ऐप्लिकेशन के पास सभी एपीआई प्रॉडक्ट का ऐक्सेस है. हर ऐप्लिकेशन को कम से कम एक एपीआई प्रॉडक्ट को ऐक्सेस करने के लिए कॉन्फ़िगर किया जाना चाहिए. साफ़ तौर पर, सभी एपीआई प्रॉडक्ट को ऐक्सेस देने का कोई तरीका नहीं है. सभी एपीआई प्रॉडक्ट का ऐक्सेस पाने के लिए, किसी ऐप्लिकेशन को कॉन्फ़िगर किया जा सकता है. हालांकि, आपको ऐसा साफ़ तौर पर करना होगा.
नहीं.

समाधान: ऐसे ऐप्लिकेशन जिनमें एपीआई प्रॉडक्ट मौजूद नहीं हैं

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

आसान तरीका यह है कि हर ऐप्लिकेशन को सभी एपीआई प्रॉडक्ट का ऐक्सेस दिया जाए. यह Apigee Edge में उपलब्ध होने वाली संख्या के बराबर होगा. अगर आपको "कम से कम खास अधिकार" वाला तरीका अपनाना है, तो चुनौती यह होगी कि आपको एपीआई प्रॉडक्ट की कम से कम ऐसी सूची तय करनी होगी जिसका ऐक्सेस हर ऐप्लिकेशन क्रेडेंशियल के पास होना चाहिए. क्लाइंट आईडी के आधार पर, Apigee Edge की Analytics रिपोर्ट की मदद से, इसका विश्लेषण किया जा सकता है.

कैश मेमोरी में सेव करें, लेकिन इसकी समयसीमा खत्म नहीं होगी

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

कैश मेमोरी की कोई समयसीमा नहीं होती.

Apigee Edge और Apigee X में अंतर:

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

समाधान: समाप्ति समय के बिना कैश मेमोरी

सभी कैश मेमोरी के लिए, खत्म होने का समय सेट करें.

नॉन-डेफ़िनेट पाथ पर JSONPath के फ़िल्टर एक्सप्रेशन

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

जो पाथ तय नहीं हैं उनके लिए, फ़िल्टर एक्सप्रेशन के नतीजे की क्वेरी करना, JSONPath की खास जानकारी का हिस्सा नहीं है. https://goessner.net/articles/JsonPath/ देखें.

Apigee Edge और Apigee X में अंतर:

इस उदाहरण स्ट्रक्चर को नेविगेट करते समय,

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

$..books[?(@.name == 'A')][0] एक्सप्रेशन के साथ,

Apigee Edge Apigee X
आउटपुट ‘{"name": "A"}’ आउटपुट []

$..books[?(@.name == 'A')][0].name एक्सप्रेशन के साथ,

Apigee Edge Apigee X
आउटपुट "A" आउटपुट []
हां

रिज़ॉल्यूशन: नॉन-डेफ़िनेट पाथ पर JSONPath के फ़िल्टर एक्सप्रेशन

जिन क्वेरी पर असर पड़ा है उन्हें ढूंढें और बदलें.

उन इंडेक्स के लिए JSONPath के एक्सप्रेशन जो मौजूद नहीं हैं

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

जो इंडेक्स मौजूद नहीं है उसके साथ JSONPath के एक्सप्रेशन का व्यवहार, Apigee X और Apigee Edge में अलग-अलग होता है. पाथ न मिलने पर, Apigee X, PathNotFoundException गड़बड़ी दिखाता है.

Apigee Edge और Apigee X में अंतर:

इस उदाहरण स्ट्रक्चर को नेविगेट करते समय,

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

$.books[3] एक्सप्रेशन के साथ,

Apigee Edge Apigee X
आउटपुट null आउटपुट में PathNotFoundException गड़बड़ी हुई
हां

समाधान: जो इंडेक्स मौजूद नहीं हैं उनके लिए JSONPath के एक्सप्रेशन

जिन क्वेरी पर असर पड़ा है उन्हें ढूंढें और बदलें.

अरे इंडेक्स वाला JSONPath का एक्सप्रेशन कोई अरे ऑब्जेक्ट नहीं दिखा रहा है

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

अरे इंडेक्स या स्लाइस वाले JSONPath के एक्सप्रेशन, Apigee X में ऐरे ऑब्जेक्ट दिखाते हैं.

Apigee Edge और Apigee X में अंतर:

इस उदाहरण स्ट्रक्चर को नेविगेट करते समय,

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

$.books एक्सप्रेशन के साथ,

Apigee Edge Apigee X
आउटपुट {“name”:”A”, “name”: “B”} आउटपुट [{“name”:”A”, “name”: “B”}]

$.books[-1] एक्सप्रेशन के साथ,

Apigee Edge Apigee X
आउटपुट {“name”: “B”} आउटपुट [{“name”: “B”}]

$.books[-2:] एक्सप्रेशन के साथ,

Apigee Edge Apigee X
आउटपुट {“name”:”A”, “name”: “B”} आउटपुट [{“name”:”A”, “name”: “B”}]
हां

समाधान: अरे इंडेक्स वाला JSONPath के एक्सप्रेशन, अरे ऑब्जेक्ट नहीं दिखा रहे हैं

ऐसे एक्सप्रेशन खोजें और बदलें जो अपग्रेड के बाद अलग नतीजे दे सकते हैं.

कीस्टोर के नाम से जुड़ी पाबंदियां

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

Apigee X कीस्टोर के नामों में सिर्फ़ अक्षर, संख्याएं, और हाइफ़न हो सकते हैं. किनारे के कीस्टोर के नामों पर ये पाबंदियां लागू नहीं होतीं.

नहीं

समाधान: कीस्टोर के नाम से जुड़ी पाबंदियां

कीस्टोर के नामों की जांच करें और अगर ज़रूरी हो, तो इस्तेमाल न किए जा सकने वाले वर्णों को हटाने के लिए, नामों को अपडेट करें.

एपीआई प्रॉक्सी के लिए कई बेस पाथ डिप्लॉय किए गए

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

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

Apigee Edge और Apigee X में अंतर:

Apigee Edge Apigee X
एपीआई प्रॉक्सी के एक से ज़्यादा बदलावों को लागू करने की सुविधा देता है, जहां हर रिविज़न का एक अलग बेस पाथ हो सकता है. प्रॉक्सी के अलग-अलग बेस पाथ होने पर भी, एपीआई प्रॉक्सी के एक से ज़्यादा बदलावों को डिप्लॉय करने की सुविधा नहीं है.
नहीं

समाधान: एपीआई प्रॉक्सी के लिए एक से ज़्यादा बेस पाथ डिप्लॉय किए गए

सभी बंडल अपडेट करें, ताकि एनवायरमेंट में बंडल का सिर्फ़ एक बदलाव लागू हो. भले ही, बेस पाथ कुछ भी हो.

नीतियों का पालन न करने वाले एचटीटीपी मैसेज

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

क्लाइंट या एपीआई प्रॉक्सी, ऐसे मैसेज (अनुरोध या जवाब) भेजते हैं जो एचटीटीपी स्टैंडर्ड का पालन नहीं करते. उदाहरण के लिए, हेडर के अमान्य नाम, कुछ प्रतिबंधित हेडर में डुप्लिकेशन वगैरह.

अगर आपके एपीआई के एक या एक से ज़्यादा हिस्से में नीचे दी गई गड़बड़ियां हैं, तो आप Apigee X पर माइग्रेट नहीं कर सकते:

  • INVALID_CHARACTERS_IN_HEADER
  • MISSING_COLON
  • MULTIPLE_CONTENT_LENGTH
  • CONTENT_LENGTH_NOT_INTEGER
  • INVALID_UPGRADE
  • URL_HEADER_SIZE_TOO_LONG
  • BODY_NOT_ALLOWED
  • UNSUPPORTED_HTTP_VERSION
  • ZERO_CONTENT_LENGTH_FOR_POST_OR_PUT
  • UNSUPPORTED_RESPONSE_PREFIX
हां, शायद.

समाधान: नीति का पालन न करने वाले एचटीटीपी मैसेज

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

OAuth 2.0 टोकन के खत्म होने की अवधि अमान्य है

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

OAuth 2.0 टोकन के खत्म होने की समयसीमा, इसमें तय की गई सीमा से बाहर है.

Apigee Edge और Apigee X में अंतर:

Apigee Edge Apigee X
फ़िलहाल, OAuth 2.0 टोकन के खत्म होने की अवधि को लेकर कोई पाबंदी नहीं है. हालांकि, इसे लागू करने की योजना है. सीमाओं के OAuth सेक्शन में दिए गए दिशा-निर्देश देखें. OAuth 2.0 के लिए, आपको ऐक्सेस टोकन सेट करना होगा और टोकन की समयसीमा रीफ़्रेश करने का समय सेट करना होगा. इस्तेमाल की जा सकने वाली रेंज हैं:
  • 180 सेकंड <= OAuth 2.0 ऐक्सेस टोकन की समयसीमा खत्म होने का समय <= 30 दिन
  • एक दिन <= OAuth 2.0 रीफ़्रेश टोकन की समयसीमा खत्म होने का समय <= 2 साल
नहीं

समाधान: OAuth 2.0 टोकन की समयसीमा खत्म होने की तारीख अमान्य है

OAuthV2 नीति का इस्तेमाल करें. साथ ही, समयसीमा खत्म होने के समय की जानकारी <ExpiresIn> और <RefreshTokenExpiresIn> में दें.

तय सीमा से ज़्यादा प्रॉडक्ट नहीं दिखाए जा सकते

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

Apigee Edge का कॉन्फ़िगरेशन, तय किए गए प्रॉडक्ट की सीमाओं के मुताबिक नहीं है. प्रॉडक्ट के लिए कुछ ऐसी सीमाएं लागू होती हैं जिन्हें दस्तावेज़ के तौर पर दर्ज किया गया है, लेकिन Apigee Edge पर लागू नहीं किया गया है. ये सीमाएं, Apigee X पर लागू होती हैं.

नहीं

समाधान: प्रॉडक्ट की सीमाएं पार हो गई हैं

Apigee X पर माइग्रेट करने से पहले, प्रॉडक्ट के लिए तय की गई सीमाओं से ज़्यादा इस्तेमाल के लिए सुधार करें.

एंडपॉइंट और पाथ टारगेट कनेक्शन की जानकारी देने वाली, सेवा कॉलआउट की नीतियां

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

सेवा कॉलआउट की नीति के तहत, <LocalTargetConnection> एलिमेंट में <APIProxy> और <ProxyEndpoint> एलिमेंट या <Path> एलिमेंट शामिल होने चाहिए, लेकिन दोनों नहीं. ज़्यादा जानकारी के लिए, <LocalTargetConnection> एलिमेंट देखें.

Apigee Edge, इस शर्त को पूरा करता है, लेकिन इसे लागू नहीं करता. अगर Apigee X को दोनों कॉन्फ़िगरेशन वाला <LocalTargetConnection> मिलता है, तो वह प्रोसेस करना बंद कर देता है.

नहीं

समाधान: एंडपॉइंट और पाथ टारगेट कनेक्शन की जानकारी देने वाली सेवा कॉलआउट की नीतियां

सेवा कॉलआउट की नीति के कॉन्फ़िगरेशन की जांच करें और <LocalTargetConnection> के ऐसे सभी कॉन्फ़िगरेशन हटाएं जो नीतियों का पालन नहीं करते हैं.

टारगेट सर्वर के नाम से जुड़ी पाबंदियां

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

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

नहीं

समाधान: टारगेट सर्वर के नाम से जुड़ी पाबंदियां

टारगेट सर्वर के नामों की जांच करें और अगर ज़रूरी हो, तो इस्तेमाल न किए जा सकने वाले वर्णों को हटाने के लिए, नामों को अपडेट करें.

वर्चुअल होस्ट में मुफ़्त में आज़माने का सर्टिफ़िकेट

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

एक या एक से ज़्यादा वर्चुअल होस्ट, Apigee से मिले "मुफ़्त में आज़माने" के सर्टिफ़िकेट का इस्तेमाल करते हैं. इससे वर्चुअल होस्ट, ORG-ENV.apigee.net जैसे डोमेन के अनुरोधों का जवाब देता है.

Apigee Edge और Apigee X में अंतर:

Apigee Edge Apigee X
"डिफ़ॉल्ट" vhost को अपने-आप कॉन्फ़िगर करता है, ताकि ORG-ENV.apigee.net फ़ॉर्म के डोमेन नेम के साथ काम कर सके. एक वाइल्डकार्ड सर्टिफ़िकेट मौजूद होता है, जिसे "मुफ़्त में आज़माने का सर्टिफ़िकेट" कहा जाता है. यह इन डोमेन पर TLS की अनुमति देता है. ORG-ENV.apigee.net फ़ॉर्म के लेगसी Apigee डोमेन, Apigee X में उपलब्ध नहीं हैं. आपको अपना डोमेन नेम कॉन्फ़िगर करना होगा और सर्टिफ़िकेट का सही तरीके से प्रावधान करना होगा.
हां

समाधान: वर्चुअल होस्ट में मुफ़्त में आज़माने का सर्टिफ़िकेट

आपको अपना डोमेन खुद कॉन्फ़िगर करना होगा और सर्टिफ़िकेट का सही तरीके से प्रावधान करना होगा.

ORG-ENV.apigee.net फ़ॉर्म के लेगसी डोमेन नेम पर निर्भर, किसी भी क्लाइंट ऐप्लिकेशन में, नए डोमेन को कॉल करने के लिए बदलाव करना ज़रूरी है.

समाधान नहीं किया गया डीएनएस

खास जानकारी क्या क्लाइंट-साइड पर बदलावों की ज़रूरत है? रिज़ॉल्यूशन

टारगेट एंडपॉइंट में डोमेन नेम ऐसे हैं जिन्हें अब तक हल नहीं किया गया है.

Apigee Edge और Apigee X में अंतर:

Apigee Edge Apigee X
अगर डीएनएस रिज़ॉल्यूशन पूरा नहीं हो पाता, तो Apigee, .apigee.com को डोमेन नेम में जोड़ देता है. साथ ही, डीएनएस रिस्पॉन्स कोड 4xx रिस्पॉन्स कोड की मदद से, इस रिज़ॉल्व हो जाता है. अगर डीएनएस रिज़ॉल्यूशन पूरा नहीं हो पाता है, तो Apigee, अनुरोध पर कार्रवाई नहीं करता है और 5xx रिस्पॉन्स कोड दिखाता है.
नहीं

रिज़ॉल्यूशन: समाधान नहीं किया गया डीएनएस

टारगेट एंडपॉइंट को मान्य डोमेन नेम से अपडेट करें.