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 कीस्टोर के नाम में सिर्फ़ अक्षर, संख्याएं, और हाइफ़न शामिल किए जा सकते हैं. 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 के लिए, ऐक्सेस टोकन और रीफ़्रेश टोकन की समयसीमा सेट करनी होगी. ये रेंज इस्तेमाल की जा सकती हैं:
  • OAuth 2.0 ऐक्सेस टोकन की समयसीमा 180 सेकंड से ज़्यादा और 30 दिन से कम होनी चाहिए
  • OAuth 2.0 रीफ़्रेश टोकन की समयसीमा 1 दिन से 2 साल के बीच होनी चाहिए
नहीं

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

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

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

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

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

नहीं

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

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
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 रिस्पॉन्स कोड दिखाता है.
नहीं

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

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