وقتی درخواستهای API از طریق Apigee Edge، روترها و پردازشگرهای پیام اجزای Apigee Edge یا سرورهای پشتیبان میتوانند خطاها را به برنامههای سرویس گیرنده برگردانند.
خطاهای پردازشگر پیام
پردازشگر پیام، جزء اصلی Apigee Edge است که خطمشیها را پردازش میکند و با سرورهای پشتیبان تعامل دارد. در صورت شناسایی مشکلاتی مانند موارد زیر می تواند خطاها را برگرداند:
مشکلات اتصال به شبکه، خرابی دست دادن TLS، در دسترس نبودن سرور باطن، عدم پاسخگویی در حین ارتباط با سرور باطن
عدم موفقیت در اجرای سیاست
هدرهای HTTP نامعتبر، رمزگذاری، مسیر، عدم پایبندی به مشخصات HTTP، بیش از حد مجاز محصول و غیره:
با درخواست HTTP ارسال شده توسط برنامه های مشتری
یا
با پاسخ HTTP ارسال شده توسط سرور باطن
و بسیاری دیگر
خطای نمونه از پردازشگر پیام
پردازشگر پیام همیشه یک کد وضعیت HTTP و به دنبال آن یک پیام خطا به همراه یک کد خطا در قالب JSON را مطابق شکل زیر برمی گرداند:
برنامه مشتری یک کد پاسخ مانند مثال زیر دریافت می کند:
HTTP/1.1 414 Request-URI Too Long
یک پاسخ خطا از پردازشگر پیام به شکل زیر ظاهر می شود:
حاوی پیام خطایی است که علت احتمالی خطا را توضیح می دهد
errorcode
کد خطا (همچنین به عنوان کد خطا نامیده می شود) مرتبط با خطا است
کاتالوگ خطای زمان اجرا
این کاتالوگ خطا تمام اطلاعاتی را که باید در مورد کدهای خطای زمان اجرا (برای خطاهای غیر خط مشی) که توسط مؤلفه Apigee Edge Message Processor برگردانده می شود، ارائه می دهد. این شامل اطلاعات زیر برای هر یک از کدهای خطا است:
کد وضعیت HTTP
پیغام خطا
دلایل احتمالی خطا
هر گونه مشخصات HTTP مرتبط و/یا محدودیت محصول
کتابهای راهنما و ویدیوهایی که حاوی دستورالعملهایی برای تشخیص علت خطا و راهحلهای مؤثری هستند که میتوانید برای رفع خطا خودتان (در صورت وجود) استفاده کنید.
رفع کنید که می توانید برای رفع خطا خودتان درخواست دهید
از کادر جستجوی زیر برای فیلتر کردن جدول برای نمایش اطلاعات بالا برای یک کد خطای خاص استفاده کنید. می توانید کد وضعیت یا هر محتوایی را در هر فیلدی در جدول جستجو کنید.
search جستجو
کد خطا
توضیحات
رفع کنید
flow.*
flow.APITimedOut
کد وضعیت HTTP:
504 Gateway Timeout
پیغام خطا:
API timed out
علت احتمالی:
این خطا در صورتی رخ می دهد که:
سرور باطن در مدت زمانی که توسط ویژگی api.timeout برای پروکسی API خاص پیکربندی شده است، پاسخ نمی دهد.
یک خط مشی به دلیل عملیات محاسباتی فشرده، بار زیاد یا عملکرد ضعیف زمان زیادی می برد.
توجه: این کتاب راهنمای عیبیابی کد خطا messaging.adaptors.http.flow.GatewayTimeout را ارائه میدهد. با این حال، می توانید از همان playbook برای عیب یابی کد خطای flow.APITimedOut استفاده کنید.
پیام خطا و قالب ممکن است بسته به اجرای سرور باطن متفاوت باشد.
علت احتمالی:
این خطا در صورتی رخ می دهد که سرور باطن با کد وضعیت 504 به Apigee Edge پاسخ دهد.
توجه: کد خطا messaging.adaptors.http.flow.ErrorResponseCode به عنوان بخشی از پیام خطای ارسال شده به برنامه های مشتری بازگردانده نمی شود. این به این دلیل است که این کد خطا توسط Apigee Edge هر زمان که سرور backend با خطا و هر یک از کدهای وضعیت 4XX یا 5XX پاسخ میدهد، تنظیم میشود. میتوانید این کد خطا را در API Monitoring، گزارشهای دسترسی NGINX یا پایگاهداده تجزیه و تحلیل مشاهده کنید.
messaging.adaptors.http.flow.GatewayTimeout
کد وضعیت HTTP:
504 Gateway Timeout
پیغام خطا:
Gateway Timeout
علت احتمالی:
این خطا در صورتی رخ میدهد که سرور بکاند به پردازشگر پیام Apigee Edge در بازه زمانی I/O پیکربندی شده روی پیامپرداز پاسخ ندهد.
این خطا در صورتی رخ می دهد که هدر Content-Length به عنوان بخشی از درخواست های HTTP POST و PUT که به Apigee Edge ارسال می شود توسط برنامه مشتری ارسال نشود.
توجه: درخواستهایی که با این خطا شکست میخورند را نمیتوان در ابزار Trace ثبت کرد، زیرا پردازشگر پیام این اعتبارسنجی را در مراحل اولیه انجام میدهد، بسیار قبل از پردازش درخواست و اجرای هر سیاستی در پروکسی API.
اطمینان حاصل کنید که برنامه کلاینت همیشه هدر 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 استفاده می کنید، این خطا در یکی از سناریوهای زیر رخ می دهد:
وضوح نادرست DNS میزبان سرور باطن توسط سرور مجوز سفارشی منجر به آدرسهای IP بدی شد که منجر به خطاهای اتصال شد.
خطاهای زمان اتصال به دلیل:
محدودیت فایروال در سرور باطن مانع از اتصال Apigee Edge به سرور باطن می شود.
مشکلات اتصال شبکه بین Apigee Edge و سرور باطن.
میزبان مشخص شده در TargetServer نادرست است یا دارای کاراکترهای ناخواسته است (مانند فاصله).
این خطا در صورتی رخ میدهد که پردازشگر پیام Apigee Edge بار درخواستی را از برنامه مشتری برای دوره وقفه ورودی/خروجی پیکربندیشده در مؤلفه پردازشگر پیام دریافت نکند.
رفع کنید
اطمینان حاصل کنید که برنامه سرویس گیرنده بار درخواست را در بازه زمانی I/O پیکربندی شده در مولفه پردازشگر پیام Apigee Edge ارسال می کند.
messaging.adaptors.http.flow.ServiceUnavailable
کد وضعیت HTTP:
503 Service Unavailable
پیغام خطا:
The Service is temporarily unavailable
علت احتمالی:
این خطا در یکی از سناریوهای زیر رخ می دهد:
وضوح نادرست DNS میزبان سرور باطن توسط سرور مجوز سفارشی منجر به آدرسهای IP بدی شد که منجر به خطاهای اتصال شد.
خطاهای زمان اتصال به دلیل:
محدودیت فایروال در سرور باطن مانع از اتصال Apigee Edge به سرور باطن می شود.
مشکلات اتصال شبکه بین Apigee Edge و سرور باطن.
میزبان سرور هدف مشخص شده در نقطه پایانی هدف نادرست است یا دارای کاراکترهای ناخواسته (مانند فاصله) است.
اگر آدرس 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 و
دادههای فرم را با علامت درصد (%) یا علامت درصد (%) و به دنبال آن نویسههای هگزادسیمال نامعتبر که طبق فرمها مجاز نیستند - بخش 17.13.4.1 .
پروکسی API در Apigee Edge پارامترهای فرم خاص را می خواند که حاوی هر کاراکتری است که با استفاده از ExtractVariables یا خط مشی AssignMessage در جریان درخواست مجاز نیست.
این خطا در صورتی رخ می دهد که یک هدر HTTP خاص که مجاز به داشتن موارد تکراری در Apigee Edge نیست، بیش از یک بار با مقادیر مشابه یا متفاوت به عنوان بخشی از درخواست HTTP ارسال شده توسط برنامه مشتری به Apigee Edge ظاهر شود.
اطمینان حاصل کنید که درخواست HTTP ارسال شده توسط برنامه مشتری به Apigee Edge همیشه دارای یک نام هدر معتبر مطابق RFC 7230، بخش 3.2: فیلدهای سرصفحه است .
protocol.http.HeaderNameWithNonAsciiChar
کد وضعیت HTTP:
400 Bad Request
پیغام خطا:
Header {header_name} contains non ascii character {character}
علت احتمالی:
اگر نام هدر که به عنوان بخشی از درخواست HTTP توسط برنامه مشتری به Apigee Edge ارسال میشود، حاوی کاراکترهای غیرASCII باشد، این خطا رخ میدهد.
اطمینان حاصل کنید که درخواست HTTP مشتری که به Apigee Edge ارسال میشود، طبق RFC 7230، بخش 3.2.6: مؤلفههای مقدار فیلد، دارای نویسههای غیرASCII در نامهای سرصفحه نباشد.
protocol.http.HeaderWithInvalidChar
کد وضعیت HTTP:
400 Bad Request
پیغام خطا:
Header {header_name} contains invalid character {character}
علت احتمالی:
اگر نام هدر ارسال شده به عنوان بخشی از درخواست HTTP توسط برنامه مشتری به Apigee Edge حاوی نویسه های نامعتبر مانند (=)، کاما (،)، نقطه ویرگول (;)، تب، CRLF و کاراکتر Newline باشد.
این خطا در صورتی رخ میدهد که مسیر URL درخواست HTTP ارسال شده توسط برنامه مشتری به Apigee Edge حاوی نویسههایی باشد که طبق مشخصات RFC 3986، بخش 3.3: Path مجاز نیستند.
مطمئن شوید که مسیر در URL درخواست HTTP ارسال شده توسط برنامه مشتری به Apigee Edge حاوی هیچ کاراکتری نباشد که طبق RFC 3986، بخش 3.3: Path مجاز نیست.
protocol.http.TooBigBody
کد وضعیت HTTP:
413 Request Entity Too Large
پیغام خطا:
Body buffer overflow
علت احتمالی:
این خطا در صورتی رخ می دهد که اندازه بار ارسال شده توسط برنامه مشتری به عنوان بخشی از درخواست HTTP به Apigee Edge از حد مجاز در Apigee Edge بیشتر باشد.
این خطا در صورتی رخ می دهد که اندازه خط درخواست ارسال شده توسط برنامه مشتری به عنوان بخشی از درخواست HTTP به Apigee Edge از حد مجاز در Apigee Edge بیشتر باشد.
این خطا در صورتی رخ می دهد که هدر Content-Encoding ارسال شده توسط مشتری به عنوان بخشی از پاسخ HTTP حاوی فرمت رمزگذاری/بارگیری باشد که توسط Apigee Edge پشتیبانی نمی شود.
این خطا در صورتی رخ می دهد که URL درخواست سرور پشتیبان، که با متغیر جریان target.url نشان داده می شود، حاوی مسیری باشد که به جای اسلش رو به جلو (/) با علامت سوال (?) شروع می شود، که نامعتبر است.
این خطا در صورتی رخ می دهد که هدر HTTP خاصی که مجاز به داشتن موارد تکراری در Apigee Edge نیست، بیش از یک بار با مقادیر یکسان یا متفاوت به عنوان بخشی از پاسخ HTTP ارسال شده توسط سرور backend به Apigee Edge ظاهر شود.
Header {header_name} contains invalid character {character}
علت احتمالی:
این خطا در صورتی رخ می دهد که نام سرصفحه ارسال شده توسط سرور پشتیبان به عنوان بخشی از پاسخ HTTP، حاوی کاراکترهای نامعتبر مانند برابر (=)، کاما (،)، نقطه ویرگول (;)، تب، CRLF و کاراکتر Newline باشد.
اطمینان حاصل کنید که پاسخ HTTP سرور backend که به Apigee Edge ارسال میشود، طبق RFC 7230، بخش 3.2.6: مؤلفههای ارزش فیلد، دارای هیچ کاراکتر نامعتبری در نامهای سرصفحه نباشد.
protocol.http.ProxyTunnelCreationFailed
کد وضعیت HTTP:
503 Service Unavailable
پیغام خطا:
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 بیشتر باشد.
این خطا در صورتی رخ می دهد که اندازه کل تمام سرصفحه های پاسخ ارسال شده توسط سرور باطن به عنوان بخشی از پاسخ HTTP به Apigee Edge از حد مجاز در Apigee Edge بیشتر باشد.
KeyAlias {KeyAlias_name} is not found in Keystore {Keystore_Name}
علت احتمالی:
اگر KeyAlias خاصی که در TargetEndpoint یا TargetServer ارجاع شده است در Keystore خاص یافت نشود، این خطا رخ می دهد.
رفع کنید
اطمینان حاصل کنید که KeyAlias مشخص شده در TargetEndpoint یا TargetServer وجود دارد و بخشی از Keystore خاص است.
security.util.TrustStoreWithNoCertificates
کد وضعیت HTTP:
500 Internal Server Error
پیغام خطا:
TrustStore {truststore_name} has no certificates
علت احتمالی:
این خطا در صورتی رخ می دهد که Truststore خاصی که در TargetEndpoint یا TargetServer ارجاع داده شده است، حاوی هیچ گواهی نباشد.
رفع کنید
اگر میخواهید گواهی سرور باطن را تأیید کنید و میخواهید از Truststore در TargetEndpoint یا TargetServer استفاده کنید، مطمئن شوید که Truststore حاوی گواهیهای معتبر سرور باطن است.
تاریخ آخرین بهروزرسانی 2024-11-18 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2024-11-18 بهوقت ساعت هماهنگ جهانی."],[],[]]