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 2 to prod Invalid resource url format. Resource url is py:myscript.py.
Screenshot di esempio
Causa
Se il formato dell'URL della risorsa specificato all'interno dell'elemento <ResourceURL>
o <IncludeURL>
del
criterio PythonScript non è valido, il deployment del proxy API non va a buon fine.
Il formato corretto è il seguente:
<ResourceURL>py://file_name.py</ResourceURL> <IncludeURL>py://file_name.py</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 il pattern richiesto:
<ResourceURL>py:myscript.py</ResourceURL>
Diagnosi
Identifica il formato dell'URL della risorsa non valido utilizzato nel criterio PythonScript. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, il formato dell'URL della risorsa non valido è
py:myscript.py
:Invalid resource url format. Resource url is py:myscript.py.
Esamina tutti i criteri PythonScript nel proxy API specifico in cui si è verificato l'errore. Se esiste un criterio PythonScript 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
py:myscript.py
, che corrisponde a quanto indicato nel messaggio di errore:<?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>
Poiché l'URL della risorsa è specificato come
py:myscript.py
, non valido, il deployment del proxy API non riesce con l'errore:Invalid resource url format. Resource url is py:myscript.py.
Risoluzione
Assicurati che il formato dell'URL della risorsa specificato nell'elemento <ResourceURL>
del criterio PythonScript sia valido. Ad esempio:
<?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
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 2 to prod Invalid resource url ref py://myscript.py in policy Python_script in myorg
Screenshot di esempio
Causa
Se gli elementi <ResourceURL>
e <IncludeURL>
fanno riferimento a un file PythonScript
che non esiste, il deployment del proxy API non va a buon fine.
Se esegui il deployment di un bundle proxy dalla tua macchina locale, i file di codice sorgente PythonScript devono essere archiviati in /apiproxy/resources/py
(nell'ambito del proxy API).
Nell'interfaccia utente di Apigee, i file di origine PythonScript vengono visualizzati in py nella sezione Script del riquadro Navigator dell'editor dell'proxy API, come mostrato di seguito:
Puoi anche archiviare i file di risorse nei repository a livello di ambiente (ad esempio, per rendere il codice PythonScript disponibile per tutti i proxy in un ambiente). Questo errore si verifica se non è possibile trovare i file di risorse specificati nel criterio.
Diagnosi
Identifica il criterio PythonScript in cui si è verificato l'errore e 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 è
Python_script
e il riferimento all'URL della risorsa non valido èpy://myscript.py
:Invalid resource url ref py://myscript.py in policy Python_script in myorg
Verifica che il riferimento all'URL della risorsa specificato nel criterio PythonScript 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
py://myscript.py
, che corrisponde a quanto indicato nel messaggio di errore:<?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>
Verifica se il file identificato nel passaggio 1 fa parte del bundle del proxy API specifico o se esiste nell'ambito dell'ambiente.
- Per verificare se il file fa parte del pacchetto proxy API specifico, segui uno dei passaggi riportati di seguito:
- Nell'interfaccia utente di Apigee, controlla se questo file si trova nella sezione Script del proxy API.
- Scarica il bundle API Proxy e controlla se il file esiste.
- 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 precedente, il nome file PythonScript non valido è myscript.py. Nello screenshot seguente, tieni presente che il file specificato come URL della risorsa nel criterio non viene visualizzato nella sezione Script. Inoltre, il file non esiste a livello di ambiente. Di conseguenza, il deployment del proxy API non va a buon fine con l'errore:
Invalid resource url ref py://myscript.py in policy Python_script in myorg
- Per verificare se il file fa parte del pacchetto proxy API specifico, segui uno dei passaggi riportati di seguito:
Risoluzione
Assicurati che i file PythonScript specificati negli elementi <ResourceURL>
e <IncludeURL>
facciano riferimento a un file valido esistente a livello di proxy API o di ambiente.
Per correggere il criterio PythonScript di esempio mostrato sopra, aggiungi il file myscript.py al bundle API Proxy. Nello screenshot di seguito puoi vedere che i file PythonScript specificati negli elementi <ResourceURL>
e <IncludeURL>
sono visibili nella sezione Script del bundle API Proxy: