أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
يوضّح هذا الموضوع الأخطاء والتحذيرات التي قد تواجهها في Edge Microgateway.
أخطاء عامة في التطبيق
HTTP 500، تعذّر في معالج الخطأ: سيظهر هذا الرقم في معظم الأخطاء، كما سيظهر في بعض الأخطاء المعروضة من الاستهدافات. على وجه الخصوص، يتم استخدام errors-middleware.js في ملف برمجي microgateway-core. عند استخدامها، يتم تسجيل رموز الحالة في السجلّ باستخدام Edge Microgateway
logger object: logger.error(err, 'failed in error handler');
. بالنسبة إلى الرموز التي يتم استلامها من الاستهدافات التي تتراوح بين 100 و300، يعيد ملف errors-middleware.js كتابة statusCode إلى 500 لإعادته إلى العميل.HTTP 404: قد تظهر لك هذه الحالة على شكل تتبع تسلسل استدعاء الدوال البرمجية مع الرسالة:
no match found for [API_path_name]
.
أخطاء الوحدة والتحذيرات المتعلّقة بها
يمكنك استخدام هذه المعلومات لضبط التنبيهات التي تساعدك في مراقبة وإدارة عملية بدء استخدام Edge Microgateway.
تشير المصطلحات التالية، التي تظهر في مرجع الخطأ ضمن "المعالج"، إلى كيفية التعامل مع الأخطاء المختلفة في Edge Microgateway.
- التأكيد: سيتوقّف Edge Microgateway عادةً عند تعذُّر تقييم التأكيد. ومع ذلك، قد لا يكون هذا هو الحال دائمًا، لأنّ التأكيدات تُلقي استثناءات قد يتمّ رصدها.
- throws: يشير ذلك إلى احتمال توقُّف النظام.
- callback: يتم تمرير الخطأ إلى دالة استدعاء وربما يواصل النظام العمل.
النوع | الرسالة | المعالج | ملاحظات |
---|---|---|---|
وحدة البوابة الصغيرة |
|||
خطأ | يجب إدخال org. | تأكيد الملكية | assert(options.org,"org is required"); |
خطأ | يجب توفير env. | تأكيد الملكية | assert(options.env,"env is required") |
خطأ | يجب إدخال اسم المستخدم. | تأكيد الملكية | assert(options.username || options.token,"username is required"); |
خطأ | كلمة المرور مطلوبة | تأكيد الملكية | assert(options.password || options.token,"password is required") |
خطأ | يجب إدخال org. | تأكيد الملكية | assert(options.org,"org is required"); |
خطأ | يجب توفير env. | تأكيد الملكية | assert(options.env,"env is required") |
خطأ | يجب إدخال اسم المستخدم. | تأكيد الملكية | assert(options.username || options.token,"username is required"); |
خطأ | كلمة المرور مطلوبة | تأكيد الملكية | assert(options.password || options.token,"password is required") |
خطأ | يجب إدخال org. | تأكيد الملكية | assert(options.org,"org is required"); |
خطأ | يجب توفير env. | تأكيد الملكية | assert(options.env,"env is required") |
خطأ | يجب إدخال org. | تأكيد الملكية | assert(options.org,"org is required"); |
خطأ | يجب توفير env. | تأكيد الملكية | assert(options.env,"env is required") |
خطأ | يجب إدخال اسم المستخدم. | تأكيد الملكية | assert(options.username, 'username is required'); |
خطأ | كلمة المرور مطلوبة | تأكيد الملكية | assert(options.password, 'password is required'); |
خطأ | يجب إدخال org. | تأكيد الملكية | assert(options.org, 'org is required'); |
خطأ | يجب توفير env. | تأكيد الملكية | assert(options.env, 'env is required'); |
خطأ | يجب أن يكون لها ملف مستهدَف محدّد | تأكيد الملكية | assert(targetFile, 'must have an assigned target file') |
خطأ | يجب أن يكون لها مفتاح | تأكيد الملكية | assert(key, 'must have a key'); |
خطأ | يجب أن يكون لها سر | تأكيد الملكية | assert(secret, 'must have a secret'); |
خطأ | يجب ضبط dir | تأكيد الملكية | assert(dir, 'dir must be configured') |
خطأ | يجب أن يكون هناك عنصر معاودة اتصال. | تأكيد الملكية | assert(callback, 'callback must be present') |
خطأ | يجب إدخال اسم المستخدم. | تأكيد الملكية | assert(options.username, 'username is required'); |
خطأ | كلمة المرور مطلوبة | تأكيد الملكية | assert(options.password, 'password is required'); |
خطأ | يجب إدخال org. | تأكيد الملكية | assert(options.org, 'org is required'); |
خطأ | يجب توفير env. | تأكيد الملكية | assert(options.env, 'env is required'); |
خطأ | يجب إدخال runtimeUrl. | تأكيد الملكية | assert(options.runtimeUrl, 'runtimeUrl is required'); |
خطأ | يجب إدخال mgmtUrl. | تأكيد الملكية | assert(options.mgmtUrl, 'mgmtUrl is required'); |
خطأ | يجب توفير ملف | تأكيد الملكية | assert(options.file,"file is required") |
خطأ | يجب أن يكون لها هدف | تأكيد الملكية | assert(options.target, 'must have target'); |
خطأ | لم يتم إعداد المكوّنات الإضافية | تأكيد الملكية | assert(config.edgemicro.plugins, 'plugins not configured'); |
خطأ | لا يتوفّر دليل المكوّن الإضافي: + pluginDir | تأكيد الملكية | assert(fs.existsSync(pluginDir), 'plugin dir does not exist: ' + pluginDir); |
خطأ | دليل المكوّنات الإضافية ليس دليلاً: + pluginDir | تأكيد الملكية | assert(stat.isDirectory(), 'plugin dir is not a directory: ' + pluginDir); |
خطأ | خطأ في قراءة دليل المكوّنات الإضافية: + pluginDir | تأكيد الملكية | assert(dirs, 'error reading plugin dir: ' + pluginDir); |
خطأ | يجب أن يتضمّن رمزًا مميّزًا | تأكيد الملكية | assert(token, 'must have a token'); |
خطأ | لا يمكن أن يكون configpath فارغًا. | تأكيد الملكية | assert(config, 'configpath can't be empty'); |
خطأ | يجب أن يتضمّن EDGEMICRO_KEY | تأكيد الملكية | assert(key, 'must have EDGEMICRO_KEY'); |
خطأ | يجب أن يتضمّن EDGEMICRO_SECRET | تأكيد الملكية | assert(secret, 'must have EDGEMICRO_SECRET'); |
خطأ | لا يتوفّر ملف الإعدادات | يرمي | ذات صلة بملف YAML |
خطأ | يبدو أنّ edgemicro قيد التشغيل حاليًا. | console.error | محاولة استبدال ملف .sock |
خطأ | تعذّر التحقّق من التغيير في Config. ستتم إعادة المحاولة بعد | console.error | مشكلة في الاتصال بالشبكة |
خطأ | إذا لم يكن الخادم قيد التشغيل، قد يرجع ذلك إلى إيقاف التشغيل غير الصحيح في المرة السابقة. | console.error | |
خطأ | لا يتوفّر %s، يُرجى تشغيل | console.error | لا يتوفّر (.*)، يُرجى تنفيذ |
خطأ | تعذّرت إعادة تحميل edgemicro | console.error | مستوى الأوامر |
خطأ | تعذّر إيقاف edgemicro | console.error | مستوى الطلب |
خطأ | "جرِّب إزالة ' + ipcPath + ' والبدء من جديد" | console.error | |
خطأ | 'cache configuration ' + cache + ' does not exist. exiting.' | console.error | |
خطأ | تعذّر كتابة ملف الإعداد: | console.error | تعذُّر الإعداد |
خطأ | لم يتم تنزيل ملف الإعداد: | console.error | تعذُّر الإعداد |
خطأ | تعذّر بدء edge micro | console.error | يجب ألا يكون قيد التشغيل |
خطأ | لا يعمل edgemicro. | console.error | التحقّق من العملية التي يجب عدم إدراجها |
خطأ | يجب توفير env. | console.error | متغيّرات البيئة المطلوبة للتشغيل |
خطأ | error - editing apiproxy Callout.xml | console.error | الوصول إلى الملفات |
خطأ | error - editing apiproxy default.xml | console.error | الوصول إلى الملفات |
خطأ | حدث خطأ أثناء التحقّق من شهادة الاعتماد. جارٍ تثبيت شهادة جديدة. | console.error | لا يمكن استخدام المفتاح العام |
خطأ | حدث خطأ أثناء استرداد منطقة المؤسسة | console.error | key-gen.js وcert-lib.js وprivate.js |
خطأ | حدث خطأ أثناء تحميل بيانات الاعتماد | console.error | لا يمكن مزامنة المفتاح العام مع Edge |
خطأ | فشل | console.error | key-gen.js |
خطأ | تعذّر بدء ملف مسار الإعداد %s | console.error | عدم تحميل الإعدادات |
خطأ | استجابة غير صالحة من واجهة برمجة التطبيقات الخاصة بالمنطقة | console.error | key-gen.js وcert-lib.js وprivate.js |
خطأ | يجب إدخال مفتاح. | console.error | المَعلمة |
خطأ | يجب إدخال org. | console.error | المَعلمة |
خطأ | المنفذ غير متاح. | console.error | المَعلمة |
خطأ | يجب إدخال سر | console.error | المَعلمة |
خطأ | بروتوكول عنوان URL غير متاح: | console.error | تشير معلومات الضبط إلى بروتوكول إنترنت غير مضمّن في نطاق Edge Microgateway |
خطأ | التحقّق من حالة الكلمات الرئيسية السلبية في "إحصاءات YouTube": تعذّر إكمال العملية | console.error | تعطُّل/تعذُّر محتمل |
خطأ | تحقّق من الإحصاءات باستخدام الحمولة: تعذّر | console.error | تعطُّل/تعذُّر محتمل |
خطأ | verifying bootstrap url availability:FAIL | console.error | تعطُّل/تعذُّر محتمل |
خطأ | verifying jwt_public_key availability: FAIL | console.error | تعطُّل/تعذُّر محتمل |
خطأ | تحقّق من مدى توفّر المنتجات: تعذّر إكمال العملية | console.error | تعطُّل/تعذُّر محتمل |
خطأ | التحقّق من الحصة باستخدام المنتجات التي تم ضبطها: تعذّر | console.error | تعطُّل/تعذُّر محتمل |
تحذير | تعذّر استرداد الإعدادات من البوابة. سنواصل المحاولة باستخدام النسخة المخزّنة مؤقتًا. | console.error | |
تحذير | توفُّر تقنية KVM في مؤسستك | console.log | |
تحذير | تم نشره من قبل | console.log | |
تحذير | لم يتم العثور على المكوّن الإضافي المُدرَج: | console.warn | |
تحذير | لا يتوفّر دليل المكوّنات الإضافية %s | console.log | لا يتوفّر دليل pluginDir (.*) |
وحدة microgateway-core |
|||
خطأ | لم يتمّ إعداد الإعدادات | تأكيد الملكية | assert(config, 'config not initialized') |
خطأ | يجب أن يكون لها إعداد | تأكيد الملكية | assert(config, ' must have a config') |
خطأ | يجب أن يكون لديك إعدادات | تأكيد الملكية | assert(config, 'must have config') |
خطأ | يجب أن يحتوي config على uid | تأكيد الملكية | assert(config.uid, 'config must have uid'); |
خطأ | يجب أن يتضمّن ملف الإعدادات config.edgemicro.logging | تأكيد الملكية | assert(logConfig, 'must have config.edgemicro.logging in config'); |
خطأ | يجب أن تتضمّن طريقة طلب | تأكيد الملكية | assert(httpLibrary.request, 'must have request method'); |
خطأ | يجب تحميل المكوّن الإضافي في الذاكرة | تأكيد الملكية | assert(options.plugin, "must have plugin loaded in memory"); |
خطأ | يجب أن تكون init دالة. | تأكيد الملكية | assert(_.isFunction(options.plugin.init), 'init must be a function'); |
خطأ | يجب أن يتضمّن اسم المكوّن الإضافي | تأكيد الملكية | assert(options.pluginName, "must have plugin name"); |
خطأ | تجاهل أسماء ومعالجات المكوّنات الإضافية غير الصالحة | تأكيد الملكية | assert(_.isObject(middleware), 'ignoring invalid plugin handlers ' + name); |
خطأ | يجب أن تحتوي الخيارات على config | تأكيد الملكية | assert(config, 'options must contain config') |
خطأ | يجب أن يكون للمكوّن الإضافي اسم. | تأكيد الملكية | assert(name,"plugin must have a name") |
خطأ | يجب أن يكون الاسم سلسلة. | تأكيد الملكية | assert(_.isString(name),"name must be a string"); |
خطأ | يجب أن يكون المكوّن الإضافي دالة. | تأكيد الملكية | assert(_.isFunction(plugin),"plugin must be a function(config,logger,stats){return {onresponse:function(req,res,data,next){}}}"); |
خطأ | يجب أن يكون لها مفتاح | تأكيد الملكية | assert(key, 'must have a key'); |
خطأ | يجب أن يكون لها سر | تأكيد الملكية | assert(secret, 'must have a secret'); |
خطأ | يجب أن يتضمّن دليل إعدادات المصدر | تأكيد الملكية | assert(source, 'must have a source config directory'); |
خطأ | حدث خطأ أثناء تحميل المكوّن الإضافي | console.error | تعذّر تحميل المكوّن الإضافي |
خطأ | تعذّر في معالج الأخطاء | ردّ الاتصال | دالة HTTP server.on() |
خطأ | طول العنوان أكبر من الحجم المسموح به | خطأ في بروتوكول HTTP | عدم تشغيل المكوّن الإضافي |
خطأ | اكتمال الردّ قبل أن يتمّ تنفيذ العمل | logger.error | لا يتم تشغيل مكوّن Target الإضافي |
خطأ | طرح المعالِج استثناءً | ردّ الاتصال | تسجيل الخطأ من المكوّن الإضافي (التقاط) |
خطأ | error starting edge micro | ردّ الاتصال | لا يبدأ تشغيل Edge Microgateway |
خطأ | يجب أن يكون المكوّن الإضافي دالة. | يرمي | |
تحذير | console.error | تحذيرات | كتابة السجلّات |
تحذير | خطأ في targetRequest | استدعاء معالجة الخطأ المستهدَف | خطأ في برنامج HTTP العميل في ما يتعلّق بالهدف |
تحذير | خطأ في targetResponse | استدعاء معالجة الأخطاء المستهدَفة | حدث خطأ في خادم HTTP المستهدف في ما يتعلّق بالهدف كما هو موضّح في العميل |
وحدة microgateway-config |
|||
خطأ | allow_message | تأكيد الملكية | assert(+config.quota.allow > 0, allow_message); |
خطأ | لا يتوفّر ملف الإعدادات | يرمي | ملف الإعدادات بتنسيق YAML |
خطأ | config is empty | يرمي | ملف الإعدادات بتنسيق YAML |
خطأ | ملف الإعداد ليس ملفًا | يرمي | ملف الإعدادات بتنسيق YAML |
خطأ | عدم تحديد قيمة لسمة config | تأكيد الملكية | assert(config, 'config is not defined'); |
خطأ | قيمة config.analytics.batchSize غير صالحة | تأكيد الملكية | assert(+config.analytics.batchSize > 0, 'config.analytics.batchSize is invalid'); |
خطأ | config.analytics.batchSize ليس رقمًا | تأكيد الملكية | assert(typeof config.analytics.batchSize === 'number', 'config.analytics.batchSize is not a number'); |
خطأ | config.analytics.bufferSize غير صالح | تأكيد الملكية | assert(+config.analytics.bufferSize > 0, 'config.analytics.bufferSize is invalid'); |
خطأ | config.analytics.bufferSize ليس رقمًا | تأكيد الملكية | assert(typeof config.analytics.bufferSize === 'number', 'config.analytics.bufferSize is not a number'); |
خطأ | قيمة config.analytics.flushInterval غير صالحة | تأكيد الملكية | assert(+config.analytics.flushInterval > 0, 'config.analytics.flushInterval is invalid'); |
خطأ | config.analytics.flushInterval ليس رقمًا | تأكيد الملكية | assert(typeof config.analytics.flushInterval === 'number', 'config.analytics.flushInterval is not a number'); |
خطأ | config.analytics.proxy ليس "قيمة وهمية" | تأكيد الملكية | assert(config.analytics.proxy === 'dummy', 'config.analytics.proxy is not "dummy"'); |
خطأ | لم يتم تحديد config.analytics.proxy | تأكيد الملكية | assert(config.analytics.proxy, 'config.analytics.proxy is not defined'); |
خطأ | config.analytics.proxy_revision ليس رقمًا | تأكيد الملكية | assert(typeof config.analytics.proxy_revision === 'number', 'config.analytics.proxy_revision is not a number'); |
خطأ | لم يتم تحديد config.analytics.proxy_revision | تأكيد الملكية | assert(config.analytics.proxy_revision, 'config.analytics.proxy_revision is not defined'); |
خطأ | config.analytics.source ليس "microgateway" | تأكيد الملكية | assert(config.analytics.source === 'microgateway', 'config.analytics.source is not "microgateway"'); |
خطأ | لم يتم تحديد config.analytics.source | تأكيد الملكية | assert(config.analytics.source, 'config.analytics.source is not defined'); |
خطأ | config.analytics.uri ليست سلسلة | تأكيد الملكية | assert(typeof config.analytics.uri === 'string', 'config.analytics.uri is not a string'); |
خطأ | لم يتمّ تحديد config.analytics.uri | تأكيد الملكية | assert(config.analytics.uri, 'config.analytics.uri is not defined'); |
خطأ | لم يتم تحديد config.apikeys.public_key | تأكيد الملكية | assert(typeof config.apikeys.public_key === 'string', 'config.apikeys.public_key is not defined'); |
خطأ | لم يتم تحديد config.edge_config | تأكيد الملكية | assert(config.edge_config, 'config.edge_config is not defined'); |
خطأ | لم يتم تحديد config.edge_config.bootstrap | تأكيد الملكية | assert(config.edge_config.bootstrap, 'config.edge_config.bootstrap is not defined'); |
خطأ | لم يتم تحديد config.edge_config.jwt_public_key | تأكيد الملكية | assert(config.edge_config.jwt_public_key, 'config.edge_config.jwt_public_key is not defined'); |
خطأ | يجب تحديد config.edge_config.proxy إذا تم تحديد config.edge_config.proxy_tunnel | تأكيد الملكية | assert(typeof config.edge_config.proxy !== 'undefined', 'config.edge_config.proxy must be defined if config.edge_config.proxy_tunnel is defined'); |
خطأ | config.edge_config.proxy_tunnel ليست قيمة منطقية | تأكيد الملكية | assert(typeof config.edge_config.proxy_tunnel === 'boolean', 'config.edge_config.proxy_tunnel is not a boolean'); |
خطأ | config.edge_config.refresh_interval ليس رقمًا | تأكيد الملكية | assert(typeof config.edge_config.refresh_interval === 'number', 'config.edge_config.refresh_interval is not a number'); |
خطأ | الفاصل الزمني لإعادة التحميل config.edge_config.refresh_interval صغير جدًا (ساعة واحدة بحد أدنى) | تأكيد الملكية | assert(config.edge_config.refresh_interval >= 3600000, 'config.edge_config.refresh_interval is too small (min 1h)'); |
خطأ | config.edge_config.retry_interval ليس رقمًا | تأكيد الملكية | assert(typeof config.edge_config.retry_interval === 'number', 'config.edge_config.retry_interval is not a number'); |
خطأ | config.edge_config.retry_interval صغير جدًا (5 ثوانٍ بحد أدنى) | تأكيد الملكية | assert(config.edge_config.retry_interval >= 5000, 'config.edge_config.retry_interval is too small (min 5s)'); |
خطأ | لم يتم تحديد config.edgemicro | تأكيد الملكية | assert(config.edgemicro, 'config.edgemicro is not defined'); |
خطأ | لم يتم تحديد config.edgemicro.logging | تأكيد الملكية | assert(config.edgemicro.logging, 'config.edgemicro.logging is not defined'); |
خطأ | لم يتم تحديد config.edgemicro.logging.dir | تأكيد الملكية | if (!config.edgemicro.logging.to_console) assert(config.edgemicro.logging.dir, 'config.edgemicro.logging.dir is not defined'); |
خطأ | لم يتم تحديد config.edgemicro.logging.level | تأكيد الملكية | assert(config.edgemicro.logging.level, 'config.edgemicro.logging.level is not defined'); |
خطأ | config.edgemicro.max_connections ليس رقمًا | تأكيد الملكية | assert(typeof config.edgemicro.max_connections === 'number', 'config.edgemicro.max_connections is not a number'); |
خطأ | لم يتم تحديد config.edgemicro.max_connections | تأكيد الملكية | assert(config.edgemicro.max_connections, 'config.edgemicro.max_connections is not defined'); |
خطأ | config.edgemicro.plugins.sequence ليست مصفوفة | تأكيد الملكية | assert(Array.isArray(config.edgemicro.plugins.sequence), 'config.edgemicro.plugins.sequence is not an array'); |
خطأ | لم يتم تحديد config.edgemicro.port | تأكيد الملكية | assert(config.edgemicro.port, 'config.edgemicro.port is not defined'); |
خطأ | لم يتم تحديد config.oauth.allowInvalidAuthorization | تأكيد الملكية | assert(typeof config.oauth.allowInvalidAuthorization === 'boolean', 'config.oauth.allowInvalidAuthorization is not defined'); |
خطأ | لم يتم تحديد config.oauth.allowNoAuthorization | تأكيد الملكية | assert(typeof config.oauth.allowNoAuthorization === 'boolean', 'config.oauth.allowNoAuthorization is not defined'); |
خطأ | لم يتم تحديد config.oauth.public_key | تأكيد الملكية | assert(typeof config.oauth.public_key === 'string', 'config.oauth.public_key is not defined'); |
خطأ | لم يتم تحديد config.oauthv2.public_key | تأكيد الملكية | assert(typeof config.oauthv2.public_key === 'string', 'config.oauthv2.public_key is not defined'); |
خطأ | لم يتم تحديد config.proxies | تأكيد الملكية | assert(config.proxies, 'config.proxies is not defined'); |
خطأ | لم يتم تحديد config.proxy[ + index + ].base_path | تأكيد الملكية | assert(proxy.base_path, 'config.proxy[' + index + '].base_path is not defined'); |
خطأ | config.proxy[ + index + ].max_connections ليس رقمًا | تأكيد الملكية | assert(typeof proxy.max_connections === 'number', 'config.proxy[' + index + '].max_connections is not a number'); |
خطأ | لم يتم تحديد config.proxy[ + index + ].max_connections | تأكيد الملكية | assert(proxy.max_connections, 'config.proxy[' + index + '].max_connections is not defined'); |
خطأ | لم يتم تحديد config.proxy[ + index + ].name | تأكيد الملكية | assert(proxy.name, 'config.proxy[' + index + '].name is not defined'); |
خطأ | لم يتم تحديد config.proxy[ + index + ].proxy_name | تأكيد الملكية | assert(proxy.target_name, 'config.proxy[' + index + '].proxy_name is not defined'); |
خطأ | لم يتم تحديد config.proxy[ + index + ].revision | تأكيد الملكية | assert(proxy.revision, 'config.proxy[' + index + '].revision is not defined'); |
خطأ | لم يتم تحديد config.proxy[ + index + ].url | تأكيد الملكية | assert(proxy.url, 'config.proxy[' + index + '].url is not defined'); |
خطأ | config.quota.allow ليس رقمًا | تأكيد الملكية | assert(typeof config.quota.allow === 'number', 'config.quota.allow is not a number'); |
خطأ | لم يتم تحديد config.quota.allow | تأكيد الملكية | assert(config.quota.allow, 'config.quota.allow is not defined'); |
خطأ | config.quota.interval ليس رقمًا | تأكيد الملكية | assert(typeof config.quota.interval === 'number', 'config.quota.interval is not a number'); |
خطأ | لم يتم تحديد config.quota.interval | تأكيد الملكية | assert(config.quota.interval, 'config.quota.interval is not defined'); |
خطأ | لم يتم تحديد config.spikearrest | تأكيد الملكية | assert(config.spikearrest, 'config.spikearrest is not defined'); |
خطأ | القيمة config.spikearrest.allow غير صالحة | تأكيد الملكية | assert(+config.spikearrest.allow > 0, 'config.spikearrest.allow is invalid'); |
خطأ | config.spikearrest.allow ليس رقمًا | تأكيد الملكية | assert(typeof config.spikearrest.allow === 'number', 'config.spikearrest.allow is not a number'); |
خطأ | لم يتم تحديد config.spikearrest.allow | تأكيد الملكية | assert(config.spikearrest.allow, 'config.spikearrest.allow is not defined'); |
خطأ | القيمة config.spikearrest.bufferSize غير صالحة | تأكيد الملكية | assert(+config.spikearrest.bufferSize > 0, 'config.spikearrest.bufferSize is invalid'); |
خطأ | config.spikearrest.bufferSize ليس رقمًا | تأكيد الملكية | assert(typeof config.spikearrest.bufferSize === 'number', 'config.spikearrest.bufferSize is not a number'); |
خطأ | لم يتم تحديد config.spikearrest.timeUnit | تأكيد الملكية | assert(config.spikearrest.timeUnit, 'config.spikearrest.timeUnit is not defined'); |
خطأ | خطأ فادح: حدث خطأ في تحليل قائمة المنتجات التي تم تنزيلها | ردّ الاتصال | |
خطأ | خطأ خطير: حدث خطأ في تحليل قائمة الخوادم الوكيلة التي تم تنزيلها | ردّ الاتصال | |
خطأ | تم رصد خطأ في ضبط إعدادات المنتج | console.error | متبوعًا بـ console.warn('using old cached configuration'); |
خطأ | حدث خطأ في قراءة الإعدادات من | يرمي | ملف الإعدادات بتنسيق YAML |
خطأ | حدث خطأ أثناء حفظ الإعدادات في | ردّ الاتصال | ملف الإعدادات بتنسيق YAML |
خطأ | خطأ فادح: الإعدادات المخزّنة مؤقتًا غير متاحة، يتعذّر المتابعة | ردّ الاتصال | |
خطأ | interval_message | تأكيد الملكية | assert(+config.quota.interval > 0, interval_message); |
خطأ | بروتوكول غير صالح لـ config.edge_config.proxy (من المفترض أن يكون http: أو https:: + proxy_url.protocol) | تأكيد الملكية | assert(proxy_url.protocol === 'http:' || proxy_url.protocol === 'https:', 'invalid protocol for config.edge_config.proxy (expected http: or https:): ' + proxy_url.protocol); |
خطأ | مضيف خادم وكيل غير صالح لـ config.edge_config.proxy | تأكيد الملكية | assert(proxy_url.hostname, 'invalid proxy host for config.edge_config.proxy: ' + proxy_url.hostname); |
خطأ | يبدو أنّه لم يتم ضبط Edge Micro، يُرجى الاطّلاع على دليل المشرف. | ردّ الاتصال | النتيجة: تعذّر تحميل الإعدادات |
خطأ | المفتاح غير متوفّر | تأكيد الملكية | assert(keys.key, 'key is missing'); |
خطأ | يجب أن يتضمّن configDir | تأكيد الملكية | assert(configDir, 'must have configDir') |
خطأ | الخيارات المطلوبة | تأكيد الملكية | assert(options, 'must have options'); |
خطأ | يجب أن يتضمّن مصدرًا | تأكيد الملكية | assert(source, 'must have source') |
خطأ | يجب أن يكون لها مصدر للتحميل منه | تأكيد الملكية | assert(options.source, 'must have source to load from') |
خطأ | يجب أن يتضمّن targetFile | تأكيد الملكية | assert(fileName, 'must have targetFile') |
خطأ | لا يمكن أن تكون الخيارات فارغة | تأكيد الملكية | assert(options, 'options cannot be null'); |
خطأ | لا يمكن أن تكون options.keys فارغة | تأكيد الملكية | assert(options.keys, 'options.keys cannot be null'); |
خطأ | port_message | تأكيد الملكية | assert(+config.edgemicro.port < 65536, port_message); |
خطأ | يجب أن تكون المنتجات مصفوفة. | تأكيد الملكية | assert(Array.isArray(products), 'products should be an array'); |
خطأ | 'proxies for product ' + product + ' should be an array' | تأكيد الملكية | assert(Array.isArray(product.proxies), 'proxies for product ' + product + ' should be an array'); |
خطأ | عدم توفّر مفتاح سري | تأكيد الملكية | assert(keys.secret, 'secret is missing'); |
خطأ | لم يتم ضبط target | تأكيد الملكية | assert(target, 'target is not set'); |
تحذير | حدث خطأ أثناء تنزيل الإعدادات، يُرجى التحقّق من إعدادات Bootstrap | console.warn | |
تحذير | تعذّر تنزيل jwt_public_key | console.warn | |
تحذير | مفاتيح jwk غير مفعّلة | console.warn | |
تحذير | message, 'download from', url, 'returned' | console.warn | البحث عن: (.*)\sdownload from\s(.*)\sreturned |
تحذير | لم يتم العثور على أي منتجات صغيرة في الصفحة في الردّ | console.warn | |
تحذير | لم يتم العثور على أيّ أدوات وكيلة صغيرة للحدود في المؤسسة | console.warn | |
تحذير | لم يتم العثور على أيّ وكيل صغرى للحدود في الاستجابة | console.warn | |
تحذير | لم يتم العثور على أي منتجات في المؤسسة | console.warn | |
تحذير | لم يتم العثور على أي منتجات في الردّ | console.warn | |
تحذير | استخدام الإعدادات القديمة المخزّنة مؤقتًا | console.warn | |
وحدة microgateway-plugins |
|||
خطأ | لا يتوفّر ملف الإعدادات | يرمي | ذات صلة بملف YAML |
خطأ | apikey | استجابة HTTP | حالات تعذُّر في المكوّن الإضافي apiky |
خطأ | bauth | استجابة HTTP | حالات تعذُّر في المكوّن الإضافي bauth |
خطأ | extauth | استجابة HTTP | حالات تعذُّر في المكوّن الإضافي extauth |
خطأ | بروتوكول OAuth | استجابة HTTP | حالات تعذُّر في مكوّن oauth الإضافي |
تحذير | حدث خطأ أثناء معالجة إحصاءات Apigee. السماح بمواصلة معالجة الطلب | logger.error | |
تحذير | تجاهل الخطأ | console.warn | مكوّنات apikeys وoauth وoauthv2 الإضافية |
تحذير | خطأ في تحليل jwt: | console.warn | |
تحذير | لا يحتوي عنصر استجابة oath على setHeader | console.warn | يشير خطأ مَعلمة oauth إلى أنّه لن يتم الإبلاغ عن بعض الأخطاء. |
تحذير | لا يتم توفير عنصر ردّ oath من خلال وقت التشغيل | console.warn | خطأ في مَعلمة oauth |
تحذير | لا يتم توفير عنصر إحصاءات oath من خلال وقت التشغيل | console.warn | خطأ في مَعلمة oauth |
وحدة apigeetool-node |
|||
خطأ | تعذّر حذف ذاكرة التخزين المؤقت برمز الحالة %d، res.statusCode | ردّ الاتصال | تم طرحها في deletecache.js. رمز الحالة من Apigee Edge تمرير خطأ تتبُّع تسلسل استدعاء الدوال البرمجية إلى دالة الاستدعاء مع هذه الرسالة: done(new Error(errMsg)); |
خطأ | تعذّر حذف المنتج برمز الحالة %d، res.statusCode | ردّ الاتصال | تم طرحه في deleteproduct.js. رمز الحالة من Apigee Edge تمرير خطأ تتبُّع تسلسل استدعاء الدوال البرمجية إلى دالة الاستدعاء مع هذه الرسالة: done(new Error(errMsg)); |
خطأ | يجب تحديد org وapi وrevision. | ردّ الاتصال | تم طرحه في fetchproxy.js. خطأ في الإعدادات |
خطأ | حدث خطأ %d عند جلب الخادم الوكيل: %j | ردّ الاتصال | تم طرحه في fetchproxy.js. رمز حالة غير 200 |
خطأ | تعذّر إنشاء التطبيق برمز الحالة %d | ردّ الاتصال | تم طرحه في createapp.js. تمرير جميع الأخطاء إلى وظائف الاستدعاء كأخطاء تتبُّع تسلسل استدعاء الدوال البرمجية لا يتم إجراء أي عمليات طباعة في وحدة التحكّم أو إدخالات في السجلّ. |
خطأ | تعذّر تنفيذ الأمر + ' برمز الحالة %d | ردّ الاتصال | تم طرحه في command-utils.js. بالنسبة إلى أيّ أمر يتم تحليله ونقله إلى هذه الوحدة، سيؤدي أيّ رمز غير 200 أو 201 إلى إنشاء رسالة خطأ. تنسيق هذه الرسالة ولكن بدون طباعتها تمرير خطأ تتبُّع تسلسل استدعاء الدوال البرمجية مع الرسالة إلى وظائف الاستدعاء |
خطأ | حدث خطأ %d عند جلب العملية المشترَكة: %s | ردّ الاتصال | تم طرحه في fetchsharedflow.js. لأي حالة HTTP غير 200 إذا نجحت العملية ولكن تعذّر عليها
كتابة ملف، يتم تسجيلها في وحدة التحكّم: تعذّر كتابة الملف نص الخطأ: [stack_trace_error] |
خطأ | تعذّر إنشاء KeySecret باستخدام رمز الحالة %d، res.statusCode | ردّ الاتصال | تم طرحه في createappkey.js. لرموز حالة HTTP من Apigee Edge التي لا تبلغ 200 أو 201 |
خطأ | تعذّر إنشاء ذاكرة التخزين المؤقت باستخدام رمز الحالة %d، res.statusCode | ردّ الاتصال | تم طرحه في createcache.js. لرموز حالة HTTP من Apigee Edge التي لا تبلغ 200 أو 201 |
خطأ | تعذّر إنشاء المنتج برمز الحالة %d، res.statusCode | ردّ الاتصال | تم طرحها في createproduct.js. لرموز حالة HTTP من Apigee Edge التي لا تُمثّل 201. إذا كانت حالة HTTP هي 201 ولكنّ الاستجابة تتضمّن ملف JSON للخطأ، تتم إعادة توجيه ملف JSON للخطأ إلى دالة الاستدعاء. |
خطأ | تعذّر حذف التطبيق برمز الحالة %d، res.statusCode | ردّ الاتصال | تم طرحه في deleteapp.js. لرموز حالة HTTP من Apigee Edge التي لا تبلغ 200. إذا كانت حالة HTTP هي 200 ولكنّ الاستجابة تتضمّن ملف JSON للخطأ، تتم إعادة توجيه ملف JSON للخطأ إلى دالة الاستدعاء. |
خطأ | تعذّر إنشاء حساب المطوِّر برمز الحالة %d، res.statusCode | ردّ الاتصال | تم طرحه في createdeveloper.js. لرموز حالة HTTP من Apigee Edge التي لا تُمثّل 201. إذا كانت حالة HTTP هي 201 ولكنّ الاستجابة تتضمّن ملف JSON للخطأ، تتم إعادة توجيه ملف JSON للخطأ إلى دالة الاستدعاء. |
خطأ | تعذّر حذف المطوّر برمز الحالة %d، res.statusCode | ردّ الاتصال | تم طرحه في deletedeveloper.js. لرموز حالة HTTP من Apigee Edge التي لا تبلغ 200. إذا كانت حالة HTTP هي 200 ولكنّ الاستجابة تتضمّن ملف JSON للخطأ، تتم إعادة توجيه ملف JSON للخطأ إلى دالة الاستدعاء. |
أخطاء في المكوّن الإضافي
accesscontrol plug-in
This section describes the error codes and messages that are returned by the
accesscontrol
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
Not printed | Forbidden | 403 | Access control rule |
accumulate-request plug-in
This section describes the error codes and messages that are returned by the
accumulate-request
plug-in with descriptions of possible causes.
No errors generated.
accumulate-resopnse plug-in
This section describes the error codes and messages that are returned by the
accumulate-response
plug-in with descriptions of possible causes.
No errors generated.
analytics plug-in
This section describes the error codes and messages that are returned by the
analytics
plug-in with descriptions of possible causes.
Errors encountered processing Apigee analytics are written to the Edge Microgateway log. Edge Microgateway processing continues.
apikeys plug-in
This section describes the error codes and messages that are returned by the
apikeys
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
invalid_request | Invalid Request | 400 | allowNoAuthorization == false
No Authorization header in the HTTP request allowOAuthOnly == true |
invalid_request | API Key Verification URL not configured | 400 | Verification API service not in header. |
access_denied | Copy service message | 403 | In response to the auth service timeout |
missing_authorization | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization |
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Copy service message | 504 | In response to the auth timeout |
default | 500 | All other not categorized |
bauth plug-in
This section describes the error codes and messages that are returned by the
bauth
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
missing_authorization | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization |
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Copy service message | 504 | In response to the auth timeout |
default | 500 | All other not categorized |
cloud-foundry-route-service plug-in
This section describes the error codes and messages that are returned by the
cloud-foundry-route-service
plug-in with descriptions of possible causes.
No errors generated.
cors plug-in
This section describes the error codes and messages that are returned by the
cors
plug-in with descriptions of possible causes.
No errors generated.
eurekaclient plug-in
This section describes the error codes and messages that are returned by the
eurekaclient
plug-in with descriptions of possible causes.
The eurekaclient plug-in throws a few console errors only, including a stack trace error on failed start and a warning about the target endpoint from Eureka not found.
extauth plug-in
This section describes the error codes and messages that are returned by the
extauth
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
invalid_request | Invalid Request | 400 | allowNoAuthorization == false
No Authorization header in the HTTP request allowOAuthOnly == true |
invalid_request | API Key Verification URL not configured | 400 | Verification API service not in header. |
access_denied | Copy service message | 403 | In response to the auth service timeout |
missing_authorization | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization |
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Copy service message | 504 | In response to the auth timeout |
default | 500 | All other not categorized |
header-uppercase plug-in
This section describes the error codes and messages that are returned by the
header-uppercase
plug-in with descriptions of possible causes.
No errors generated.
healthcheck plug-in
This section describes the error codes and messages that are returned by the
healthcheck
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
503 | Too busy. No messages in HTTP or console | ||
default | Application is not running on specified application port | 500 | All other not categorized |
invalidHeader plug-in
This section describes the error codes and messages that are returned by the
invalidHeader
plug-in with descriptions of possible causes.
No errors generated.
json2xml plug-in
This section describes the error codes and messages that are returned by the
json2xml
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
default | 500 | All other not categorized |
monitor plug-in
This section describes the error codes and messages that are returned by the
monitor
plug-in with descriptions of possible causes.
No errors generated.
oauth plug-in (v1)
This section describes the error codes and messages that are returned by the
oauth
plug-in (v1) with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
invalid_request | Invalid Authorization Header | 400 |
|
invalid_request | API Key Verification URL not configured | 400 | Verification API service not in header. |
Access_denied | Copy service message | 403 | In response to the auth service timeout |
invalid_token | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization is set |
invalid_token | token could not be parsed | 401 | allowAPIKeyOnly == true
Bad token delivered |
missing_authorization | Missing Authorization header | 401 | allowNoAuthorization == false
Authorization-header in HTTP allowOAuthOnly == true |
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Copy service message | 504 | In response to the auth timeout |
default | 500 | All other uncategorized responses |
oauthv2 plug-in
This section describes the error codes and messages that are returned by the
oauthv2
plug-in with descriptions of possible causes.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
invalid_request | Invalid Authorization Header | 400 |
|
invalid_request | API Key Verification URL not configured | 400 | Verification API service not in header |
access_denied | Copy service message | 403 | In response to the auth service timeout |
invalid_token | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization is set |
invalid_token | token could not be parsed | 401 | allowAPIKeyOnly == true
Bad token delivered |
missing_authorization | Missing Authorization header | 401 | allowNoAuthorization == false
Authorization-header in HTTP allowOAuthOnly == true |
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Copy service message | 504 | In response to the auth timeout |
default | 500 | All other uncategorized responses |
quota plug-in
This section describes the error codes and messages that are returned by the
quota
plug-in with descriptions of possible causes.
Defers to volos quota/apigee.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Not authorized to call the remote proxy. Check the "key" parameter. | 404 | In response to the auth timeout |
default | 500 | All other not categorized | |
throw | uri parameter must be specified | apigeequota.js | |
throw | key parameter must be specified | apigeequota.js | |
callback | Apigee Remote Proxy not found at: ' + self.uri + '. Check your configuration | apigeequota.js | |
callback | HTTP error getting proxy version: %d. Check the "uri" parameter. | apigeequota.js | |
callback | Quotas with a fixed starting time are not supported | apigeequota.js | |
callback | Error updating remote quota: %d %s', resp.statusCode, body | apigeequota.js |
If there is an error on an entry in the product list, the product list will stop being processed.
quota-memory plug-in
This section describes the error codes and messages that are returned by the
quota-memory
plug-in with descriptions of possible causes.
Defers to volos quota/apigee.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
gateway_timeout | Not authorized to call the remote proxy. Check the "key" parameter. | 404 | In response to the auth timeout |
default | 500 | All other not categorized | |
throw | start time not allowed for month time units | quota.js. volos error on time format. | |
throw | Invalid start time %s | quota.js. volos error on time format. | |
throw | Invalid timeUnit %s | quota.js. volos error on time format. |
If there is an error on an entry in the product list, the product list will stop being processed.
spikearrest plug-in
This section describes the error codes and messages that are returned by the
spikearrest
plug-in with descriptions of possible causes.
Defers to volos spikearrest/memory.
Error | Message | HTTP status | Possible Causes |
---|---|---|---|
SpikeArrest engaged | 503 | Traffic spike. This is expected behavior. | |
throw | Invalid timeUnit %s | spikearrest.js | |
callback | key must be a string | spikearrest.js | |
throw | %s must be a number', name | spikearrest.js |
transform-uppercase plug-in
This section describes the error codes and messages that are returned by the
transform-uppercase
plug-in with descriptions of possible causes.
No errors generated.