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

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

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

  • أداة التتبُّع 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 لإعدادات إضافة تسجيل الدخول إلى السحابة الإلكترونية عنصر metadata يتم تمرير محتواه إلى التسجيل في السحابة الإلكترونية. قد تؤدي أسماء المفاتيح غير الصحيحة، مثل typ بدلاً من type، إلى ظهور أخطاء من المورد الخارجي كإدخالات في سجلّ الإضافات:

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

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

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

في محرّر الخادم الوكيل، تظهر هذه الأخطاء عادةً كخطأ على مستوى 4xx أو 5xx. ومع ذلك، لن يعرض محرر الخادم الوكيل أي تفاصيل حول سبب الخطأ باستثناء القول بأن الإضافة عرضت خطأً. يظهر الخطأ التالي في أداة التتبُّع عند حدوث خطأ إملائي في اسم الإجراء في إضافة 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'