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

لا

الحل: القيود المفروضة على اسم ملف تخزين المفاتيح

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

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

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

يتم نشر النُسخ السابقة المتعددة للخادم الوكيل لواجهة برمجة التطبيقات في بيئة، ولكل نسخة سابقة مسار أساسي مختلف.

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

Apigee Edge Apigee X
يتيح هذا الخيار نشر نُسخ متعددة من خادم وكيل لواجهة برمجة التطبيقات، حيث يمكن أن يكون لكل نسخة سابقة مسار أساسي مختلف. لا تتيح الخدمة نشر نُسخ متعددة من خادم وكيل لواجهة برمجة التطبيقات، على الرغم من أنّ الخادم الوكيل لديه مسارات أساسية مختلفة.
لا

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

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

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

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

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

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

  • INVALID_CHARACTERS_IN_HEADER
  • MISSING_COLON
  • MULTIPLE_CONTENT_LENGTH
  • CONTENT_LENGTH_NOT_INTEGER
  • INVALID_UPGRADE
  • URL_HEADER_SIZE_TOO_LONG
  • BODY_NOT_ALLOWED
  • UNSUPPORTED_HTTP_VERSION
  • ZERO_CONTENT_LENGTH_FOR_POST_OR_PUT
  • UNSUPPORTED_RESPONSE_PREFIX
نعم، ربما.

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

لا

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

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

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

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

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

نظام أسماء النطاقات (DNS) لم يتم حله

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

تحتوي نقاط النهاية المستهدفة على أسماء نطاقات لم يتم حلها.

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

Apigee Edge Apigee X
إذا تعذّر التحويل باستخدام نظام أسماء النطاقات، يلحق Apigee .apigee.com باسم النطاق ويتم حلّ نظام أسماء النطاقات بنجاح باستخدام رمز الاستجابة 4xx. إذا تعذّر التحويل باستخدام نظام أسماء النطاقات، لا تنفّذ Apigee الطلب وتعرض رمز الاستجابة 5xx.
لا

الحل: نظام أسماء نطاقات لم يتم حله

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