Risoluzione degli errori di deployment dei criteri JavaScript

Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.

InvalidResourceUrlFormat

Messaggio di errore

Il deployment di un proxy API tramite la UI o l'API Apigee non riesce e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il deployment della revisione 1 per il test.

Causa

Se il formato dell'URL della risorsa specificato all'interno dell'elemento <ResourceURL> o <IncludeURL> della norma JavaScript non è valido, il deployment del proxy API non va a buon fine.

Il formato corretto per specificare l'URL della risorsa è mostrato di seguito:

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

Ad esempio, se l'elemento <ResourceURL> è specificato come mostrato di seguito, il deployment del proxy API non riesce perché non segue il pattern prescritto:

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

Diagnosi

  1. Identifica il formato URL risorsa non valido utilizzato nelle norme JavaScript. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nel seguente errore, il formato dell'URL della risorsa non valido è jsc:add_variables.js.

      Error Deploying Revision 1 to test
        Invalid resource url format. Resource url is jsc:add_variables.js.
    
  2. Esamina tutte le norme JavaScript nel proxy API specifico in cui si è verificato l'errore. Se esiste una policy JavaScript in cui l'URL della risorsa specificato nell'elemento <ResourceURL> o <IncludeURL> corrisponde alla voce non valida identificata nel passaggio 1 precedente, questo è il motivo dell'errore.

    Ad esempio, la seguente policy specifica l'URL della risorsa come jsc:add_variables.js, che corrisponde a quanto riportato nel messaggio di errore:

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

    Poiché l'URL della risorsa è specificato come jsc:add_variables.js, che non è valido, il deployment del proxy API non riesce e viene visualizzato l'errore:

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

Risoluzione

Assicurati che il formato dell'URL della risorsa specificato nell'elemento <ResourceURL> o <IncludeURL> del criterio JavaScript sia valido. Ad esempio:

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

Messaggio di errore

Il deployment di un proxy API tramite la UI o l'API Apigee non riesce e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il deployment della revisione 8 per il test.

Causa

Se gli elementi <ResourceURL> e <IncludeURL> fanno riferimento a un file JavaScript inesistente, il deployment del proxy API non va a buon fine.

Se stai eseguendo il deployment di un bundle proxy dalla tua macchina locale, i file sorgente JavaScript devono essere archiviati in /apiproxy/resources/jsc. In questo caso, i file sorgente sono limitati al proxy API.

