Pemecahan masalah error deployment kebijakan JavaScript

Anda sedang melihat dokumentasi Apigee Edge.
Buka Dokumentasi Apigee X.
info

ini.

InvalidResourceUrlFormat

Pesan error

Penyebaran proxy API melalui UI Edge atau API pengelolaan Edge gagal dengan pesan kesalahan 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.

Screenshot contoh

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> ditetapkan 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 ada kebijakan JavaScript di mana URL resource yang ditentukan dalam elemen <ResourceURL> atau <IncludeURL> cocok dengan entri yang tidak valid yang diidentifikasi pada langkah #1 di atas, maka itulah penyebab error.

    Misalnya, kebijakan berikut menentukan URL resource sebagai jsc:add_variables.js, yang cocok dengan isi 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 gagal dan disertai error:

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

Resolusi

Pastikan format URL resource yang ditentukan di elemen <ResourceURL> atau <IncludeURL> kebijakan JavaScript sudah 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

Penyebaran proxy API melalui UI Edge atau API pengelolaan Edge gagal dengan pesan kesalahan 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

Screenshot contoh

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 dicakup dalam proxy API.

Di UI Edge, file sumber JavaScript muncul di bawah jsc di bagian Script di panel Navigator editor proxy API. Anda juga dapat menyimpan file resource di repositori tingkat organisasi dan lingkungan (misalnya, agar kode JavaScript tersedia untuk semua proxy di organisasi atau env).

Jika file resource yang ditentukan dalam kebijakan tidak dapat ditemukan di cakupan mana pun yang tersedia (proxy, lingkungan, atau organisasi), 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 kebijakannya 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 cocok dengan nilai yang diidentifikasi dalam pesan error (langkah #1 di atas). Misalnya, kebijakan berikut menetapkan referensi URL resource sebagai jsc://dependent_js.js, yang cocok dengan isi 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 organisasi atau lingkungan.

    1. Untuk memeriksa apakah file tersebut merupakan bagian dari paket Proxy API tertentu, ikuti salah satu langkah di bawah:
      1. Di UI Edge, periksa apakah file ini ada di bagian Scripts dari 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 organisasi atau lingkungan. Anda dapat menggunakan Resource Files API untuk investigasi ini.

    Jika file tidak ada di tingkat Proxy, organisasi, atau lingkungan API, maka 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, ini bukan bagian dari Proxy API. Jika file tersebut tidak ada di tingkat organisasi atau lingkungan, deployment Proxy API akan gagal dan disertai error:

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

Resolusi

Pastikan file JavaScript yang ditentukan dalam elemen <ResourceURL> dan <IncludeURL> merujuk ke file valid yang ada di tingkat Proxy API, organisasi, atau 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.

WrongResourceType

Pesan error

Penyebaran proxy API melalui UI Edge atau API pengelolaan Edge gagal dengan pesan kesalahan 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:.

Screenshot contoh

Penyebab

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

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

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

Hal ini karena 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 di mana resource yang ditetapkan dalam elemen <ResourceURL> atau <IncludeURL> cocok dengan jenis resource yang tidak valid yang diidentifikasi pada Langkah #1 di atas, maka itulah penyebab error.

    Misalnya, kebijakan berikut menentukan jenis resource sebagai node, yang cocok dengan isi 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 gagal dan disertai 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 pada 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

Penyebaran proxy API melalui UI Edge atau API pengelolaan Edge gagal dengan pesan kesalahan 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;].

Screenshot contoh

Penyebab

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

  1. Jika 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 ditetapkan dalam elemen <IncludeURL>.

Misalnya, jika elemen <IncludeURL> dideklarasikan seperti yang ditunjukkan di bawah ini, 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 kebijakannya adalah Policy-js-example:

    Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].
    
  2. Di 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 menentukan URL resource di dalamnya. Mendeklarasikan elemen <IncludeURL> bersifat opsional.

    Jika salah satu pemeriksaan di atas gagal, maka 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 gagal dan disertai error:

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

    Contoh 2: Kebijakan berikut memiliki elemen <IncludeURL> yang 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 gagal dan disertai error:

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

Resolusi

Pastikan hal berikut dalam kebijakan JavaScript:

  1. Elemen <ResourceURL> dideklarasikan dan URL resource ditentukan dalam elemen ini. Elemen <ResourceURL> adalah elemen wajib.
  2. Jika elemen <IncludeURL> dideklarasikan, URL penyertaan resource harus ditentukan dalam elemen ini. <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>