Vous consultez la documentation d'Apigee et d'Apigee hybrid.
Consultez la documentation d'Apigee Edge.
InvalidResourceUrlFormat
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 2 to prod Invalid resource url format. Resource url is py:myscript.py.
Exemple de capture d'écran
Cause
Si le format de l'URL de la ressource spécifiée dans l'élément <ResourceURL>
ou <IncludeURL>
de la règle PythonScript n'est pas valide, alors le déploiement du proxy d'API échoue.
Le format correct est le suivant :
<ResourceURL>py://file_name.py</ResourceURL> <IncludeURL>py://file_name.py</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 suit pas le modèle requis :
<ResourceURL>py:myscript.py</ResourceURL>
Diagnostic
Identifiez le format d'URL de ressource non valide utilisé dans la règle PythonScript. 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
py:myscript.py
:Invalid resource url format. Resource url is py:myscript.py.
Examinez toutes les règles PythonScript dans le proxy d'API spécifique où l'erreur s'est produite. S'il existe une règle PythonScript dans laquelle l'URL de ressource spécifiée dans l'élément
<ResourceURL>
ou<IncludeURL>
correspond à l'entrée incorrecte identifiée à l'étape 1 ci-dessus, alors 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
py:myscript.py
, qui correspond au contenu du message d'erreur :<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Script async="false" continueOnError="false" enabled="true" timeLimit="200" name="py-TotalVariable"> <DisplayName>py-TotalVariable</DisplayName> <Properties/> <ResourceURL>py:myscript.py</ResourceURL> </Script>
Comme l'URL de la ressource est spécifiée en tant que
py:myscript.py
, et qu'elle n'est donc pas valide, le déploiement du proxy d'API échoue avec l'erreur :Invalid resource url format. Resource url is py:myscript.py.
Solution
Assurez-vous que le format de l'URL de la ressource spécifié dans l'élément <ResourceURL>
de la règle PythonScript est valide. Exemple :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Script async="false" continueOnError="false" enabled="true" timeLimit="200" name="py-TotalVariable"> <DisplayName>py-TotalVariable</DisplayName> <Properties/> <ResourceURL>py://myscript.py</ResourceURL> </Script>
InvalidResourceUrlReference
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 2 to prod Invalid resource url ref py://myscript.py in policy Python_script in myorg
Exemple de capture d'écran
Cause
Si les éléments <ResourceURL>
et <IncludeURL>
font référence à un fichier PythonScript qui n'existe pas, alors le déploiement du proxy d'API échoue.
Si vous déployez un package de proxy à partir de votre machine locale, les fichiers sources PythonScript doivent être stockés sous /apiproxy/resources/py
(au niveau du proxy d'API).
Dans l'interface utilisateur Apigee, les fichiers source PythonScript apparaissent sous py dans la section "Scripts" du volet de navigation de l'éditeur de proxy d'API, comme illustré ci-dessous :
Vous pouvez également stocker des fichiers de ressources dans des dépôts au niveau de l'environnement (pour rendre le code PythonScript 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, cette erreur se produit.
Diagnostic
Identifiez la règle PythonScript où l'erreur s'est produite et la référence de l'URL de la 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
Python_script
et la référence de l'URL de ressource non valide estpy://myscript.py
:Invalid resource url ref py://myscript.py in policy Python_script in myorg
Vérifiez que la référence d'URL de ressource spécifiée dans la règle PythonScript 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
py://myscript.py
, qui correspond au contenu du message d'erreur :<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Script async="false" continueOnError="false" enabled="true" name="Python_script"> <DisplayName>Python-1</DisplayName> <Properties/> <ResourceURL>py://myscript.py</ResourceURL> </Script>
Vérifiez si le fichier identifié à l'étape 1 fait partie du package de proxy d'API spécifique ou s'il existe au niveau du champ d'application de l'environnement.
- Pour vérifier si le fichier fait partie du package proxy d'API spécifique, suivez l'une des étapes suivantes :
- Dans l'interface utilisateur Apigee, vérifiez si ce fichier se trouve dans la section "Scripts" du proxy d'API.
- Téléchargez le package du proxy d'API et recherchez le fichier s'il existe.
- 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 ci-dessus, le nom de fichier PythonScript incorrect est myscript.py. 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". En outre, le fichier n'existe pas au niveau de l'environnement. Par conséquent, le déploiement du proxy d'API échoue avec l'erreur suivante :
Invalid resource url ref py://myscript.py in policy Python_script in myorg
- Pour vérifier si le fichier fait partie du package proxy d'API spécifique, suivez l'une des étapes suivantes :
Solution
Assurez-vous que les fichiers PythonScript 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 stratégie PythonScript ci-dessus, ajoutez le fichier myscript.py au package de proxy d'API. Dans la capture d'écran ci-dessous, vous pouvez voir que les fichiers PythonScript spécifiés dans les éléments <ResourceURL>
et <IncludeURL>
sont visibles dans la section "Scripts" du package de proxys d'API :