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

आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ info पर जाएं.

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 एक्सप्रेशन जो मौजूद नहीं हैं

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

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

Apigee Edge और Apigee X के बीच अंतर:

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

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

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

Apigee Edge Apigee X
आउटपुट null PathNotFoundException गड़बड़ी का आउटपुट देता है
हां

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

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

ऐरे इंडेक्स वाले JSONPath एक्सप्रेशन से ऐरे ऑब्जेक्ट नहीं मिल रहा है

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

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

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 के कीस्टोर के नामों में सिर्फ़ अक्षर, संख्याएं, और हाइफ़न शामिल किए जा सकते हैं. Edge के कीस्टोर के नामों पर ये पाबंदियां लागू नहीं होती हैं.

नहीं

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

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

किसी एपीआई प्रॉक्सी के लिए, एक से ज़्यादा बेस पाथ डिप्लॉय किए गए हैं

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

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

Apigee Edge और Apigee X के बीच अंतर:

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

समस्या हल करना: किसी एपीआई प्रॉक्सी के लिए कई बेस पाथ डिप्लॉय किए गए हैं

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

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

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

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

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

गड़बड़ी जानकारी
INVALID_CHARACTERS_IN_HEADER हेडर में एक या उससे ज़्यादा अमान्य वर्ण मिले हैं. मान्य हेडर के नाम में अंग्रेज़ी के अक्षर, अंक, और हाइफ़न शामिल होते हैं.
MISSING_COLON हेडर के नाम और हेडर की वैल्यू के जोड़े में : (कोलन) मौजूद नहीं है.
MULTIPLE_CONTENT_LENGTH Content-Length हेडर के लिए एक से ज़्यादा वैल्यू दी गई हैं.
CONTENT_LENGTH_NOT_INTEGER Content-Length हेडर की वैल्यू पूर्णांक नहीं है.
INVALID_UPGRADE अपग्रेड हेडर का इस्तेमाल सिर्फ़ WebSocket कनेक्शन चालू करने के लिए किया जाना चाहिए, लेकिन ऐसा नहीं है.
URL_HEADER_SIZE_TOO_LONG अनुरोध किए गए यूआरएल और हेडर का कुल साइज़, 15 केबी की तय सीमा से ज़्यादा है.
BODY_NOT_ALLOWED "GET", "DELETE", "TRACE", "OPTIONS", और "HEAD" तरीकों के साथ मैसेज बॉडी का इस्तेमाल नहीं किया जा सकता.
UNSUPPORTED_HTTP_VERSION अनुरोध के लिए, एचटीटीपी के 1.1 वर्शन के अलावा किसी दूसरे वर्शन का इस्तेमाल किया जा रहा है. यह वर्शन काम नहीं करता.
ZERO_CONTENT_LENGTH_FOR_POST_OR_PUT "POST" या "PUT" तरीके के लिए, Content-Length हेडर फ़ील्ड की वैल्यू को शून्य ("0") पर सेट किया गया था.
UNSUPPORTED_RESPONSE_PREFIX रिस्पॉन्स हेडर में, “X-Apigee-” हेडर का ऐसा प्रीफ़िक्स मौजूद था जिसका इस्तेमाल नहीं किया जा सकता.
हां, ऐसा हो सकता है.

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

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 रीफ़्रेश टोकन की समयसीमा खत्म होने का समय, एक दिन से लेकर दो साल तक हो सकता है
नहीं

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

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

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

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

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

नहीं

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

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

एंडपॉइंट और पाथ टारगेट कनेक्शन स्पेसिफ़ायर, दोनों के साथ ServiceCallout नीतियां

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

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

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

नहीं

समाधान: ServiceCallout की ऐसी नीतियां जिनमें एंडपॉइंट और पाथ, दोनों के लिए टारगेट कनेक्शन स्पेसिफ़ायर मौजूद हैं

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

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

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

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

नहीं

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

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

वर्चुअल होस्ट में ट्रायल सर्टिफ़िकेट

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

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

Apigee Edge और Apigee X के बीच अंतर:

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

समस्या का हल: वर्चुअल होस्ट में ट्रायल सर्टिफ़िकेट

आपको अपना डोमेन कॉन्फ़िगर करना होगा. साथ ही, सर्टिफ़िकेट सही तरीके से उपलब्ध कराने होंगे.

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

डीएनएस की समस्या ठीक नहीं हुई

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

टारगेट किए गए एंडपॉइंट के डोमेन नेम हल नहीं किए गए हैं.

Apigee Edge और Apigee X के बीच अंतर:

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

समस्या हल नहीं हुई: डीएनएस की समस्या हल नहीं हुई

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