JavaScript politikası dağıtım hatasını giderme

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

InvalidResourceUrlFormat

Hata mesajı

Edge kullanıcı arayüzü veya Edge management API üzerinden API proxy'si dağıtıldığında şu hata mesajı gösterilir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

JavaScript politikasının <ResourceURL> veya <IncludeURL> öğesi içinde belirtilen kaynak URL'sinin biçimi geçersizse API proxy'sinin dağıtımı başarısız olur.

Kaynak URL'sini belirtmek için doğru biçim aşağıda gösterildiği gibidir:

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

Örneğin, <ResourceURL> öğesi aşağıda gösterildiği gibi belirtilirse API proxy'sinin dağıtımı, belirtilen kalıbı izlemediğinden başarısız olur:

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

Teşhis

  1. JavaScript politikasında kullanılan geçersiz kaynak URL'si biçimini tanımlayın. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada geçersiz kaynak URL'si biçimi jsc:add_variables.js şeklindedir.

      Error Deploying Revision 1 to test
        Invalid resource url format. Resource url is jsc:add_variables.js.
    
  2. Hatanın oluştuğu ilgili API Proxy'sindeki tüm JavaScript politikalarını inceleyin. <ResourceURL> veya <IncludeURL> öğesinde belirtilen kaynak URL'sinin yukarıdaki 1. adımda tanımlanan geçersiz girişle eşleştiği herhangi bir JavaScript politikası varsa hatanın nedeni budur.

    Örneğin, aşağıdaki politika, kaynak URL'sini hata mesajındakiyle eşleşen jsc:add_variables.js olarak belirtir:

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

    Kaynak URL'si geçersiz olan jsc:add_variables.js olarak belirtildiğinden, API Proxy'sinin dağıtımı şu hatayla başarısız oluyor:

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

Çözünürlük

JavaScript politikasının <ResourceURL> veya <IncludeURL> öğesinde belirtilen kaynak URL biçiminin geçerli olduğundan emin olun. Örneğin:

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

Hata mesajı

Edge kullanıcı arayüzü veya Edge management API üzerinden API proxy'si dağıtıldığında şu hata mesajı gösterilir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

<ResourceURL> ve <IncludeURL> öğeleri var olmayan bir JavaScript dosyasına işaret ediyorsa API proxy'sinin dağıtımı başarısız olur.

Yerel makinenizden bir proxy paketi dağıtıyorsanız JavaScript kaynak dosyaları /apiproxy/resources/jsc altında depolanmalıdır. Bu durumda, kaynak dosyaların kapsamı API proxy'sine ayarlanır.

JavaScript kaynak dosyaları, Edge kullanıcı arayüzünde, API proxy düzenleyicisinin Gezinme bölmesindeki Komut Dosyaları bölümünde jsc'nin altında görünür. Kaynak dosyalarını kuruluş ve ortam düzeyindeki depolarda da depolayabilirsiniz (örneğin, JavaScript kodunu bir kuruluş veya env içindeki tüm proxy'ler tarafından kullanılabilmesini sağlamak için).

Politikada belirtilen kaynak dosyaları mevcut kapsamların hiçbirinde (proxy, ortam veya kuruluş) bulunamazsa bu hata oluşur.

Teşhis

  1. Hatanın oluştuğu ve geçersiz kaynak URL referansını içeren JavaScript politikasını tanımlayın. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı js-TotalVariable, geçersiz kaynak URL referansı ise jsc://dependent_js.js şeklindedir.

    Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval
    
  2. Başarısız JavaScript politikasında belirtilen kaynak URL referansının, hata mesajında tanımlanan değerle eşleştiğini doğrulayın (yukarıdaki 1. adım). Örneğin, aşağıdaki politika, kaynak URL referansını hata mesajındaki referansla eşleşen jsc://dependent_js.js olarak belirtir:

    <?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. 1. adımda tanımlanan kaynak dosyanın, belirli bir API Proxy paketinin parçası olup olmadığını veya kuruluş ya da ortam kapsamında bulunup bulunmadığını kontrol edin.

    1. Dosyanın belirli bir API Proxy paketinin parçası olup olmadığını kontrol etmek için aşağıdaki adımlardan birini uygulayın:
      1. Edge kullanıcı arayüzünde bu dosyanın API proxy'sinin Komut Dosyaları bölümünde olup olmadığını kontrol edin.
      2. API Proxy paketini indirin ve dosya varsa arama yapın.
    2. Dosya, belirli bir API Proxy paketinin parçası değilse kuruluş veya ortam düzeyinde olup olmadığını kontrol edin. Bu inceleme için Resource Files API'yi kullanabilirsiniz.

    Dosya API Proxy'si, kuruluş veya ortam düzeyinde yoksa hatanın nedeni budur.

    Yukarıda açıklanan örnekte, geçersiz JavaScript dosyası adının dependent_js.js olduğunu unutmayın. Aşağıdaki ekran görüntüsünde, politikada kaynak URL'si olarak belirtilen dosyanın Komut Dosyaları bölümünde görünmediğine dikkat edin. Bu nedenle, API Proxy'sinin bir parçası değildir. Aynı zamanda dosyanın kuruluş veya ortam düzeyinde olmaması durumunda API Proxy'sinin dağıtımı şu hatayı vererek başarısız olur:

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

Çözünürlük

<ResourceURL> ve <IncludeURL> öğelerinde belirtilen JavaScript dosyalarının API Proxy'si, kuruluş veya ortam düzeyinde mevcut olan geçerli bir dosyaya başvurduğundan emin olun.

