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

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

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

رسائل 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. في حال تعذُّر التحويل باستخدام نظام أسماء النطاقات (DNS)، لا تنفّذ Apigee الطلب وتعرض رمز الاستجابة 5xx.
لا

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

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