عیب‌یابی خطای استقرار خط‌مشی PythonScript

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

InvalidResourceUrlFormat

پیام خطا

استقرار کارگزار پروکسی API ازطریق «واسط کاربر 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.

نماگرفت نمونه

علت

اگر قالب نشانی وب منبع مشخص‌شده در عنصر <ResourceURL> یا <IncludeURL> خط‌مشی PythonScript نامعتبر باشد، استقرار پراکسی API ناموفق خواهد بود.

قالب صحیح به‌صورت زیر است:

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

برای مثال، اگر عنصر <ResourceURL> به‌صورت زیر مشخص شده باشد، استقرار پراکسی API ناموفق خواهد بود زیرا از الگوی موردنیاز پیروی نمی‌کند:

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

تشخیص

  1. قالب نامعتبر نشانی وب منبع استفاده‌شده در خط‌مشی PythonScript را شناسایی کنید. می‌توانید این اطلاعات را از پیام خطا پیدا کنید. برای مثال، در خطای زیر، قالب نامعتبر نشانی وب منبع py:myscript.py است:

    Invalid resource url format. Resource url is py:myscript.py.
  2. همه خط‌مشی‌های PythonScript را در «پراکسی API» خاصی که خطا در آن رخ داده است بررسی کنید. اگر خط‌مشی PythonScript وجود داشته باشد که در آن نشانی وب منبع مشخص‌شده در عنصر <ResourceURL> یا <IncludeURL> با ورودی نامعتبر شناسایی‌شده در مرحله ۱ در بالا مطابقت داشته باشد، آن خط‌مشی دلیل خطا است.

    برای مثال، خط‌مشی زیر نشانی وب منبع را به‌عنوان 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>

    ازآنجایی‌که نشانی وب منبع به‌عنوان py:myscript.py مشخص شده است که نامعتبر است، استقرار «پراکسی API» با این خطا ناموفق است:

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

وضوح

مطمئن شوید قالب نشانی وب منبع مشخص‌شده در عنصر <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

پیام خطا

استقرار کارگزار پروکسی API ازطریق «واسط کاربر 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 ارجاع دهند که وجود ندارد، استقرار پراکسی API ناموفق خواهد بود. اگر بسته پراکسی را از ماشین محلی‌تان مستقر می‌کنید، فایل‌های منبع PythonScript باید در /apiproxy/resources/py(در محدوده پراکسی API) ذخیره شوند.

در «واسط کاربر Edge»، فایل‌های منبع PythonScript در بخش py در بخش «دستورگان» در قاب «پیمایشگر» ویرایشگر پراکسی API ظاهر می‌شود، همان‌طور که در زیر نشان داده شده است:

همچنین می‌توانید فایل‌های منبع را در مخازن سطح سازمان و محیط ذخیره کنید (برای مثال، برای دردسترس قرار دادن کد PythonScript برای همه پراکسی‌ها در سازمان یا محیط). اگر فایل‌های منبع مشخص‌شده در خط‌مشی پیدا نشوند، این خطا رخ می‌دهد.

تشخیص

  1. خط‌مشی PythonScript را که خطا در آن رخ داده است و مرجع نشانی وب منبع نامعتبر را شناسایی کنید. می‌توانید این اطلاعات را از پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام خط‌مشی Python_script و مرجع نشانی وب منبع نامعتبر py://myscript.py است:

    Invalid resource url ref py://myscript.py in policy Python_script in myorg
  2. تأیید کنید که مرجع نشانی وب منبع مشخص‌شده در خط‌مشی PythonScript ناموفق با مقدار شناسایی‌شده در پیام خطا مطابقت داشته باشد (مرحله ۱ در بالا). برای مثال، خط‌مشی زیر مرجع نشانی وب منبع را به‌عنوان 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. بررسی کنید که آیا فایل شناسایی‌شده در فایل مرحله ۱ بخشی از بسته «پراکسی API» خاص است یا در محدوده سازمان یا محیط وجود دارد.

    1. برای بررسی اینکه فایل بخشی از بسته «پراکسی API» خاص است یا نه، یکی از مراحل زیر را دنبال کنید:
      1. در «میانای کاربری Edge»، بررسی کنید که آیا این فایل در بخش «دستورگان» پراکسی API قرار دارد یا نه.
      2. بسته «پراکسی API» را بارگیری کنید و جستجو کنید که آیا فایل وجود دارد یا نه.
    2. اگر فایل بخشی از بسته «پراکسی میانای برنامه‌سازی کاربردی» خاصی نیست، بررسی کنید که آیا در سطح سازمان یا محیط وجود دارد یا خیر. می‌توانید از واسط برنامه‌سازی کاربردی فایل‌های منبع برای این تحقیق استفاده کنید.

    اگر فایل در سطح «پراکسی API»، سازمان، یا محیط وجود نداشته باشد، این دلیل خطا است.

    در مثال بالا، نام فایل نامعتبر PythonScript‏ myscript.py است. در نماگرفت زیر، توجه کنید که فایل مشخص‌شده به‌عنوان نشانی وب منبع در خط‌مشی در بخش «دستورگان» نشان داده نمی‌شود. همچنین فایل در سطح سازمان یا محیط وجود ندارد. بنابراین، استقرار «پراکسی API» با این خطا ناموفق است:

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

وضوح

مطمئن شوید که فایل‌های PythonScript مشخص‌شده در عناصر <ResourceURL> و <IncludeURL> به فایل معتبری که در سطح «پراکسی میانای برنامه‌سازی کاربردی»، سازمان، یا محیط وجود دارد اشاره می‌کنند.

برای اصلاح خط‌مشی PythonScript مثال نشان‌داده‌شده در بالا، فایل myscript.py را به دسته «پراکسی API» اضافه کنید. در نماگرفت زیر می‌توانید ببینید که فایل‌های PythonScript مشخص‌شده در عناصر <ResourceURL> و <IncludeURL> در بخش «دستورگان» بسته «پراکسی میانای برنامه‌سازی کاربردی» قابل‌مشاهده است: