Pemecahan masalah error deployment kebijakan JavaScript

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

InvalidResourceUrlFormat

Pesan error

Deployment proxy API melalui UI Edge atau Edge management API 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

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, maka deployment proxy API akan gagal karena tidak mengikuti pola yang ditentukan:

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

Diagnosis

  1. Identifikasi format URL resource 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 yang mana URL resource yang ditentukan dalam elemen <ResourceURL> atau <IncludeURL> cocok dengan entri tidak valid yang diidentifikasi pada langkah #1 di atas, berarti 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 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 Edge atau Edge management API 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

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 komputer lokal, file sumber JavaScript harus disimpan di /apiproxy/resources/jsc. Dalam hal ini, file sumber dicakupkan ke proxy API.

Di UI Edge, file sumber JavaScript muncul di bawah jsc di bagian Scripts pada panel Navigator editor proxy API. Anda juga dapat menyimpan file resource di repositori tingkat organisasi dan lingkungan (misalnya, untuk membuat kode JavaScript tersedia bagi semua proxy dalam org 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 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. Verifikasi bahwa 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 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 file langkah #1 merupakan 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 berikut:
      1. Di UI Edge, periksa apakah file ini berada di bagian Script pada proxy API.
      2. Download paket Proxy API dan telusuri apakah filenya 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 Proxy API, organisasi, 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, itu bukan bagian dari Proxy API. Jika file tidak ada di tingkat organisasi atau lingkungan, deployment Proxy API akan gagal dengan 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 lingkungan, organisasi, atau Proxy API.

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

Deployment proxy API melalui UI Edge atau Edge management API 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

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 merujuk pada jenis resource node yang salah.

Diagnosis

  1. Identifikasi jenis resource 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 yang mana resource yang ditentukan dalam elemen <ResourceURL> atau <IncludeURL> cocok dengan jenis resource tidak valid yang diidentifikasi pada Langkah #1 di atas, berarti 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 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 Edge atau Edge management API 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

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. 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, berarti itulah penyebab error.

    Contoh 1: Kebijakan berikut tidak mendeklarasikan elemen <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>
    

    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 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 resource yang disertakan harus ditentukan dalam elemen ini. <IncludeURL> bersifat opsional, tetapi jika dideklarasikan, URL resource harus ditentukan 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>