Résolution des erreurs de déploiement d'une règle JavaScript

Vous consultez la documentation d'Apigee X.
Consultez la documentation d'Apigee Edge.

Format d'URL de la ressource non valide

Message d'erreur

Le déploiement d'un proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue et renvoie le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors du déploiement de la révision 1 sur "test".

Cause

Si le format de l'URL de ressource spécifiée dans l'élément <ResourceURL> ou <IncludeURL> de la règle JavaScript n'est pas valide, le déploiement du proxy d'API échoue.

Le format correct pour spécifier l'URL de la ressource est le suivant :

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

Par exemple, si l'élément <ResourceURL> est spécifié comme indiqué ci-dessous, le déploiement du proxy d'API échoue, car il ne respecte pas le modèle prescrit :

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

Diagnostic

  1. Identifiez le format d'URL de ressource non valide utilisé dans la règle JavaScript. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le format de l'URL de ressource non valide est jsc:add_variables.js :

      Error Deploying Revision 1 to test
        Invalid resource url format. Resource url is jsc:add_variables.js.
    
  2. Examinez toutes les règles JavaScript dans le proxy d'API spécifique où l'erreur s'est produite. S'il existe une règle JavaScript dans laquelle l'URL de la ressource spécifiée dans <ResourceURL> ou l'élément <IncludeURL> correspond à l'entrée incorrecte identifiée à l'étape 1 ci-dessus, il s'agit de la cause de l'erreur.

    Par exemple, la règle suivante spécifie l'URL de la ressource sous la forme jsc:add_variables.js, qui correspond au contenu du message d'erreur :

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

    Comme l'URL de la ressource est spécifiée en tant que jsc:add_variables.js, ce qui n'est pas valide, le déploiement du proxy d'API échoue avec l'erreur :

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

Solution

Assurez-vous que le format de l'URL de la ressource spécifié dans l'élément <ResourceURL> ou <IncludeURL> de la règle JavaScript est valide. Exemple :

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

Référence d'URL de la ressource non valide

Message d'erreur

Le déploiement d'un proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue et renvoie le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors du déploiement de la révision 8 sur &quot;test&quot;.

Cause

Si les éléments <ResourceURL> et <IncludeURL> font référence à un fichier JavaScript qui n'existe pas, le déploiement du proxy d'API échoue.

Si vous déployez un groupe de proxys à partir de votre ordinateur local, les fichiers sources JavaScript doivent être stockés dans /apiproxy/resources/jsc. Dans ce cas, le champ d'application des fichiers sources est limité au proxy d'API.

Dans l'interface utilisateur Apigee, les fichiers sources JavaScript apparaissent sous jsc dans la section "Scripts" du volet de navigation de l'éditeur de proxy d'API. Vous pouvez également stocker des fichiers de ressources dans des dépôts au niveau de l'environnement (pour rendre le code JavaScript accessible à tous les proxys d'une organisation ou d'un environnement, par exemple).

Si des fichiers de ressources spécifiés dans la règle sont introuvables dans les champs d'application disponibles (proxy ou environnement), cette erreur se produit.

Diagnostic

  1. Identifiez la règle JavaScript à l'origine de l'erreur et contenant la référence de l'URL de ressource non valide. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est js-TotalVariable et la référence de l'URL de ressource non valide est jsc://dependent_js.js :

    Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval
    
  2. Vérifiez que la référence de l'URL de ressource spécifiée dans la règle JavaScript défaillante correspond à la valeur identifiée dans le message d'erreur (étape 1 ci-dessus). Par exemple, la règle suivante spécifie la référence de l'URL de la ressource en tant que jsc://dependent_js.js, qui correspond au contenu du message d'erreur :

    <?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. Vérifiez si le fichier source identifié à l'étape 1 fait partie du groupe de proxys d'API spécifique ou s'il existe au niveau du champ d'application de l'environnement.

    1. Pour vérifier si le fichier fait partie du package proxy d'API spécifique, suivez l'une des étapes suivantes :
      1. Dans l'interface utilisateur Apigee, vérifiez si ce fichier se trouve dans la section "Scripts" du proxy d'API.
      2. Téléchargez le package du proxy d'API et recherchez le fichier s'il existe.
    2. Si le fichier ne fait pas partie du package de proxys d'API spécifique, vérifiez alors s'il existe au niveau de l'environnement. Vous pouvez utiliser l'API Resource File pour cette enquête.

    Si le fichier n'existe pas au niveau du proxy d'API ou de l'environnement, alors il s'agit de la cause de l'erreur.

    Dans l'exemple décrit ci-dessus, n'oubliez pas que le nom du fichier JavaScript non valide est dependent_js.js. Dans la capture d'écran ci-dessous, vous pouvez remarquer que le fichier spécifié en tant qu'URL de ressource dans la règle n'apparaît pas dans la section "Scripts". Par conséquent, il ne fait pas partie du proxy API. Si le fichier n'existe pas au niveau de l'environnement, le déploiement du proxy d'API échoue avec ce message d'erreur :

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

    Erreur d&#39;URL de ressource non valide

Solution

Assurez-vous que les fichiers JavaScript spécifiés dans les éléments <ResourceURL> et <IncludeURL> font référence à un fichier valide existant au niveau du proxy de l'API ou de l'environnement.

Pour corriger l'exemple de règle JavaScript présenté ci-dessus, ajoutez le fichier dependent_js.js au groupe de proxys d'API. Dans la capture d'écran ci-dessous, vous pouvez voir que les fichiers JavaScript spécifiés dans les éléments <ResourceURL> et <IncludeURL> sont visibles dans la section "Scripts" du groupe proxy API.

Exemple corrigé

WrongResourceType

Message d'erreur

Le déploiement d'un proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue et renvoie le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors du déploiement de la révision 2 sur &quot;test&quot;.

Cause

Cette erreur se produit lors du déploiement si les éléments <ResourceURL> et <IncludeURL> de la règle JavaScript font référence à un type de ressource autre que jsc (fichier JavaScript).

Par exemple, si l'élément <IncludeURL> est déclaré comme indiqué ci-dessous, le déploiement du proxy d'API échoue :

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

En effet, il fait référence à un type de ressource node, ce qui est incorrect.

Diagnostic

  1. Identifiez le type de ressource non valide utilisé dans la règle JavaScript. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le type de ressource non valide est node.

    Resource js_checkType.js is the wrong type. It is node: but JavaScript steps use type jsc:.
    
  2. Examinez toutes les règles JavaScript dans le proxy d'API spécifique où l'erreur s'est produite. S'il existe une règle JavaScript dans laquelle la ressource spécifiée dans <ResourceURL> ou l'élément <IncludeURL> correspond au type de ressource non valide identifié à l'étape 1 ci-dessus, il s'agit de la cause de l'erreur.

    Par exemple, la règle suivante spécifie le type de ressource en tant que node, ce qui correspond au contenu du message d'erreur :

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

    Comme l'URL de la ressource est spécifiée en tant que node, ce qui n'est pas valide, le déploiement du proxy d'API échoue avec l'erreur :

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

Solution

Assurez-vous que les éléments <ResourceURL> et <IncludeURL> de la règle JavaScript font toujours référence au type de ressource jsc.

Pour corriger l'exemple présenté ci-dessus, modifiez l'élément <ResourceURL> de sorte qu'il affiche le type de ressource 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

Message d'erreur

Le déploiement d'un proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue et renvoie le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors de l&#39;enregistrement de la révision 10

Cause

Le déploiement de la règle JavaScript peut échouer avec cette erreur dans les cas suivants :

  1. Si l'élément <ResourceURL> n'est pas déclaré ou si l'URL de la ressource n'est pas définie dans cet élément. L'élément <ResourceURL> est obligatoire.
  2. L'élément <IncludeURL> est déclaré, mais l'URL de la ressource n'est pas définie dans cet élément. L'élément <IncludeURL> est facultatif, mais s'il est déclaré, l'URL de la ressource doit être spécifiée dans l'élément <IncludeURL>.

Par exemple, si l'élément <IncludeURL> est déclaré comme indiqué ci-dessous, le déploiement du proxy d'API échoue :

<IncludeURL></IncludeURL>

Diagnostic

  1. Identifiez la règle JavaScript où l'erreur s'est produite. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est Policy-js-example :

    Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].
    
  2. Dans le fichier XML de la règle défaillante, procédez aux vérifications suivantes :

    1. L'élément <ResourceURL> doit être déclaré et l'URL de la ressource doit être définie.
    2. Si l'élément <IncludeURL> est déclaré, vous devez spécifier une URL de ressource dans cet élément. La déclaration de l'élément <IncludeURL> est facultative.

    Si l'une des vérifications ci-dessus échoue, il s'agit de la cause de l'erreur.

    Exemple 1 : Dans la règle suivante, l'élément <ResourceURL> n'est pas déclaré :

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

    Comme l'élément <ResourceURL> n'est pas déclaré, le déploiement du proxy d'API échoue avec l'erreur suivante :

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

    Exemple 2 : Dans la règle suivante, l'élément <IncludeURL> est vide.

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

Comme l'élément <IncludeURL> ne contient pas l'URL de la ressource, le déploiement du proxy d'API échoue avec l'erreur suivante :

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

Solution

Vérifiez les points suivants dans la règle JavaScript :

  1. L'élément <ResourceURL> est déclaré et l'URL de la ressource est définie dans cet élément. L'élément <ResourceURL> est obligatoire.
  2. Si l'élément <IncludeURL> est déclaré, l'URL de la ressource incluse doit être définie dans cet élément. <IncludeURL> est facultatif, mais s'il est déclaré, l'URL de la ressource doit être spécifiée dans l'élément <IncludeURL>.

    Pour corriger l'exemple 1 ci-dessus, incluez l'élément <ResourceURL> avec un fichier JavaScript valide :

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

    Pour corriger l'exemple 2 ci-dessus, incluez un fichier JavaScript valide dans l'élément <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>