تصحيح أخطاء إضافة

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

يمكنك تصحيح أخطاء إضافة باستخدام الرسائل المرئية في مكانَين: أداة "التتبُّع" وسجلات الإضافة. عندما لا تعمل إحدى الإضافات، قد يتطلّب تحديد المشكلة في بعض الأحيان الحصول على معلومات من كلا المكانَين.

  • أداة التتبُّع في Apigee Edge هي المكان الذي يمكنك فيه اختبار رمز خادم وكيل لواجهة برمجة التطبيقات وتعديله بشكل متكرّر أثناء تطويره. تتضمّن رسائل التتبُّع أخطاءً من رمز خادم وكيل واجهة برمجة التطبيقات، بما في ذلك خادم وكيل واجهة برمجة التطبيقات وإعدادات السياسة.

    لا تحتوي الأخطاء المتعلّقة بالإضافات والتي تظهر في أداة "التتبُّع" عادةً على الكثير من التفاصيل، باستثناء الإشارة إلى طلب الإضافة الذي تعذّر تنفيذه، بالإضافة إلى رمز خطأ HTTP. إذا لم تجد أي معلومات مفيدة هنا، يمكنك الانتقال إلى سجلّ الإضافة التي تستخدمها.

  • تنشئ الإضافات إدخالات السجلّ أثناء وقت التشغيل. (تتوفّر سجلّات الإضافات لمشرفي المؤسسة فقط).

    تتضمّن هذه السجلات إدخالات تم إرجاعها من المرجع الخارجي الذي تم ضبط الإضافة للتفاعل معه. على سبيل المثال، إذا تم إعداد بيانات اعتماد الموارد الخارجية بشكل غير صحيح في الإضافة، من المرجّح أن يظهر الخطأ هنا.

    تتضمّن السجلات أيضًا إدخالات من الرمز البرمجي الداخلي للإضافة. عند الاطّلاع على السجلات، ضَع في اعتبارك أنّ بعض الإدخالات غير مرتبطة بالخطأ الذي تعمل على تصحيحه. تبدأ إدخالات السجلّات المتعلّقة بالإضافات عادةً بالكلمة details، كما هو الحال في إدخال في السجلّ التالي من إضافة Cloud Pub/Sub:

    details: 'Invalid resource name given (name=projects/example-test-123456/topic/extension-example). Refer to https://cloud.google.com/pubsub/docs/admin#resource_names for more information.'
    

أنواع الأخطاء وأسبابها

تنتقل عمليات معالجة طلبات الإضافة من سياسة ExtensionCallout في خادم وكيل لواجهة برمجة التطبيقات، مرورًا بالإضافة، وصولاً إلى المرجع الخارجي، ثم العودة مرة أخرى. لذلك، يمكن أن يحدث خطأ في أي من هذه الأماكن.

قد تندرج الأخطاء التي تظهر لك ضمن الفئات التالية.

أخطاء في إعدادات الإضافة

هذا هو الإعداد الذي يضبطه مشرف المؤسسة عند إضافة إضافة إلى بيئة.

على سبيل المثال، إذا أعددت إضافة Cloud Logging باستخدام معرّف مشروع غير صحيح على Google Cloud، ستعرض إضافة Google Cloud Logging خطأً. تتوفّر عادةً تفاصيل حول هذه الأخطاء في سجلّ الإضافة.

الأدلة في أداة "التتبُّع"

في "محرّر الوكيل"، ستظهر هذه الأخطاء عادةً كخطأ على مستوى 4xx أو 5xx. ومع ذلك، لن يعرض محرّر الخادم الوكيل أي تفاصيل حول سبب الخطأ، بل سيشير فقط إلى أنّ الإضافة قد أبلغت عن حدوث خطأ.

{
  "fault": {
    "faultstring":"Execution of ConnectorCallout Logging-Extension failed. Reason: Connector returned error statuscode=500",
    "detail": {
      "errorcode":"steps.connectorcallout.ExecutionFailed"
    }
  }
}

الأدلة في سجلّات الإضافة

إذا كانت هناك تفاصيل حول هذا النوع من الأخطاء، ستظهر لك في إدخالات سجلّ الإضافة. تنتج رسالة الخطأ التالية، التي تعرضها خدمة Cloud Pub/Sub، عن رقم تعريف مشروع غير صالح.

details: 'Project does not exist: example-test-12345'

أخطاء في إعدادات سياسة ExtensionCallout

تحدث هذه الأخطاء عند إعداد سياسة ExtensionCallout بشكل غير صحيح، إما بسبب خطأ في بنية إعداد السياسة أو بسبب مفاتيح أو قيم إعداد غير صحيحة. تتخذ هذه الأخطاء شكلَين، وذلك حسب طريقة إعداد السياسة:

  • قيم غير صحيحة تم تقييمها بواسطة المرجع الخارجي

    يمكن أن يحدث ذلك عندما يبدو خطأ الإعداد صالحًا للإضافة، ولكنّه غير صالح للمورد الخارجي. على سبيل المثال، إذا أرسلت الإضافة رقم تعريف قاعدة بيانات غير صحيح إلى Cloud Spanner، ستعرض Cloud Spanner خطأ يتم تسجيله في سجلّ الإضافة:

    details: 'Database not found: projects/example-test-123456/instances/spanner-extension-example-db/databases/my-business-d'
    

    يمكن أن يحدث ذلك أيضًا بسبب تنسيق JSON غير صحيح في عنصر <Input> بالسياسة. بالنسبة إلى بعض الإضافات، تتم معالجة جزء من ملف JSON بواسطة الإضافة، ويتم تمرير جزء آخر إلى المرجع. على سبيل المثال، يتضمّن ملف JSON الخاص بإعدادات إضافة Cloud Logging كائن metadata يتم تمرير محتواه إلى Cloud Logging. يمكن أن يؤدي استخدام أسماء مفاتيح غير صحيحة، مثل typ بدلاً من type، إلى ظهور أخطاء من المرجع الخارجي على شكل إدخالات في سجلّ الإضافة:

    details: 'Resource type cannot be empty'
    
  • قيم غير صحيحة يتم تقييمها بواسطة الإضافة

    تشمل هذه الأخطاء أخطاء في بنية الأجزاء التي تم تقييمها حسب السياسة من عنصر <Input> JSON، وأخطاء إملائية في اسم الإجراء في عنصر <Action>، وما إلى ذلك. ستظهر هذه الأخطاء عادةً في أداة "التتبُّع"، ولكن ليس في سجلات الإضافة.

الأدلة في أداة "التتبُّع"

في &quot;محرّر الوكيل&quot;، ستظهر هذه الأخطاء عادةً كخطأ على مستوى 4xx أو 5xx. ومع ذلك، لن يعرض محرّر الخادم الوكيل أي تفاصيل حول سبب الخطأ، بل سيشير فقط إلى أنّ الإضافة قد أبلغت عن حدوث خطأ. يظهر الخطأ التالي في أداة Trace عند حدوث خطأ إملائي في اسم الإجراء في إضافة Cloud Firestore.

{
  "fault":{
    "faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404","detail":
    {
      "errorcode":"steps.connectorcallout.ExecutionFailed"
    }
  }
}

الأدلة في سجلّات الإضافة

عندما يؤدي إعداد السياسة إلى حدوث خطأ في المعالجة في المرجع الخارجي، سيظهر الخطأ عادةً في السجلّ.

هذا خطأ يحدث عندما يتعذّر تنفيذ الطلب المقدَّم إلى المورد الخارجي لأسباب لا صلة لها بالإضافة.

على سبيل المثال، لنفترض أنّك تستخدم إضافة Cloud Spanner لإضافة صف إلى قاعدة البيانات، ولكن قيمة المفتاح الأساسي للصف مستخدَمة حاليًا في صف آخر. سيعرض Cloud Spanner رسالة خطأ للإضافة، وستضيف الإضافة رسالة الخطأ إلى سجلّها.

الأدلة في أداة "التتبُّع"

في "محرّر الوكيل"، ستظهر هذه الأخطاء عادةً كخطأ على مستوى 4xx أو 5xx. ومع ذلك، لن يعرض محرّر الخادم الوكيل أي تفاصيل حول سبب الخطأ، بل سيشير فقط إلى أنّ الإضافة عرضت خطأ.

{
  "fault":{
    "faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404",
    "detail":{
      "errorcode":"steps.connectorcallout.ExecutionFailed"
    }
  }
}

الأدلة في سجلّات الإضافة

سيتضمّن السجلّ عادةً إدخالات تتضمّن رسائل من المرجع الخارجي نفسه. تصف رسالة السجلّ التالية من Cloud Spanner الخطأ الحالي في قيمة المفتاح الأساسي.

details: 'Row [jonesy42] in table user already exists'