عندما يتم تقديم طلبات بيانات من واجهة برمجة التطبيقات من خلال Apigee Edge، مكوّنات أجهزة التوجيه ومعالجات الرسائل من Apigee Edge أو خوادم الخلفية يمكنها عرض أخطاء على تطبيقات العميل.
أخطاء من معالج الرسائل
معالج الرسائل هو المكوِّن الأساسي في Apigee Edge الذي يعالج السياسات
ويتفاعل مع الخوادم الخلفية. ويمكن أن يعرض أخطاء في حال رصد أي مشاكل مثل:
مشاكل في الاتصال بالشبكة وتعذّر تأكيد اتصال بروتوكول أمان طبقة النقل (TLS) وعدم توفّر خادم الخلفية
وقلة الاستجابة أثناء الاتصال بخادم الخلفية
حالات الإخفاق أثناء تنفيذ السياسة
عناوين HTTP أو ترميز أو مسار أو عدم التزام بمواصفات HTTP غير صالحة أو تجاوز
الحدود القصوى للمنتجات أو غير ذلك:
مع طلب HTTP المُرسَل من تطبيقات العميل
أو
مع استجابة HTTP التي أرسلها خادم الخلفية
وأسئلة أخرى كثيرة
نموذج خطأ من معالج الرسائل
يعرض "معالج الرسائل" دائمًا رمز حالة HTTP متبوعًا برسالة خطأ بالإضافة إلى رمز خطأ بتنسيق JSON كما هو موضّح أدناه:
يحصل تطبيق العميل على رمز استجابة مثل المثال التالي:
HTTP/1.1 414 Request-URI Too Long
تظهر استجابة الخطأ من معالج الرسائل بالتنسيق التالي:
تحتوي على رسالة الخطأ التي تصف السبب المحتمل للخطأ
errorcode
رمز الخطأ (يُشار إليه أيضًا باسم رمز الخطأ) المرتبط
بالخطأ
كتالوج أخطاء وقت التشغيل
توفّر كتالوج الأخطاء هذا جميع المعلومات التي تحتاج إلى معرفتها حول رموز الأخطاء في وقت التشغيل (للأخطاء غير المتعلقة بالسياسة) التي يعرضها مكوّن معالج الرسائل Apigee Edge. ويتضمّن المعلومات التالية لكل رمز من رموز الخطأ:
رمز حالة HTTP
رسالة الخطأ
الأسباب المحتملة للخطأ
أي مواصفات HTTP و/أو حدود للمنتجات ذات الصلة
أدلّة إرشادية وفيديوهات تتضمّن تعليمات لتشخيص سبب الخطأ
والحلول الفعّالة التي يمكنك اتّباعها لحلّ الخطأ بنفسك (متى توفّرت)
يمكنك حلّ المشاكل التي يمكنك تطبيقها لحلّ الخطأ بنفسك.
استخدِم مربّع البحث أدناه لفلترة الجدول من أجل عرض المعلومات السابقة الخاصة برمز خطأ معيّن. ويمكنك البحث عن رمز الحالة أو أي محتوى في أي حقل
ضمن الجدول.
searchشبكة البحث
رمز الخطأ
الوصف
إصلاح
flow.*
flow.APITimedOut
رمز حالة HTTP:
504 Gateway Timeout
رسالة الخطأ:
API timed out
السبب المحتمل:
يحدث هذا الخطأ في الحالات التالية:
لا يستجيب خادم الخلفية خلال فترة المهلة التي تم ضبطها
من خلال الموقع
api.timeout للخادم الوكيل المحدَّد لواجهة برمجة التطبيقات.
تستغرق السياسة وقتًا طويلاً بسبب العمليات الحسابية المكثّفة أو الحِمل الزائد
أو الأداء الضعيف.
ملاحظة: يوفّر هذا الدليل الإرشادي تعليمات لتحديد مشاكل رمز الخطأ messaging.adaptors.http.flow.GatewayTimeout وحلّها، ولكن يمكنك استخدام الدليل الإرشادي نفسه لتحديد مشاكل رمز الخطأ flow.APITimedOut وحلّها.
قد تختلف رسالة الخطأ وتنسيقها بناءً على تنفيذ خادم الخلفية.
السبب المحتمل:
يحدث هذا الخطأ عندما يستجيب خادم الخلفية برمز
الحالة 504 إلى Apigee Edge.
ملاحظة: لا يتم عرض رمز الخطأ messaging.adaptors.http.flow.ErrorResponseCode كجزء من رسالة الخطأ المرسلة إلى التطبيقات العميلة. ويرجع ذلك إلى أنّه يتم ضبط رمز الخطأ هذا من خلال Apigee Edge كلما استجاب خادم الخلفية
برسالة خطأ وأي من رموز الحالة 4XX أو 5XX. يمكنك عرض رمز الخطأ هذا في مراقبة واجهة برمجة التطبيقات أو سجلات الدخول إلى NGINX أو قاعدة بيانات الإحصاءات.
messaging.adaptors.http.flow.GatewayTimeout
رمز حالة HTTP:
504 Gateway Timeout
رسالة الخطأ:
Gateway Timeout
السبب المحتمل:
يحدث هذا الخطأ إذا لم يستجِب خادم الخلفية
لمعالج رسائل Apigee Edge خلال
فترة مهلة وحدات الإدخال والإخراج التي تم ضبطها على "معالج الرسائل".
يحدث هذا الخطأ إذا لم يتجاوز تطبيق العميل عنوان Content-Length كجزء من طلبات HTTP POST وPUT المُرسَلة إلى Apigee Edge.
ملاحظة: لا يمكن تسجيل الطلبات التي يتعذّر تنفيذها مع هذا الخطأ من خلال أداة التتبُّع، لأنّ معالج الرسائل يُجري عملية التحقّق هذه في مرحلة مبكرة جدًا، قبل معالجة الطلب وتنفيذ أي سياسة في الخادم الوكيل لواجهة برمجة التطبيقات.
تأكَّد من أنّ تطبيق العميل يمرِّر دائمًا العنوان Content-Length كجزء من طلبات HTTP POST وPUT المُرسَلة إلى Apigee Edge. مثال:
curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
حتى إذا كنت تُمرِّر حمولة فارغة باستخدام الطلبَين POST وPUT، تأكَّد من تمرير
العنوان Content-Length: 0. مثال:
curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
messaging.adaptors.http.flow.NoActiveTargets
رمز حالة HTTP:
503 Service Unavailable
رسالة الخطأ:
The Service is temporarily unavailable
السبب المحتمل:
يحدث هذا الخطأ ضِمن أحد السيناريوهات التالية إذا كنت تستخدم
TargetServer في Apigee Edge:
أدى التحويل غير الصحيح لنظام أسماء النطاقات لمضيف خادم الخلفية من خلال خادم التفويض المخصص إلى ظهور عناوين IP غير صحيحة، ما أدى إلى حدوث أخطاء في الاتصال.
أخطاء انتهاء مهلة الاتصال بسبب:
إنّ قيود جدار الحماية على خادم الخلفية تمنع Apigee Edge من الاتصال بخادم الخلفية.
مشاكل في الاتصال بالشبكة بين Apigee Edge وخادم الخلفية.
المضيف المحدد في TargetServer غير صحيح أو
يحتوي على أحرف غير مرغوب فيها (مثل المسافة).
يحدث هذا الخطأ إذا لم يتلقَّ معالج رسائل Apigee Edge
حمولة الطلب من تطبيق العميل
لفترة مهلة وحدات الإدخال والإخراج التي تم ضبطها على مكوّن "معالج الرسائل".
إصلاح
تأكَّد من أنّ تطبيق العميل يرسل حمولة الطلب خلال
فترة مهلة وحدات الإدخال والإخراج التي تم ضبطها على مكوّن "معالج الرسائل" في Apigee Edge.
messaging.adaptors.http.flow.ServiceUnavailable
رمز حالة HTTP:
503 Service Unavailable
رسالة الخطأ:
The Service is temporarily unavailable
السبب المحتمل:
يحدث هذا الخطأ ضمن أحد السيناريوهات التالية:
أدى التحويل غير الصحيح لنظام أسماء النطاقات لمضيف خادم الخلفية من خلال خادم التفويض المخصص إلى ظهور عناوين IP غير صحيحة، ما أدى إلى حدوث أخطاء في الاتصال.
أخطاء انتهاء مهلة الاتصال للأسباب التالية:
إنّ قيود جدار الحماية على خادم الخلفية تمنع Apigee Edge من الاتصال بخادم الخلفية.
مشاكل في الاتصال بالشبكة بين Apigee Edge وخادم الخلفية.
مضيف الخادم الهدف المحدّد في "نقطة النهاية المستهدفة"
غير صحيح أو يحتوي على أحرف غير مرغوب فيها (مثل المسافة).
يحدث هذا الخطأ إذا تعذّر على Apigee Edge توجيه الطلب إلى أي من
نقاط النهاية المستهدفة للأسباب التالية:
ما من شرط لقاعدة مسار (<RouteRule>) يتطابق مع الطلب في خادم وكيل.
وكذلك
لا توجد قاعدة مسار تلقائية محدّدة في ProxyEndpoint
(أي <RouteRule> بدون أي شرط)
إصلاح
لمعالجة هذا الخطأ، اتبع التعليمات التالية:
راجِع قواعد المسار المحدّدة في ProxyEndpoint وعدِّلها لضمان توفُّر شرط واحد على الأقل لقاعدة مسار يطابق طلبك.
ومن الممارسات الجيدة تحديد قاعدة مسار تلقائي بدون شرط
عندما يكون لديك عدة قواعد توجيه.
تأكَّد من تحديد قاعدة المسار التلقائي دائمًا في المرحلة الأخيرة في قائمة
المسارات المشروطة، لأنّ القواعد يتم تقييمها من أعلى إلى أسفل في ProxyEndpoint.
لمزيد من المعلومات عن تحديد شروط <RouteRule> في
ProxyEndpoint، يمكنك الاطّلاع على
الأهداف المشروطة.
messaging.runtime.SenseRaiseFault
رمز حالة HTTP:
403 Forbidden
رسالة الخطأ:
Sense Fault
السبب المحتمل:
يحدث هذا الخطأ إذا تم تقديم طلب بيانات من واجهة برمجة التطبيقات من عنوان IP لعميل معيّن
وقد تم حظره كجزء من قواعد Apigee Sense.
إذا لم يكن عنوان IP للعميل المحدّد محظورًا مع استمرار ظهور هذا الخطأ، يُرجى التواصل مع فريق دعم Apigee Edge.
protocol.http.* - Caused due to bad request
protocol.http.BadFormData
رمز حالة HTTP:
500 Internal Server Error
رسالة الخطأ:
Bad Form Data
السبب المحتمل:
لا يحدث هذا الخطأ إلا في حال استيفاء جميع الشروط التالية:
يحتوي طلب HTTP الذي أرسله العميل إلى Apigee Edge على ما يلي:
Content-Type: application/x-www-form-urlencoded
و
بيانات النموذج التي تتضمّن علامة النسبة المئوية (%) أو علامة النسبة المئوية (%) متبوعة بأحرف سداسية عشرية غير صالحة
غير مسموح بها وفقًا
لنماذج Google - الفقرة 17.13.4.1.
يقرأ الخادم الوكيل لواجهة برمجة التطبيقات في Apigee Edge معلَمات النموذج المحدّدة التي تحتوي على أي أحرف غير مسموح بها باستخدام
استخراجVariables أو سياسة AssignMessage في مسار الطلب.
يحدث هذا الخطأ إذا ظهر عنوان HTTP معيّن غير مسموح له بتكرارات في Apigee Edge أكثر من مرة بقيم مماثلة أو بقيم مختلفة كجزء من طلب HTTP الذي أرسله تطبيق العميل إلى Apigee Edge.
تأكَّد من أنّ طلب HTTP الخاص بالعميل الذي تم إرساله إلى
Apigee Edge لا يحتوي على أحرف غير ASCII في أسماء العناوين وفقًا لـ
RFC 7230، القسم 3.2.6: مكونات قيمة الحقل.
protocol.http.HeaderWithInvalidChar
رمز حالة HTTP:
400 Bad Request
رسالة الخطأ:
Header {header_name} contains invalid character {character}
السبب المحتمل:
يحدث هذا الخطأ إذا كان اسم العنوان الذي تم إرساله كجزء من طلب HTTP
من خلال التطبيق العميل إلى Apigee Edge يحتوي على أحرف غير صالحة مثل
يساوي (=) وفاصلة (,) وفاصلة منقوطة (;) وعلامة تبويب وحرف CRLF وحرف جديد.
يحدث هذا الخطأ إذا كان المسار في عنوان URL لطلب HTTP الذي أرسله تطبيق العميل
إلى Apigee Edge يحتوي على أحرف غير مسموح بها وفقًا للمواصفات
RFC 3986، الفقرة 3.3: المسار.
يحدث هذا الخطأ إذا كان عنوان URL لطلب خادم الخلفية، الذي يمثّله متغيّر التدفق target.url، يحتوي على مسار يبدأ بعلامة استفهام (?) بدلاً من شَرطة مائلة للأمام (/)، وهي خطوة غير صالحة.
يحدث هذا الخطأ إذا كان عنوان HTTP المحدّد غير المسموح له بتكرارات في Apigee Edge، يظهر أكثر من مرة بقيم مماثلة أو بقيم مختلفة كجزء من استجابة HTTP التي يرسلها خادم الخلفية إلى Apigee Edge.
تأكَّد من أنّ استجابة HTTP لخادم الخلفية التي تم إرسالها إلى
Apigee Edge لا تحتوي على أحرف غير ASCII في أسماء العناوين وفقًا لما هو
RFC 7230، القسم 3.2.6: مكونات قيمة الحقل.
protocol.http.HeaderWithInvalidChar
رمز حالة HTTP:
502 Bad Gateway
رسالة الخطأ:
Header {header_name} contains invalid character {character}
السبب المحتمل:
يحدث هذا الخطأ إذا كان اسم العنوان الذي أرسله خادم الخلفية كجزء من استجابة HTTP، يحتوي على أحرف غير صالحة مثل يساوي (=) وفاصلة (,) وفاصلة منقوطة (;) وعلامة تبويب وحرف CRLF وحرف جديد.
Proxy refused to create tunnel with response status {status code}
السبب المحتمل:
يحدث هذا الخطأ أثناء إنشاء النفق بين Apigee Edge وخادم الخلفية من خلال الخادم الوكيل بسبب جدار الحماية، وقائمة التحكم بالوصول (ACL)، ومشاكل نظام أسماء النطاقات (DNS)، ومدى توفّر خادم الخلفية، وما إلى ذلك.
ملاحظة: يقدّم رمز الحالة في رسالة الخطأ (faultstring) السبب الواضح للمشكلة.
يحدث هذا الخطأ إذا كانت استجابة HTTP من خادم الخلفية إلى Apigee Edge هي
204 No Content أو
205 Reset Content ولكنها تحتوي على
نص الاستجابة و/أو واحد أو أكثر من العناوين التالية:
يحدث هذا الخطأ إذا كان الحجم الإجمالي لجميع عناوين الاستجابة التي أرسلها
خادم الخلفية كجزء من استجابة HTTP إلى Apigee Edge أكبر من
الحد المسموح به في Apigee Edge.
يحدث هذا الخطأ إذا كان عنوان Content-Encoding المُرسَل من
خادم الخلفية كجزء من استجابة HTTP يحتوي على تنسيق الترميز/حمولة
البيانات غير
المتوافق مع Apigee Edge.
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name}
السبب المحتمل:
يحدث هذا الخطأ عند عدم العثور على الاسم المستعار للمفتاح المُشار إليه في TargetEndpoint أو TargetServer في ملف تخزين المفاتيح المحدّد.
إصلاح
تأكَّد من أنّ الاسم المستعار للمفتاح المحدَّد في TargetEndpoint أو TargetServer
متوفّر وأنّه جزء من ملف تخزين المفاتيح المحدّد.
security.util.TrustStoreWithNoCertificates
رمز حالة HTTP:
500 Internal Server Error
رسالة الخطأ:
TrustStore {truststore_name} has no certificates
السبب المحتمل:
يحدث هذا الخطأ إذا كان ملف Truststore المحدَّد المُشار إليه في TargetEndpoint أو
TargetServer لا يحتوي على أي شهادات.
إصلاح
إذا كنت تريد التحقق من صحة شهادة الخادم الخلفي وكنت تريد استخدام Truststore في TargetEndpoint أو TargetServer (خادم الخلفية)، يجب التأكّد من أنّ
Truststore يحتوي على الشهادات الصالحة لخادم الخلفية.