أساليب نقل البيانات من 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 للفهارس غير المتوفّرة

ملخّص هل يتطلّب إجراء تغييرات من جهة العميل؟ الحلّ

تختلف سلوكيات تعبيرات 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
تتيح نشر مراجعات متعددة لخادم وكيل لواجهة برمجة التطبيقات، ويمكن أن تتضمّن كل مراجعة مسارًا أساسيًا مختلفًا. لا يتيح نشر مراجعات متعددة لخادم وكيل لواجهة برمجة التطبيقات حتى إذا كان للخادم الوكيل مسارات أساسية مختلفة.
لا

القرار: تم نشر مسارات أساسية متعددة لخادم وكيل لواجهة برمجة التطبيقات

عدِّل جميع الحِزم بحيث يتم نشر نسخة واحدة فقط من الحزمة في بيئة معيّنة، بغض النظر عن basepath.

رسائل HTTP غير متوافقة

ملخّص هل يتطلّب إجراء تغييرات من جهة العميل؟ الحلّ

يرسل العملاء أو خادم وكيل واجهة برمجة التطبيقات رسائل (طلبات أو استجابات) لا تتوافق مع معيار HTTP. على سبيل المثال، أسماء العناوين غير الصالحة، والتكرارات في بعض العناوين المحظورة، وما إلى ذلك.

لا يمكنك الانتقال إلى Apigee X إذا كان تنفيذ واجهة برمجة التطبيقات يتضمّن خطأ واحدًا أو أكثر من الأخطاء التالية:

خطأ التفاصيل
INVALID_CHARACTERS_IN_HEADER تم العثور على حرف واحد أو أكثر من الأحرف غير المسموح بها في العنوان المحدّد. تتألف أسماء العناوين الصالحة من أحرف إنجليزية وأرقام وواصلات.
MISSING_COLON عدم تضمين : (نقطتين) في زوج اسم العنوان وقيمة العنوان
MULTIPLE_CONTENT_LENGTH تم تقديم قيم متعدّدة لعنوان Content-Length.
CONTENT_LENGTH_NOT_INTEGER قيمة العنوان Content-Length ليست عددًا صحيحًا.
INVALID_UPGRADE يجب استخدام عنوان Upgrade فقط لتفعيل اتصالات WebSocket، ولكن لا يتم ذلك.
URL_HEADER_SIZE_TOO_LONG يتجاوز إجمالي حجم عنوان URL للطلب والعناوين الحد الأقصى المسموح به وهو 15 كيلوبايت.
BODY_NOT_ALLOWED لا يُسمح بنص الرسالة مع طرق "GET" و"DELETE" و"TRACE" و"OPTIONS" و "HEAD".
UNSUPPORTED_HTTP_VERSION يتم استخدام إصدار HTTP غير 1.1 للطلب، وهو إصدار غير متوافق.
ZERO_CONTENT_LENGTH_FOR_POST_OR_PUT تم ضبط قيمة حقل العنوان Content-Length على صفر ("0") لطريقة "POST" أو "PUT".
UNSUPPORTED_RESPONSE_PREFIX كانت بادئة العنوان "X-Apigee-" غير المتوافقة مضمّنة في عنوان الاستجابة.
نعم، ربما.

الحل: رسائل HTTP غير متوافقة

يجب إصلاح أي أخطاء في بروتوكولات HTTP قبل نقل البيانات إلى 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 على أحرف وأرقام وواصلات ونقاط فقط. لا تفرض أسماء خوادم الاستهداف على الحافة هذه القيود.

لا

الحلّ: قيود على اسم الخادم المستهدف

تحقَّق من أسماء الخوادم المستهدَفة وعدِّلها لإزالة الأحرف غير المتوافقة إذا لزم الأمر.

شهادة تجريبية في مضيف افتراضي

ملخّص هل يتطلّب إجراء تغييرات من جهة العميل؟ الحلّ

يستخدم مضيف افتراضي واحد أو أكثر شهادة "الفترة التجريبية المجانية" المقدَّمة من Apigee. يؤدي ذلك إلى استجابة المضيف الافتراضي للطلبات على نطاقات مثل ORG-ENV.apigee.net.

الفرق بين Apigee Edge وApigee X:

Apigee Edge Apigee X
يضبط تلقائيًا المضيف الافتراضي (vhost) ليتوافق مع اسم نطاق بالتنسيق ORG-ENV.apigee.net. تتوفّر شهادة حرف بدل، تُعرف باسم "شهادة الفترة التجريبية المجانية"، تتيح استخدام بروتوكول أمان طبقة النقل (TLS) على هذه النطاقات. لا تتوفّر نطاقات 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.
لا

النتيجة: تعذُّر التحويل باستخدام نظام أسماء النطاقات (DNS)

عدِّل نقطة النهاية المستهدَفة باستخدام اسم نطاق صالح.