تحديد وحلّ المشاكل المتعلقة بنشر سياسة PythonScript

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

InvalidResourceUrlFormat

رسالة الخطأ

تعذَّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge مع رسالة الخطأ التالية:

Error Deploying Revision revision_number to environment
Invalid resource url format. Resource url is invalid_URL.

مثال على رسالة الخطأ

Error Deploying Revision 2 to prod
Invalid resource url format. Resource url is py:myscript.py.

مثال للقطة شاشة

السبب

إذا تم تحديد تنسيق عنوان URL للمورد المحدد في <ResourceURL> أو العنصر <IncludeURL> من سياسة PythonScript غير صالحة، وهذا يعني تعذُّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.

يظهر التنسيق الصحيح أدناه:

<ResourceURL>py://file_name.py</ResourceURL>
<IncludeURL>py://file_name.py</IncludeURL>

على سبيل المثال، إذا تم تحديد العنصر <ResourceURL> كما هو موضح أدناه، فعندئذ سيتم فشل نشر الخادم الوكيل لواجهة برمجة التطبيقات بسبب عدم اتباعه النمط المطلوب:

<ResourceURL>py:myscript.py</ResourceURL>

التشخيص

  1. حدِّد تنسيق عنوان URL غير الصالح والمستخدَم في سياسة PythonScript. يمكنك العثور على هذه المعلومات في رسالة الخطأ. على سبيل المثال، في الخطأ التالي، يكون تنسيق عنوان URL غير الصالح لعنوان URL هو py:myscript.py:

    Invalid resource url format. Resource url is py:myscript.py.
    
  2. افحص جميع سياسات PythonScript في خادم وكيل واجهة برمجة التطبيقات المحدّد حيث حدث العطل. إذا كان هناك أي سياسة PythonScript يتطابق فيها عنوان URL للمورد المحدّد في <ResourceURL> أو العنصر <IncludeURL> مع الإدخال غير الصالح المحدّد في الخطوة رقم 1 أعلاه، يكون هذا هو سبب الخطأ.

    على سبيل المثال، تحدّد السياسة التالية عنوان URL للمورد على أنّه py:myscript.py، ما يتطابق مع محتوى رسالة الخطأ:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Script async="false" continueOnError="false" enabled="true" timeLimit="200" name="py-TotalVariable">
        <DisplayName>py-TotalVariable</DisplayName>
        <Properties/>
        <ResourceURL>py:myscript.py</ResourceURL>
    </Script>
    

    بما أنّه تم تحديد عنوان URL للمورد على أنّه py:myscript.py، وهو غير صالح، يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات مع ظهور الخطأ:

    Invalid resource url format. Resource url is py:myscript.py.
    

الدقة

تأكَّد من أنّ تنسيق عنوان URL للمورد المحدّد في العنصر <ResourceURL> ضمن سياسة PythonScript صالح. على سبيل المثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Script async="false" continueOnError="false" enabled="true" timeLimit="200" name="py-TotalVariable">
    <DisplayName>py-TotalVariable</DisplayName>
    <Properties/>
    <ResourceURL>py://myscript.py</ResourceURL>
</Script>

InvalidResourceUrlReference

رسالة الخطأ

تعذَّر نشر خادم وكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge مع رسالة الخطأ التالية:

Error Deploying Revision revision_number to environment
Invalid resource url ref invalid_reference in policy policy_name in org_name

مثال على رسالة الخطأ

Error Deploying Revision 2 to prod
Invalid resource url ref py://myscript.py in policy Python_script in myorg

مثال للقطة شاشة

السبب

إذا كان العنصران <ResourceURL> و<IncludeURL> يشيران إلى ملف PythonScript غير موجود، فسيفشل نشر الخادم الوكيل لواجهة برمجة التطبيقات. إذا كنت تنشر حزمة خادم وكيل من جهازك المحلي، فسيحدث تنفيذ يجب تخزين الملفات المصدر ضمن /apiproxy/resources/py(على نطاق الخادم الوكيل لواجهة برمجة التطبيقات).