Yukarıda gösterilen örnek JavaScript politikasını düzeltmek için dependent_js.js dosyasını API Proxy paketine ekleyin. Aşağıdaki ekran görüntüsünde, <ResourceURL> ve <IncludeURL> öğelerinde belirtilen JavaScript dosyalarının, API Proxy paketinin Komut Dosyaları bölümünde göründüğünü görebilirsiniz.

WrongResourceType

Hata mesajı

Edge kullanıcı arayüzü veya Edge management API üzerinden API proxy'si dağıtıldığında şu hata mesajı gösterilir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

Bu hata, JavaScript politikasının <ResourceURL> ve <IncludeURL> öğeleri jsc (JavaScript dosyası) dışındaki herhangi bir kaynak türüne atıfta bulunursa dağıtım sırasında ortaya çıkar.

Örneğin, <IncludeURL> öğesi aşağıda gösterildiği gibi tanımlanırsa API proxy'sinin dağıtımı başarısız olur:

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

Bunun nedeni, kaynak türünün yanlış olan bir node kaynak türünü belirtmesidir.

Teşhis

  1. JavaScript Politikası'nda kullanılan geçersiz kaynak türünü tanımlayın. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada geçersiz kaynak türü: node.

    Resource js_checkType.js is the wrong type. It is node: but Javascript steps use type jsc:.
    
  2. Hatanın oluştuğu ilgili API Proxy'sindeki tüm JavaScript politikalarını inceleyin. <ResourceURL> veya <IncludeURL> öğesinde belirtilen kaynağın yukarıdaki 1. Adımda tanımlanan geçersiz kaynak türüyle eşleştiği herhangi bir JavaScript politikası varsa hatanın nedeni budur.

    Örneğin, aşağıdaki politika, kaynak türünü hata mesajındakiyle eşleşen node olarak belirtir:

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

    Kaynak türü geçersiz olan node olarak belirtildiğinden, API Proxy'sinin dağıtımı şu hatayla başarısız oluyor:

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

Çözünürlük

JavaScript politikasındaki <ResourceURL> ve <IncludeURL> öğelerinin her zaman jsc kaynak türüne başvurduğundan emin olun.

Yukarıda gösterilen örneği düzeltmek için <ResourceURL> öğesini jsc kaynak türüne sahip olacak şekilde değiştirin.

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

Hata mesajı

Edge kullanıcı arayüzü veya Edge management API üzerinden API proxy'si dağıtıldığında şu hata mesajı gösterilir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

JavaScript politikasının dağıtımı, aşağıdaki senaryolarda bu hatayla başarısız olabilir:

  1. <ResourceURL> öğesinin bildirilmemesi veya kaynak URL'sinin bu öğe içinde tanımlanmamış olması. <ResourceURL> öğesi zorunlu bir öğe.
  2. <IncludeURL> öğesi bildirildi ancak kaynak URL'si bu öğe içinde tanımlanmadı. <IncludeURL> öğesi isteğe bağlıdır ancak belirtilmesi durumunda kaynak URL'sinin <IncludeURL> öğesi içinde belirtilmesi gerekir.

Örneğin, <IncludeURL> öğesi aşağıda gösterildiği gibi tanımlanırsa API proxy'sinin dağıtımı başarısız olur:

<IncludeURL></IncludeURL>

Teşhis

  1. Hatanın oluştuğu JavaScript politikasını belirleyin. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı Policy-js-example şeklindedir:

    Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].
    
  2. Başarısız olan JavaScript politikası XML dosyasında aşağıdaki kontrolleri gerçekleştirin:

    1. <ResourceURL> öğesi tanımlanmalıdır ve kaynak URL'si tanımlanmış olmalıdır.
    2. <IncludeURL> öğesi tanımlanırsa içinde bir kaynak URL'si belirtmeniz gerekir. <IncludeURL> öğesini tanımlamak isteğe bağlıdır.

    Yukarıdaki kontrollerden herhangi biri başarısız olursa hatanın nedeni budur.

    1. Örnek: Aşağıdaki politikada <ResourceURL> öğesi bildirilmemiştir:

    <?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> öğesi bildirilmediğinden API Proxy'sinin dağıtımı şu hatayı vererek başarısız olur:

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

    2. Örnek: Aşağıdaki politikada boş bir <IncludeURL> öğesi var.

  <?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> öğesinin kaynak URL'si bulunmadığından API Proxy'sinin dağıtımı şu hatayı vererek başarısız olur:

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

Çözünürlük

JavaScript politikasında şunlardan emin olun:

  1. <ResourceURL> öğesi tanımlanır ve kaynak URL'si bu öğe içinde tanımlanır. <ResourceURL> öğesi zorunlu bir öğe.
  2. <IncludeURL> öğesi tanımlanırsa dahil etme kaynak URL'si bu öğe içinde tanımlanmalıdır. <IncludeURL> öğesi isteğe bağlıdır ancak belirtilmesi durumunda kaynak URL'sinin <IncludeURL> öğesi içinde belirtilmesi gerekir.

    Yukarıda gösterilen 1. Örnek'i düzeltmek için <ResourceURL> öğesini geçerli bir JavaScript dosyasına ekleyin:

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

    Yukarıda gösterilen 2. Örnek'i düzeltmek için <IncludeURL> öğesine geçerli bir JavaScript dosyası ekleyin.

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