Está a ver a documentação do Apigee e do Apigee Hybrid.
Ver documentação do
Apigee Edge.
InvalidResourceUrlFormat
Mensagem de erro
A implementação de um proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:
Error Deploying Revision revision_number to environment Invalid resource url format. Resource url is invalid_URL.
Exemplo de mensagem de erro
Error Deploying Revision 2 to prod Invalid resource url format. Resource url is py:myscript.py.
Captura de ecrã de exemplo
Causa
Se o formato do URL do recurso especificado no elemento <ResourceURL>
ou <IncludeURL>
da política PythonScript for inválido, a implementação do proxy de API falha.
O formato correto é o seguinte:
<ResourceURL>py://file_name.py</ResourceURL> <IncludeURL>py://file_name.py</IncludeURL>
Por exemplo, se o elemento <ResourceURL>
for especificado conforme apresentado abaixo, a implementação do proxy da API falha porque não segue o padrão necessário:
<ResourceURL>py:myscript.py</ResourceURL>
Diagnóstico
Identifique o formato de URL de recurso inválido usado na política de script Python. Pode encontrar estas informações na mensagem de erro. Por exemplo, no seguinte erro, o formato de URL de recurso inválido é
py:myscript.py
:Invalid resource url format. Resource url is py:myscript.py.
Examine todas as políticas PythonScript no proxy de API específico onde ocorreu a falha. Se existir alguma política PythonScript em que o URL do recurso especificado no elemento
<ResourceURL>
ou<IncludeURL>
corresponda à entrada inválida identificada no passo n.º 1 acima, essa é a causa do erro.Por exemplo, a política seguinte especifica o URL do recurso como
py:myscript.py
, que corresponde ao que está na mensagem de erro:<?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>
Uma vez que o URL do recurso é especificado como
py:myscript.py
, que é inválido, a implementação do proxy de API falha com o erro:Invalid resource url format. Resource url is py:myscript.py.
Resolução
Certifique-se de que o formato do URL do recurso especificado no elemento <ResourceURL>
da política PythonScript é válido. Por exemplo:
<?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
Mensagem de erro
A implementação de um proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:
Error Deploying Revision revision_number to environment Invalid resource url ref invalid_reference in policy policy_name in org_name
Exemplo de mensagem de erro
Error Deploying Revision 2 to prod Invalid resource url ref py://myscript.py in policy Python_script in myorg
Captura de ecrã de exemplo
Causa
Se os elementos <ResourceURL>
e <IncludeURL>
fizerem referência a um ficheiro PythonScript que não existe, a implementação do proxy de API falha.
Se estiver a implementar um pacote de proxy a partir do seu computador local, os ficheiros de origem PythonScript têm de ser armazenados em /apiproxy/resources/py
(no âmbito do proxy de API).
Na IU do Apigee, os ficheiros de origem do PythonScript aparecem em py na secção Scripts do painel Navigator do editor de proxy de API, conforme mostrado abaixo:
Também pode armazenar ficheiros de recursos em repositórios ao nível do ambiente (para disponibilizar o código PythonScript a todos os proxies num ambiente, por exemplo). Se não for possível encontrar algum dos ficheiros de recursos especificados na política, ocorre este erro.
Diagnóstico
Identifique a política PythonScript onde ocorreu o erro e a referência do URL do recurso inválido. Pode encontrar estas informações na mensagem de erro. Por exemplo, no erro seguinte, o nome da política é
Python_script
e a referência do URL do recurso inválido épy://myscript.py
:Invalid resource url ref py://myscript.py in policy Python_script in myorg
Verifique se a referência do URL do recurso especificada na política PythonScript com falha corresponde ao valor identificado na mensagem de erro (passo n.º 1 acima). Por exemplo, a seguinte política especifica a referência do URL do recurso como
py://myscript.py
, que corresponde ao que está na mensagem de erro:<?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>
Verifique se o ficheiro identificado no ficheiro do passo n.º 1 faz parte do pacote de proxy de API específico ou existe no âmbito do ambiente.
- Para verificar se o ficheiro faz parte do pacote de proxy de API específico, siga um dos passos abaixo:
- Na IU do Apigee, verifique se este ficheiro se encontra na secção Scripts do proxy de API.
- Transfira o pacote do proxy da API e pesquise se o ficheiro existe.
- Se o ficheiro não fizer parte do pacote de proxy de API específico, verifique se existe ao nível do ambiente. Pode usar a API Resource Files para esta investigação.
Se o ficheiro não existir ao nível do proxy de API ou do ambiente, essa é a causa do erro.
No exemplo acima, o nome do ficheiro PythonScript inválido é myscript.py. Na captura de ecrã abaixo, repare que o ficheiro especificado como um URL de recurso na política não aparece na secção Scripts. Além disso, o ficheiro não existe ao nível do ambiente. Por conseguinte, a implementação do proxy de API falha com o erro:
Invalid resource url ref py://myscript.py in policy Python_script in myorg
- Para verificar se o ficheiro faz parte do pacote de proxy de API específico, siga um dos passos abaixo:
Resolução
Certifique-se de que os ficheiros PythonScript especificados nos elementos <ResourceURL>
e <IncludeURL>
referem-se a um ficheiro válido que existe ao nível do ambiente ou do proxy de API.
Para corrigir a política PythonScript de exemplo apresentada acima, adicione o ficheiro myscript.py ao pacote do proxy de API. Na captura de ecrã abaixo, pode ver que os ficheiros PythonScript especificados nos elementos <ResourceURL>
e <IncludeURL>
estão visíveis na secção Scripts do pacote do proxy de API: