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

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

InvalidResourceUrlFormat

Hata mesajı

Edge kullanıcı arayüzü veya Edge Management API aracılığıyla bir API proxy'sinin dağıtımı şu hata mesajıyla başarısız oluyor:

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> öğesinde 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österilmiştir:

<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ı, öngörülen kalıba uymadığı için başarısız olur:

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

Teşhis

  1. JavaScript politikasında kullanılan geçersiz kaynak URL biçimini belirleyin. Bu bilgiyi hata mesajından edinebilirsiniz. Örneğin, aşağıdaki hatada geçersiz kaynak URL'si biçimi jsc:add_variables.js'dır.

      Error Deploying Revision 1 to test
        Invalid resource url format. Resource url is jsc:add_variables.js.
    
  2. Hatayı içeren 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 bir JavaScript politikası varsa hatanın nedeni budur.

    Örneğin, aşağıdaki politikada kaynak URL'si jsc:add_variables.js olarak belirtilir. Bu, hata mesajındaki URL ile eşleşir:

    <?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, 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 aracılığıyla bir API proxy'sinin dağıtımı şu hata mesajıyla başarısız oluyor:

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, mevcut olmayan bir JavaScript dosyasına referans veriyorsa 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 saklanmalıdır. Bu durumda, kaynak dosyalar API proxy'siyle sınırlandırılır.

Edge kullanıcı arayüzünde, JavaScript kaynak dosyaları API proxy düzenleyicisinin Gezgin bölmesindeki Komut Dosyaları bölümünde jsc altında görünür. Ayrıca, kaynak dosyalarını kuruluş ve ortam düzeyindeki depolarda da saklayabilirsiniz (örneğin, JavaScript kodunu bir kuruluştaki veya ortamdaki tüm proxy'ler için kullanılabilir hale getirmek için).

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

Teşhis

  1. Hatanın oluştuğu ve geçersiz kaynak URL'si referansını içeren JavaScript politikasını belirleyin. Bu bilgiyi hata mesajından edinebilirsiniz. Örneğin, aşağıdaki hatada politika adı js-TotalVariable, geçersiz kaynak URL'si referansı ise jsc://dependent_js.js'dir.

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

    <?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 API proxy paketi kapsamında olup olmadığını veya kuruluş ya da ortam kapsamında mevcut olup olmadığını kontrol edin.

    1. Dosyanın belirli bir API proxy paketi içinde 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 dosyanın mevcut olup olmadığını kontrol edin.
    2. Dosya, belirli API proxy paketi içinde değilse kuruluş veya ortam düzeyinde olup olmadığını kontrol edin. Bu inceleme için Kaynak Dosyaları API'sini kullanabilirsiniz.

    Dosya API proxy'si, kuruluş veya ortam düzeyinde mevcut değilse hatanın nedeni budur.

    Yukarıda açıklanan örnekte, geçersiz JavaScript dosya adının dependent_js.js olduğunu hatırlayı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ğini fark edeceksiniz. Bu nedenle, API Proxy'nin bir parçası değildir. Dosya kuruluş veya ortam düzeyinde de mevcut değilse API proxy'sinin dağıtımı şu hatayla 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 dosyayı ifade ettiğinden emin olun.

Yukarıda gösterilen örnek JavaScript politikasını düzeltmek için API Proxy paketine dependent_js.js dosyasını 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ünür olduğunu görebilirsiniz.

WrongResourceType

Hata mesajı

Edge kullanıcı arayüzü veya Edge Management API aracılığıyla bir API proxy'sinin dağıtımı şu hata mesajıyla başarısız oluyor:

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ışında bir kaynak türüne başvuruyorsa dağıtım sırasında oluşur.

Ö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, yanlış olan bir node kaynak türüne başvuruyor olmasıdır.

Teşhis

  1. JavaScript politikasında kullanılan geçersiz kaynak türünü belirleyin. Bu bilgiyi hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada geçersiz kaynak türü node'dır.

    Resource js_checkType.js is the wrong type. It is node: but Javascript steps use type jsc:.
    
  2. Hatayı içeren 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 bir JavaScript politikası varsa hatanın nedeni budur.

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

    <?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ü node olarak belirtildiği için (bu geçersizdir) API proxy'sinin dağıtımı şu hatayla başarısız olur:

    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ünü ifade ettiğinden 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 aracılığıyla bir API proxy'sinin dağıtımı şu hata mesajıyla başarısız oluyor:

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> öğesi bildirilmemişse veya kaynak URL bu öğede tanımlanmamışsa. <ResourceURL> öğesi zorunlu bir öğedir.
  2. <IncludeURL> öğesi tanımlanmış ancak kaynak URL'si bu öğede tanımlanmamış. <IncludeURL> öğesi isteğe bağlıdır ancak bildirilirse kaynak URL'si <IncludeURL> öğesinde belirtilmelidir.

Ö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 bilgiyi hata mesajından edinebilirsiniz. Örneğin, aşağıdaki hatada politika adı Policy-js-example'dır:

    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 yapın:

    1. <ResourceURL> öğesi bildirilmelidir ve öğede kaynak URL'si tanımlanmalıdır.
    2. <IncludeURL> öğesi tanımlanmışsa içinde bir kaynak URL'si belirtmeniz gerekir. <IncludeURL> öğesini bildirmek 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ş:

    <?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ği için API proxy'sinin dağıtımı şu hatayla başarısız oluyor:

    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> öğesinde kaynak URL'si bulunmadığından API proxy'sinin dağıtımı şu hatayla başarısız olur:

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

Çözünürlük

JavaScript politikasında aşağıdakilerin bulunduğundan emin olun:

  1. <ResourceURL> öğesi bildirilmiş ve kaynak URL'si bu öğe içinde tanımlanmıştır. <ResourceURL> öğesi zorunlu bir öğedir.
  2. <IncludeURL> öğesi bildirilirse dahil edilen kaynak URL'si bu öğe içinde tanımlanmalıdır. <IncludeURL> öğesi isteğe bağlıdır ancak bildirilirse kaynak URL'si <IncludeURL> öğesi içinde belirtilmelidir.

    Yukarıda gösterilen 1. Örnek'i düzeltmek için geçerli bir JavaScript dosyasıyla <ResourceURL> öğesini 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. örnekteki hatayı 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>