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 l'API o l'interfaccia utente di Apigee non va a buon fine con 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> del criterio JavaScript non è valido, il deployment del proxy API non va a buon fine.

Il formato corretto per specificare l'URL della risorsa è il seguente:

<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 va a buon fine perché non segue lo schema prescritto:

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

Diagnosi

  1. Identifica il formato dell'URL della risorsa non valido utilizzato nel criterio JavaScript. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, 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 tutti i criteri JavaScript nel proxy API specifico in cui si è verificato l'errore. Se esiste una norma JavaScript in cui l'URL della risorsa specificato nell'elemento <ResourceURL> o <IncludeURL> corrisponde alla voce non valida identificata nel passaggio 1 qui sopra, questa è la causa dell'errore.

    Ad esempio, il seguente criterio specifica l'URL della risorsa come jsc:add_variables.js, che corrisponde a quanto indicato 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, non valido, il deployment del proxy API non riesce con 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 l'API o l'interfaccia utente di Apigee non va a buon fine con 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 non esistente, il deployment del proxy API non va a buon fine.

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

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

Questo errore si verifica se i file di risorse specificati nel criterio non sono disponibili in nessuno degli ambiti disponibili (proxy o ambiente).

Diagnosi

  1. Identifica il criterio 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, nell'errore seguente, il nome del criterio è 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 norma specifica il riferimento all'URL della risorsa come jsc://dependent_js.js, che corrisponde a quanto indicato 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. Verifica che il file di origine identificato nel passaggio 1 faccia parte del bundle del proxy API specifico o esista 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 di Apigee, controlla se questo file si trova nella sezione Script del proxy API.
      2. Scarica il bundle API Proxy e controlla 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 di ambiente, è la causa dell'errore.

    Nell'esempio descritto sopra, ricorda che il nome del file JavaScript non valido è dependent_js.js. Nello screenshot seguente, tieni presente che il file specificato come URL della risorsa nel criterio 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 con l'errore:

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

    Errore relativo all&#39;URL della 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 di ambiente.

Per correggere le norme JavaScript di esempio mostrate sopra, aggiungi il file dependent_js.js al bundle del proxy API. Nello screenshot seguente puoi vedere che i file JavaScript specificati negli elementi <ResourceURL> e <IncludeURL> sono visibili nella sezione Script del bundle API Proxy.

Esempio corretto.

WrongResourceType

Messaggio di errore

Il deployment di un proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con 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> del criterio JavaScript fanno riferimento a un tipo di risorsa diverso da jsc (file JavaScript).

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

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

Questo perché si riferisce a un tipo di risorsa node errato.

Diagnosi

  1. Identifica il tipo di risorsa non valido utilizzato nel criterio JavaScript. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, 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 tutti i criteri JavaScript nel proxy API specifico in cui si è verificato l'errore. Se esiste un criterio JavaScript in cui la risorsa specificata nell'elemento <ResourceURL> o <IncludeURL> corrisponde al tipo di risorsa non valido identificato nel passaggio 1 qui sopra, è questa la causa dell'errore.

    Ad esempio, il seguente criterio specifica il tipo di risorsa come node, che corrisponde a quanto indicato 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, non valido, il deployment del proxy API non riesce con l'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> nel criterio 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 l'API o l'interfaccia utente di Apigee non va a buon fine con 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 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>.

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

<IncludeURL></IncludeURL>

Diagnosi

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

    Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].
    
  2. Nel file XML del criterio JavaScript non riuscito, 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, è la causa dell'errore.

    Esempio 1: la seguente norma non ha l'elemento <ResourceURL> dichiarato:

    <?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 va a buon fine con l'errore:

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

    Esempio 2: il seguente criterio contiene 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 con l'errore:

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

Risoluzione

Assicurati quanto segue nel criterio JavaScript:

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

    Per correggere l'esempio 1 riportato 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>