في واجهة مستخدم Edge، تظهر ملفات المصدر في PythonScript ضمن py في قسم Scripts (النصوص البرمجية) في جزء المستكشف في محرر خادم وكيل واجهة برمجة التطبيقات كما هو موضح أدناه:

يمكنك أيضًا تخزين ملفات الموارد في المستودعات على مستوى المؤسسة والبيئة (لإتاحة رمز PythonScript لجميع الخوادم الوكيلة في مؤسسة أو بيئة، على سبيل المثال). إذا تعذّر العثور على أي ملفات موارد تم تحديدها في السياسة، سيحدث هذا الخطأ.

التشخيص

  1. حدِّد سياسة PythonScript التي حدث فيها الخطأ ومرجع عنوان URL للمورد غير الصالح. يمكنك العثور على هذه المعلومات في رسالة الخطأ. على سبيل المثال، في الخطأ التالي، يكون اسم السياسة هو Python_script ومرجع عنوان URL غير الصالح هو py://myscript.py:

    Invalid resource url ref py://myscript.py in policy Python_script in myorg
    
  2. تحقق من تطابق مرجع عنوان URL للمورد المحدد في سياسة PythonScript التي أخفقت مع القيمة المحددة في رسالة الخطأ (الخطوة رقم 1 أعلاه). على سبيل المثال، تحدّد السياسة التالية مرجع عنوان URL الخاص بالمورد py://myscript.py، والذي يتطابق مع محتوى رسالة الخطأ:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Script async="false" continueOnError="false" enabled="true" name="Python_script">
        <DisplayName>Python-1</DisplayName>
        <Properties/>
        <ResourceURL>py://myscript.py</ResourceURL>
    </Script>
    
  3. تحقَّق مما إذا كان الملف المحدَّد في الخطوة رقم 1 جزءًا من حزمة الخادم الوكيل لواجهة برمجة التطبيقات المحدّدة أو من وجوده على نطاق المؤسسة أو البيئة.

    1. للتحقّق مما إذا كان الملف جزءًا من حزمة الخادم الوكيل لواجهة برمجة التطبيقات المحدّدة، اتّبِع إحدى الخطوات التالية:
      1. في واجهة مستخدم Edge، تحقق مما إذا كان هذا الملف في قسم " Scripts" (النصوص البرمجية) من الخادم الوكيل لواجهة برمجة التطبيقات.
      2. نزِّل حزمة الخادم الوكيل لواجهة برمجة التطبيقات وابحث في حال توفُّر الملف.
    2. إذا لم يكن الملف جزءًا من حزمة الخادم الوكيل لواجهة برمجة التطبيقات المحدّدة، يُرجى التحقّق مما إذا كان متوفّرًا على مستوى المؤسسة أو البيئة. يمكنك استخدام Resource Files API لإجراء هذا التحقيق.

    إذا لم يكن الملف موجودًا على مستوى الخادم الوكيل لواجهة برمجة التطبيقات أو المؤسسة أو البيئة، يكون هذا هو سبب الخطأ.

    في المثال أعلاه، اسم ملف PythonScript غير الصالح هو myscript.py. في لقطة الشاشة أدناه، يُرجى ملاحظة أنّ الملف المحدّد كعنوان URL للمورد في السياسة لا يظهر في قسم "النصوص البرمجية". كما أن الملف غير موجود على مستوى المؤسسة أو البيئة. نتيجةً لذلك، يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات مع ظهور الخطأ:

    Invalid resource url ref py://myscript.py in policy Python_script in myorg
    

الدقة

تأكَّد من أنّ ملفات PythonScript المحدَّدة في عنصرَي <ResourceURL> و<IncludeURL> تشير إلى ملف صالح متوفّر على مستوى الخادم الوكيل لواجهة برمجة التطبيقات أو المؤسسة أو البيئة.

لتصحيح مثال سياسة PythonScript الوارد أعلاه، أضف الملف myscript.py إلى حزمة API Proxy. في لقطة الشاشة أدناه، يمكنك رؤية أن ملفات PythonScript المحددة في العنصرين <ResourceURL> و<IncludeURL> مرئية في قسم Scripts (النصوص البرمجية) من حزمة خادم وكيل واجهة برمجة التطبيقات: