Pemecahan masalah error deployment kebijakan JavaScript

Anda sedang melihat dokumentasi Apigee dan Apigee Hybrid.
Lihat dokumentasi Apigee Edge.

InvalidResourceUrlFormat

Pesan error

Deployment proxy API melalui UI atau API Apigee gagal dengan pesan error ini:

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

Contoh pesan error

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

Contoh screenshot

Terjadi error saat men-deploy revisi 1 untuk diuji.

Penyebab

Jika format URL resource yang ditentukan dalam elemen <ResourceURL> atau <IncludeURL> kebijakan JavaScript tidak valid, deployment proxy API akan gagal.

Format yang benar untuk menentukan URL resource adalah seperti yang ditunjukkan di bawah ini:

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

Misalnya, jika elemen <ResourceURL> ditentukan seperti yang ditunjukkan di bawah, deployment proxy API akan gagal karena tidak mengikuti pola yang ditentukan:

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

Diagnosis

  1. Identifikasi format URL resource yang tidak valid yang digunakan dalam kebijakan JavaScript. Anda dapat menemukan informasi ini dari pesan error. Misalnya, dalam error berikut, format URL resource yang tidak valid adalah jsc:add_variables.js.

      Error Deploying Revision 1 to test
        Invalid resource url format. Resource url is jsc:add_variables.js.
    
  2. Periksa semua kebijakan JavaScript di Proxy API tertentu tempat kegagalan terjadi. Jika terdapat kebijakan JavaScript dengan URL resource yang ditentukan dalam elemen <ResourceURL> atau <IncludeURL> cocok dengan entri tidak valid yang diidentifikasi pada langkah #1 di atas, itulah penyebab error.

    Misalnya, kebijakan berikut menentukan URL resource sebagai jsc:add_variables.js, yang cocok dengan yang ada dalam pesan error:

    <?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>
    

    Karena URL resource ditetapkan sebagai jsc:add_variables.js, yang tidak valid, deployment Proxy API akan gagal dengan error:

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

Resolusi

Pastikan format URL resource yang ditentukan dalam elemen <ResourceURL> atau <IncludeURL> kebijakan JavaScript valid. Contoh:

<?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>

InvalidResourceUrlReference

Pesan error

Deployment proxy API melalui UI atau API Apigee gagal dengan pesan error ini:

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

Contoh pesan error

Error Deploying Revision 8 to test
Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval

Contoh screenshot

Terjadi error saat men-deploy revisi 8 untuk diuji.

Penyebab

Jika elemen <ResourceURL> dan <IncludeURL> merujuk ke file JavaScript yang tidak ada, deployment proxy API akan gagal.

Jika Anda men-deploy paket proxy dari mesin lokal, file sumber JavaScript harus disimpan di /apiproxy/resources/jsc. Dalam hal ini, file sumber diberi cakupan proxy API.

Di UI Apigee, file sumber JavaScript muncul di bawah jsc di bagian Skrip pada panel Navigator editor proxy API. Anda juga dapat menyimpan file resource di repositori tingkat lingkungan (misalnya untuk membuat kode JavaScript tersedia bagi semua proxy di organisasi atau env).

Jika file resource yang ditentukan dalam kebijakan tidak dapat ditemukan di salah satu cakupan yang tersedia (proxy atau lingkungan), error ini akan terjadi.

Diagnosis

  1. Identifikasi kebijakan JavaScript tempat error terjadi dan yang berisi referensi URL resource yang tidak valid. Anda dapat menemukan informasi ini dari pesan error. Misalnya, dalam error berikut, nama kebijakan adalah js-TotalVariable dan referensi URL resource yang tidak valid adalah jsc://dependent_js.js.

    Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval
    
  2. Pastikan referensi URL resource yang ditentukan dalam kebijakan JavaScript yang gagal sesuai dengan nilai yang teridentifikasi dalam pesan error (langkah #1 di atas). Misalnya, kebijakan berikut menentukan referensi URL resource sebagai jsc://dependent_js.js, yang cocok dengan yang ada dalam pesan error:

    <?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. Periksa apakah file sumber yang diidentifikasi di langkah #1 adalah bagian dari paket Proxy API tertentu, atau ada di cakupan lingkungan.

    1. Untuk memeriksa apakah file tersebut adalah bagian dari paket Proxy API tertentu, ikuti salah satu langkah berikut:
      1. Di UI Apigee, periksa apakah file ini ada di bagian Skrip proxy API.
      2. Download paket Proxy API dan telusuri apakah file tersebut ada.
    2. Jika file bukan bagian dari paket Proxy API tertentu, periksa apakah file tersebut ada di tingkat lingkungan. Anda dapat menggunakan Resource Files API untuk investigasi ini.

    Jika file tidak ada di Proxy API atau tingkat lingkungan, berarti itulah penyebab error.

    Pada contoh yang dijelaskan di atas, ingat bahwa nama file JavaScript yang tidak valid adalah dependent_js.js. Pada screenshot di bawah, perhatikan bahwa file yang ditentukan sebagai URL resource dalam kebijakan tidak muncul di bagian Skrip. Oleh karena itu, API tersebut bukan bagian dari Proxy API. Jika file tidak ada di tingkat lingkungan, deployment Proxy API akan gagal, disertai error:

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

    Error URL resource tidak valid.

Resolusi

Pastikan file JavaScript yang ditentukan dalam elemen <ResourceURL> dan <IncludeURL> merujuk ke file valid yang ada di Proxy API atau tingkat lingkungan.

Untuk memperbaiki contoh kebijakan JavaScript yang ditampilkan di atas, tambahkan file dependent_js.js ke paket Proxy API. Pada screenshot di bawah, Anda dapat melihat bahwa file JavaScript yang ditentukan dalam elemen <ResourceURL> dan <IncludeURL> terlihat di bagian Skrip pada paket Proxy API.

Contoh yang diperbaiki.

WrongResourceType

Pesan error

Deployment proxy API melalui UI atau API Apigee gagal dengan pesan error ini:

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

Contoh pesan error

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

Contoh screenshot

Terjadi error saat men-deploy revisi 2 untuk diuji.

Penyebab

Error ini terjadi selama deployment jika elemen <ResourceURL> dan <IncludeURL> dari kebijakan JavaScript merujuk ke jenis resource apa pun selain jsc (file JavaScript).

Misalnya, jika elemen <IncludeURL> dideklarasikan seperti yang ditunjukkan di bawah, deployment proxy API akan gagal:

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

Hal ini karena kode tersebut merujuk pada jenis resource node yang salah.

Diagnosis

  1. Identifikasi jenis resource yang tidak valid yang digunakan dalam kebijakan JavaScript. Anda dapat menemukan informasi ini dari pesan error. Misalnya, dalam error berikut, jenis resource yang tidak valid adalah node.

    Resource js_checkType.js is the wrong type. It is node: but JavaScript steps use type jsc:.
    
  2. Periksa semua kebijakan JavaScript di Proxy API tertentu tempat kegagalan terjadi. Jika ada kebijakan JavaScript dengan resource yang ditetapkan dalam elemen <ResourceURL> atau <IncludeURL> cocok dengan jenis resource tidak valid yang diidentifikasi pada Langkah #1 di atas, itulah penyebab error.

    Misalnya, kebijakan berikut menentukan jenis resource sebagai node, yang cocok dengan yang ada dalam pesan error:

    <?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>
    

    Karena jenis resource ditetapkan sebagai node, yang tidak valid, deployment Proxy API akan gagal dengan error:

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

Resolusi

Pastikan elemen <ResourceURL> dan <IncludeURL> dalam kebijakan JavaScript selalu merujuk ke jenis resource jsc.

Untuk memperbaiki contoh yang ditampilkan di atas, ubah elemen <ResourceURL> agar memiliki jenis resource 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>

NoResourceURLOrSource

Pesan error

Deployment proxy API melalui UI atau API Apigee gagal dengan pesan error ini:

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

Contoh pesan error

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

Contoh screenshot

Terjadi error saat menyimpan revisi 10.

Penyebab

Deployment kebijakan JavaScript dapat gagal dengan error ini dalam skenario berikut:

  1. Apakah elemen <ResourceURL> tidak dideklarasikan atau jika URL resource tidak ditentukan dalam elemen ini. Elemen <ResourceURL> adalah elemen wajib.
  2. Elemen <IncludeURL> dideklarasikan, tetapi URL resource tidak ditentukan dalam elemen ini. Elemen <IncludeURL> bersifat opsional, tetapi jika dideklarasikan, URL resource harus ditentukan dalam elemen <IncludeURL>.

Misalnya, jika elemen <IncludeURL> dideklarasikan seperti yang ditunjukkan di bawah, deployment proxy API akan gagal:

<IncludeURL></IncludeURL>

Diagnosis

  1. Identifikasi kebijakan JavaScript tempat error terjadi. Anda dapat menemukan informasi ini dari pesan error. Misalnya, dalam error berikut, nama kebijakan adalah Policy-js-example:

    Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].
    
  2. Dalam file XML kebijakan JavaScript yang gagal, lakukan pemeriksaan berikut:

    1. Elemen <ResourceURL> harus dideklarasikan dan elemen harus memiliki URL resource yang ditentukan.
    2. Jika elemen <IncludeURL> dideklarasikan, Anda harus menetapkan URL resource di dalamnya. Mendeklarasikan elemen <IncludeURL> bersifat opsional.

    Jika salah satu pemeriksaan di atas gagal, itulah penyebab error.

    Contoh 1: Kebijakan berikut tidak memiliki elemen <ResourceURL> yang dideklarasikan:

    <?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>
    

    Karena elemen <ResourceURL> tidak dideklarasikan, deployment Proxy API akan gagal dengan error:

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

    Contoh 2: Kebijakan berikut memiliki elemen <IncludeURL> kosong.

  <?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>

Karena elemen <IncludeURL> tidak memiliki URL resource, deployment Proxy API akan gagal dengan error:

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

Resolusi

Pastikan hal berikut di kebijakan JavaScript:

  1. Elemen <ResourceURL> dideklarasikan dan URL resource ditentukan dalam elemen ini. Elemen <ResourceURL> adalah elemen wajib.
  2. Jika elemen <IncludeURL> dideklarasikan, URL resource penyertaan harus didefinisikan dalam elemen ini. Elemen <IncludeURL> bersifat opsional, tetapi jika dideklarasikan, URL resource harus ditetapkan dalam elemen <IncludeURL>.

    Untuk memperbaiki Contoh 1 yang ditampilkan di atas, sertakan elemen <ResourceURL> dengan file JavaScript yang valid:

    <?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>
    

    Untuk memperbaiki Contoh 2 yang ditampilkan di atas, sertakan file JavaScript yang valid dalam elemen <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>