Nell'interfaccia utente di Apigee, i file di origine JavaScript vengono visualizzati in jsc nella sezione Script del riquadro di navigazione dell'editor del proxy API. Puoi anche archiviare i file di risorse nei repository a livello di ambiente (per rendere disponibile il codice JavaScript a tutti i proxy in un'organizzazione o in un ambiente, ad esempio).

Questo errore si verifica se non è possibile trovare nessuno dei file di risorse specificati nel criterio in nessuno degli ambiti disponibili (proxy o ambiente).

Diagnosi

  1. Identifica la policy JavaScript in cui si è verificato l'errore e che contiene il riferimento all'URL della risorsa non valido. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nel seguente errore, il nome della norma è js-TotalVariable e il riferimento all'URL della risorsa non valido è jsc://dependent_js.js.

    Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval
    
  2. Verifica che il riferimento all'URL della risorsa specificato nel criterio JavaScript non riuscito corrisponda al valore identificato nel messaggio di errore (passaggio 1 sopra). Ad esempio, la seguente policy specifica il riferimento all'URL della risorsa come jsc://dependent_js.js, che corrisponde a quanto riportato nel messaggio di errore:

    <?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. Controlla se il file di origine identificato nel file del passaggio 1 fa parte del bundle del proxy API specifico o esiste nell'ambito dell'ambiente.

    1. Per verificare se il file fa parte del pacchetto proxy API specifico, segui uno dei passaggi riportati di seguito:
      1. Nell'interfaccia utente Apigee, verifica se questo file si trova nella sezione Script del proxy API.
      2. Scarica il pacchetto proxy API e cerca se il file esiste.
    2. Se il file non fa parte del bundle del proxy API specifico, controlla se esiste a livello di ambiente. Per questa indagine puoi utilizzare l'API Resource Files.

    Se il file non esiste a livello di proxy API o ambiente, questo è il motivo dell'errore.

    Nell'esempio descritto sopra, ricorda che il nome del file JavaScript non valido è dependent_js.js. Nello screenshot riportato di seguito, nota che il file specificato come URL risorsa nelle norme non viene visualizzato nella sezione Script. Pertanto, non fa parte del proxy API. Se il file non esiste anche a livello di ambiente, il deployment del proxy API non va a buon fine e viene visualizzato il seguente errore:

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

    Errore URL risorsa non valido.

Risoluzione

Assicurati che i file JavaScript specificati negli elementi <ResourceURL> e <IncludeURL> facciano riferimento a un file valido esistente a livello di proxy API o ambiente.

Per correggere la policy JavaScript di esempio mostrata sopra, aggiungi il file dependent_js.js al bundle del proxy API. Nello screenshot riportato di seguito puoi vedere che i file JavaScript specificati negli elementi <ResourceURL> e <IncludeURL> sono visibili nella sezione Script del bundle del proxy API.

Esempio corretto.

WrongResourceType

Messaggio di errore

Il deployment di un proxy API tramite la UI o l'API Apigee non riesce e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il deployment della revisione 2 per il test.

Causa

Questo errore si verifica durante il deployment se gli elementi <ResourceURL> e <IncludeURL> della policy JavaScript fanno riferimento a un tipo di risorsa diverso da jsc (file JavaScript).

Ad esempio, se l'elemento <IncludeURL> viene dichiarato come mostrato di seguito, il deployment del proxy API non va a buon fine:

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

Questo perché fa riferimento a un tipo di risorsa node errato.

Diagnosi

  1. Identifica il tipo di risorsa non valido utilizzato nella policy JavaScript. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nel seguente errore, il tipo di risorsa non valido è node.

    Resource js_checkType.js is the wrong type. It is node: but JavaScript steps use type jsc:.
    
  2. Esamina tutte le norme JavaScript nel proxy API specifico in cui si è verificato l'errore. Se esiste una policy JavaScript in cui la risorsa specificata nell'elemento <ResourceURL> o <IncludeURL> corrisponde al tipo di risorsa non valido identificato nel passaggio 1 precedente, questa è la causa dell'errore.

    Ad esempio, la seguente policy specifica il tipo di risorsa come node, che corrisponde a quanto riportato nel messaggio di errore:

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

    Poiché il tipo di risorsa è specificato come node, che non è valido, il deployment del proxy API non va a buon fine e viene visualizzato il seguente errore:

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

Risoluzione

Assicurati che gli elementi <ResourceURL> e <IncludeURL> nella norma JavaScript facciano sempre riferimento al tipo di risorsa jsc.

Per correggere l'esempio mostrato sopra, modifica l'elemento <ResourceURL> in modo che abbia il tipo di risorsa 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

Messaggio di errore

Il deployment di un proxy API tramite la UI o l'API Apigee non riesce e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 10.

Causa

Il deployment del criterio JavaScript può non riuscire con questo errore nei seguenti scenari:

  1. Se l'elemento <ResourceURL> non è dichiarato o se l'URL della risorsa non è definito all'interno di questo elemento. L'elemento <ResourceURL> è obbligatorio.
  2. L'elemento <IncludeURL> è dichiarato, ma l'URL della risorsa non è definito al suo interno. L'elemento <IncludeURL> è facoltativo, ma se viene dichiarato, l'URL della risorsa deve essere specificato all'interno dell'elemento <IncludeURL>.

Ad esempio, se l'elemento <IncludeURL> viene dichiarato come mostrato di seguito, il deployment del proxy API non va a buon fine:

<IncludeURL></IncludeURL>

Diagnosi

  1. Identifica le norme JavaScript in cui si è verificato l'errore. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nel seguente errore, il nome della policy è Policy-js-example:

    Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].
    
  2. Nel file XML dei criteri JavaScript non riusciti, esegui i seguenti controlli:

    1. L'elemento <ResourceURL> deve essere dichiarato e deve avere l'URL della risorsa definito.
    2. Se l'elemento <IncludeURL> è dichiarato, devi specificare un URL della risorsa al suo interno. La dichiarazione dell'elemento <IncludeURL> è facoltativa.

    Se uno dei controlli precedenti non va a buon fine, questo è il motivo dell'errore.

    Esempio 1: la seguente policy non ha dichiarato l'elemento <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>
    

    Poiché l'elemento <ResourceURL> non è dichiarato, il deployment del proxy API non riesce e viene visualizzato l'errore:

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

    Esempio 2: la seguente policy ha un elemento <IncludeURL> vuoto.

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

Poiché l'elemento <IncludeURL> non ha l'URL della risorsa, il deployment del proxy API non va a buon fine e viene visualizzato l'errore:

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

Risoluzione

Assicurati che nella policy JavaScript siano presenti i seguenti elementi:

  1. L'elemento <ResourceURL> è dichiarato e l'URL della risorsa è definito al suo interno. L'elemento <ResourceURL> è obbligatorio.
  2. Se viene dichiarato l'elemento <IncludeURL>, l'URL della risorsa di inclusione deve essere definito all'interno di questo elemento. L'elemento <IncludeURL> è facoltativo, ma se viene dichiarato, l'URL della risorsa deve essere specificato all'interno dell'elemento <IncludeURL>.

    Per correggere l'esempio 1 mostrato sopra, includi l'elemento <ResourceURL> con un file JavaScript valido:

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

    Per correggere l'esempio 2 mostrato sopra, includi un file JavaScript valido nell'elemento <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>