عیب یابی خطای استقرار خط مشی جاوا اسکریپت، عیب یابی خطای استقرار خط مشی جاوا اسکریپت

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

قالب آدرس منبع نامعتبر

پیام خطا

استقرار یک پروکسی API از طریق رابط کاربری Edge یا رابط برنامه‌نویسی کاربردی مدیریت Edge با این پیام خطا مواجه می‌شود:

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

مثال پیام خطا

Error Deploying Revision 1 to test
Invalid resource url format. Resource url is jsc:add_variables.js.

مثال اسکرین شات

علت

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

قالب صحیح برای مشخص کردن آدرس اینترنتی منبع به صورت زیر است:

<ResourceURL>jsc://<file_name>.js</ResourceURL>
<IncludeURL>jsc://<file_name>.js</IncludeURL>

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

<ResourceURL>jsc:add_variables.js</ResourceURL>

تشخیص

  1. قالب نامعتبر URL منبع مورد استفاده در سیاست جاوا اسکریپت را شناسایی کنید. می‌توانید این اطلاعات را از پیام خطا پیدا کنید. برای مثال، در خطای زیر، قالب نامعتبر URL منبع jsc:add_variables.js است.

      Error Deploying Revision 1 to test
        Invalid resource url format. Resource url is jsc:add_variables.js.
    
  2. تمام سیاست‌های جاوا اسکریپت را در API Proxy خاصی که خطا در آن رخ داده است، بررسی کنید. اگر سیاست جاوا اسکریپتی وجود داشته باشد که در آن URL منبع مشخص شده در عنصر <ResourceURL> یا <IncludeURL> با ورودی نامعتبر شناسایی شده در مرحله ۱ بالا مطابقت داشته باشد، علت خطا همان است.

    برای مثال، سیاست زیر آدرس منبع را jsc:add_variables.js مشخص می‌کند که با آنچه در پیام خطا آمده است مطابقت دارد:

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

    از آنجا که آدرس URL منبع به صورت jsc:add_variables.js مشخص شده است که نامعتبر است، استقرار API Proxy با خطای زیر با شکست مواجه می‌شود:

    Invalid resource url format. Resource url is jsc:add_variables.js.
    

وضوح تصویر

مطمئن شوید که قالب URL منبع مشخص شده در عنصر <ResourceURL> یا <IncludeURL> از خط‌مشی جاوا اسکریپت معتبر است. برای مثال:

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

مرجع نامعتبرResourceUrl

پیام خطا

استقرار یک پروکسی 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 8 to test
Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval

مثال اسکرین شات

علت

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

اگر یک بسته پروکسی را از دستگاه محلی خود مستقر می‌کنید، فایل‌های منبع جاوا اسکریپت باید در مسیر /apiproxy/resources/jsc ذخیره شوند. در این حالت، فایل‌های منبع به پروکسی API محدود می‌شوند.

در رابط کاربری Edge، فایل‌های منبع جاوا اسکریپت در بخش اسکریپت‌ها از پنل Navigator ویرایشگر پروکسی API، تحت jsc ظاهر می‌شوند. همچنین می‌توانید فایل‌های منبع را در مخازن سطح سازمان و محیط ذخیره کنید (برای مثال، برای اینکه کد جاوا اسکریپت برای همه پروکسی‌ها در یک org یا env در دسترس باشد).

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

تشخیص

  1. سیاست جاوا اسکریپتی که خطا در آن رخ داده و حاوی مرجع URL منبع نامعتبر است را شناسایی کنید. می‌توانید این اطلاعات را از پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام سیاست js-TotalVariable و مرجع URL منبع نامعتبر jsc://dependent_js.js است.

    Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval
    
  2. تأیید کنید که مرجع URL منبع مشخص شده در خط‌مشی جاوا اسکریپت ناموفق با مقدار مشخص شده در پیام خطا (مرحله ۱ در بالا) مطابقت دارد. به عنوان مثال، خط‌مشی زیر مرجع URL منبع را به صورت jsc://dependent_js.js مشخص می‌کند که با آنچه در پیام خطا آمده است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-TotalVariable">
      <DisplayName>js-TotalVariable</DisplayName>
      <Properties/>
      <ResourceURL>jsc://add_variables.js</ResourceURL>
      <IncludeURL>jsc://dependent_js.js</IncludeURL>
    </Javascript>
    
  3. بررسی کنید که آیا فایل منبع شناسایی‌شده در فایل مرحله ۱ بخشی از بسته خاص API Proxy است یا در محدوده سازمان یا محیط وجود دارد.

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

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

    در مثالی که در بالا توضیح داده شد، به یاد داشته باشید که نام فایل جاوا اسکریپت نامعتبر، dependent_js.js است. در تصویر زیر، توجه کنید که فایلی که به عنوان URL منبع در سیاست مشخص شده است، در بخش اسکریپت‌ها ظاهر نمی‌شود. بنابراین، بخشی از API Proxy نیست. اگر این فایل در سطح سازمان یا محیط نیز وجود نداشته باشد، استقرار API Proxy با خطای زیر ناموفق خواهد بود:

    Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval
    

وضوح تصویر

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

برای اصلاح مثال سیاست جاوا اسکریپت نشان داده شده در بالا، فایل dependent_js.js را به بسته API Proxy اضافه کنید. در تصویر زیر می‌توانید ببینید که فایل‌های جاوا اسکریپت مشخص شده در عناصر <ResourceURL> و <IncludeURL> در بخش اسکریپت‌های بسته API Proxy قابل مشاهده هستند.

نوع منبع اشتباه

پیام خطا

استقرار یک پروکسی API از طریق رابط کاربری Edge یا رابط برنامه‌نویسی کاربردی مدیریت Edge با این پیام خطا مواجه می‌شود:

Error Deploying Revision revision_number to environment
Resource JavaScript_file is the wrong type. It is invalid_type: but Javascript steps use type jsc:.

مثال پیام خطا

Error Deploying Revision 2 to test
Resource js_checkType.js is the wrong type. It is node: but Javascript steps use type jsc:.

مثال اسکرین شات

علت

این خطا در هنگام استقرار رخ می‌دهد اگر عناصر <ResourceURL> و <IncludeURL> از خط‌مشی جاوا اسکریپت به هر نوع منبعی غیر از jsc (فایل جاوا اسکریپت) اشاره کنند.

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

<IncludeURL>node://javascript-dependency.js</IncludeURL>

دلیلش این است که به نوع منبع node اشاره می‌کند که نادرست است.

تشخیص

  1. نوع منبع نامعتبر استفاده شده در سیاست جاوا اسکریپت را شناسایی کنید. می‌توانید این اطلاعات را از پیام خطا پیدا کنید. برای مثال، در خطای زیر، نوع منبع نامعتبر node است.

    Resource js_checkType.js is the wrong type. It is node: but Javascript steps use type jsc:.
    
  2. تمام سیاست‌های جاوا اسکریپت را در API Proxy خاصی که خطا در آن رخ داده است، بررسی کنید. اگر سیاست جاوا اسکریپتی وجود داشته باشد که در آن منبع مشخص شده در عنصر <ResourceURL> یا <IncludeURL> با نوع منبع نامعتبر شناسایی شده در مرحله ۱ بالا مطابقت داشته باشد، علت خطا همین است.

    برای مثال، سیاست زیر نوع منبع را node تعیین می‌کند که با آنچه در پیام خطا آمده است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-TotalVariable">
        <DisplayName>js-TotalVariable</DisplayName>
        <Properties/>
        <ResourceURL>node://js_checkType.js</ResourceURL>
        <IncludeURL>jsc://javascript-dependency.js</IncludeURL>
    </Javascript>
    

    از آنجا که نوع منبع به صورت node مشخص شده است که نامعتبر است، استقرار API Proxy با خطای زیر با شکست مواجه می‌شود:

    Resource js_checkType.js is the wrong type. It is node: but Javascript steps use type jsc:.
    

وضوح تصویر

مطمئن شوید که عناصر <ResourceURL> و <IncludeURL> در سیاست جاوا اسکریپت همیشه به نوع منبع jsc اشاره می‌کنند.

برای اصلاح مثال نشان داده شده در بالا، عنصر <ResourceURL> را طوری تغییر دهید که نوع منبع آن jsc باشد.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-TotalVariable">
    <DisplayName>js-TotalVariable</DisplayName>
    <Properties/>
    <ResourceURL>jsc://js_checkType.js</ResourceURL>
    <IncludeURL>jsc://javascript-dependency.js</IncludeURL>
