Estás consultando la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
InvalidResourceUrlFormat
Mensaje de error
La implementación de un proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Deploying Revision revision_number to environment Invalid resource url format. Resource url is invalid_URL.
Ejemplo de mensaje de error
Error Deploying Revision 2 to prod Invalid resource url format. Resource url is py:myscript.py.
Captura de pantalla de ejemplo
Causa
Si el formato de la URL del recurso especificado en el elemento <ResourceURL>
o <IncludeURL>
de la política PythonScript no es válido, se producirá un error al implementar el proxy de API.
El formato correcto es el que se muestra a continuación:
<ResourceURL>py://file_name.py</ResourceURL> <IncludeURL>py://file_name.py</IncludeURL>
Por ejemplo, si el elemento <ResourceURL>
se especifica como se muestra a continuación, la implementación del proxy de API falla porque no sigue el patrón obligatorio:
<ResourceURL>py:myscript.py</ResourceURL>
Diagnóstico
Identifica el formato de URL de recurso no válido que se ha usado en la política PythonScript. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el formato de URL de recurso no válido es
py:myscript.py
:Invalid resource url format. Resource url is py:myscript.py.
Examina todas las políticas de PythonScript del proxy de API específico en el que se ha producido el error. Si hay alguna política de PythonScript en la que la URL del recurso especificada en el elemento
<ResourceURL>
o<IncludeURL>
coincida con la entrada no válida identificada en el paso 1 anterior, esa será la causa del error.Por ejemplo, la siguiente política especifica la URL del recurso como
py:myscript.py
, que coincide con lo que aparece en el mensaje de error:<?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>
Como la URL del recurso se ha especificado como
py:myscript.py
, que no es válida, la implementación del proxy de API falla y se muestra el siguiente error:Invalid resource url format. Resource url is py:myscript.py.
Resolución
Asegúrate de que el formato de la URL del recurso especificado en el elemento <ResourceURL>
de la política PythonScript sea válido. Por ejemplo:
<?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
Mensaje de error
La implementación de un proxy de API a través de la interfaz de usuario o la API de Apigee falla y se muestra este mensaje de error:
Error Deploying Revision revision_number to environment Invalid resource url ref invalid_reference in policy policy_name in org_name
Ejemplo de mensaje de error
Error Deploying Revision 2 to prod Invalid resource url ref py://myscript.py in policy Python_script in myorg
Captura de pantalla de ejemplo
Causa
Si los elementos <ResourceURL>
y <IncludeURL>
hacen referencia a un archivo PythonScript que no existe, se producirá un error al implementar el proxy de la API.
Si vas a desplegar un paquete de proxy desde tu máquina local, los archivos de origen de PythonScript deben almacenarse en /apiproxy/resources/py
(en el ámbito del proxy de API).
En la interfaz de usuario de Apigee, los archivos de origen de PythonScript aparecen en py en la sección Scripts del panel de navegación del editor de proxy de API, como se muestra a continuación:
También puedes almacenar archivos de recursos en repositorios de nivel de entorno (por ejemplo, para que el código de PythonScript esté disponible para todos los proxies de un entorno). Si no se encuentra alguno de los archivos de recursos especificados en la política, se producirá este error.
Diagnóstico
Identifica la política de PythonScript en la que se ha producido el error y la referencia de URL de recurso no válida. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es
Python_script
y la referencia de URL de recurso no válida espy://myscript.py
:Invalid resource url ref py://myscript.py in policy Python_script in myorg
Verifica que la referencia de la URL del recurso especificada en la política de PythonScript fallida coincida con el valor identificado en el mensaje de error (paso 1 anterior). Por ejemplo, la siguiente política especifica la referencia de la URL del recurso como
py://myscript.py
, que coincide con lo que aparece en el mensaje de error:<?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>
Comprueba si el archivo identificado en el paso 1 forma parte del paquete de proxy de API específico o si se encuentra en el ámbito del entorno.
- Para comprobar si el archivo forma parte del paquete de proxy de API específico, sigue uno de estos pasos:
- En la interfaz de usuario de Apigee, comprueba si este archivo está en la sección Scripts del proxy de API.
- Descarga el paquete de proxy de API y busca si el archivo existe.
- Si el archivo no forma parte del paquete de proxy de API específico, comprueba si existe en el nivel del entorno. Puedes usar la API Resource Files para esta investigación.
Si el archivo no existe en el nivel del proxy de API o del entorno, esa es la causa del error.
En el ejemplo anterior, el nombre de archivo de PythonScript no válido es myscript.py. En la captura de pantalla que se muestra a continuación, observe que el archivo especificado como URL de recurso en la política no aparece en la sección Scripts. Además, el archivo no existe en el nivel del entorno. Por lo tanto, el despliegue del proxy de API falla y se muestra el siguiente error:
Invalid resource url ref py://myscript.py in policy Python_script in myorg
- Para comprobar si el archivo forma parte del paquete de proxy de API específico, sigue uno de estos pasos:
Resolución
Asegúrate de que los archivos PythonScript especificados en los elementos <ResourceURL>
y <IncludeURL>
hagan referencia a un archivo válido que exista en el nivel del proxy de la API o del entorno.
Para corregir la política de PythonScript de ejemplo que se muestra arriba, añade el archivo myscript.py al paquete del proxy de API. En la captura de pantalla que se muestra a continuación, puedes ver que los archivos PythonScript especificados en los elementos <ResourceURL>
y <IncludeURL>
están visibles en la sección Scripts del paquete API Proxy: