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

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

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 keystore के नामों पर ये पाबंदियां लागू नहीं होती हैं.

नहीं

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

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

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

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

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

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 Edge पर लागू नहीं होती हैं. हालांकि, Apigee X पर ये सीमाएं लागू होती हैं. इन सीमाओं के बारे में दस्तावेज़ में बताया गया है.

नहीं

समस्या हल हो गई है: प्रॉडक्ट की तय सीमा से ज़्यादा प्रॉडक्ट अपलोड किए गए हैं

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

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

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

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

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

नहीं

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

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

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

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

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

नहीं

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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