</Javascript>

بدون منبعURLیا منبع

پیام خطا

استقرار یک پروکسی API از طریق رابط کاربری Edge یا رابط برنامه‌نویسی کاربردی مدیریت Edge با این پیام خطا مواجه می‌شود:

Error Saving Revision revision_number
Bundle is invalid. Errors:[Entity : Policy-policy_name, No ResourceURL or Source;].

مثال پیام خطا

Error Saving Revision 10
Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].

مثال اسکرین شات

علت

پیاده‌سازی سیاست جاوا اسکریپت می‌تواند تحت سناریوهای زیر با این خطا مواجه شود:

  1. اگر عنصر <ResourceURL> تعریف نشده باشد یا اگر آدرس اینترنتی منبع درون این عنصر تعریف نشده باشد، عنصر <ResourceURL> یک عنصر اجباری است.
  2. عنصر <IncludeURL> تعریف شده است اما URL منبع درون این عنصر تعریف نشده است. عنصر <IncludeURL> اختیاری است اما در صورت تعریف، URL منبع باید درون عنصر <IncludeURL> مشخص شود.

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

<IncludeURL></IncludeURL>

تشخیص

  1. سیاست جاوا اسکریپتی که خطا در آن رخ داده است را شناسایی کنید. می‌توانید این اطلاعات را از پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام سیاست Policy-js-example است:

    Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].
    
  2. در فایل XML مربوط به سیاست جاوا اسکریپت ناموفق، بررسی‌های زیر را انجام دهید:

    1. عنصر <ResourceURL> باید تعریف شود و URL منبع نیز باید در آن عنصر تعریف شده باشد.
    2. اگر عنصر <IncludeURL> تعریف شده باشد، باید یک URL منبع را درون آن مشخص کنید. تعریف عنصر <IncludeURL> اختیاری است.

    اگر هر یک از بررسی‌های فوق با شکست مواجه شود، علت خطا همان است.

    مثال ۱: در سیاست زیر عنصر <ResourceURL> تعریف نشده است:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-example">
        <DisplayName>js-example</DisplayName>
        <Properties/>
    </Javascript>
    

    از آنجا که عنصر <ResourceURL> تعریف نشده است، پیاده‌سازی API Proxy با خطای زیر مواجه می‌شود:

    Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].
    

    مثال ۲: سیاست زیر یک عنصر <IncludeURL> خالی دارد.

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-example">
      <DisplayName>js-example</DisplayName>
      <Properties/>
      <ResourceURL>jsc://check_var.js</ResourceURL>
      <IncludeURL></IncludeURL>
  </Javascript>

از آنجا که عنصر <IncludeURL> آدرس منبع (resource URL) را ندارد، پیاده‌سازی API Proxy با خطای زیر مواجه می‌شود:

  Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].

وضوح تصویر

موارد زیر را در خط‌مشی جاوا اسکریپت بررسی کنید:

  1. عنصر <ResourceURL> اعلان شده و آدرس اینترنتی منبع درون این عنصر تعریف شده است. عنصر <ResourceURL> یک عنصر اجباری است.
  2. اگر عنصر <IncludeURL> تعریف شده باشد، URL منبع شامل باید درون این عنصر تعریف شود. عنصر <IncludeURL> اختیاری است، اما اگر تعریف شده باشد، URL منبع باید درون عنصر <IncludeURL> مشخص شود.

    برای اصلاح مثال ۱ که در بالا نشان داده شده است، عنصر <ResourceURL> را به همراه یک فایل جاوا اسکریپت معتبر وارد کنید:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-example">
        <DisplayName>js-example</DisplayName>
        <Properties/>
        <ResourceURL>jsc://check_var.js</ResourceURL>
    </Javascript>
    

    برای اصلاح مثال ۲ که در بالا نشان داده شده است، یک فایل جاوا اسکریپت معتبر را در عنصر <IncludeURL> قرار دهید.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-example">
        <DisplayName>js-example</DisplayName>
        <Properties/>
        <ResourceURL>jsc://check_var.js</ResourceURL>
        <IncludeURL>jsc://js_dependency.js</IncludeURL>
    </Javascript>