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

أنت تطّلع على مستندات 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 غير صحيح، ستعرض إضافة 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'
    
  • القيم غير الصحيحة التي تقيّمها الإضافة

    وتشمل هذه الأخطاء أخطاء في البنية في الأجزاء التي يتم تقييمها وفقًا للسياسة من ملف JSON الخاص بالعنصر <Input>، وخطأ إملائي في اسم الإجراء في العنصر <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'