Esta é a documentação da Apigee e da Apigee híbrida.
Confira a documentação da Apigee Edge.
InvalidResourceUrlFormat
Mensagem de erro
A implantação de um proxy de API por meio da IU da Apigee ou da API 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.
Exemplo de captura de tela
Causa
Se o formato do URL do recurso especificado no <ResourceURL>
ou no elemento <IncludeURL>
da
política PythonScript for inválido, a implantação do proxy da API falhará.
Veja o formato correto abaixo:
<ResourceURL>py://file_name.py</ResourceURL> <IncludeURL>py://file_name.py</IncludeURL>
Por exemplo, se o elemento <ResourceURL>
for especificado conforme mostrado abaixo, a
implantação do proxy de API falhará porque não segue o padrão necessário:
<ResourceURL>py:myscript.py</ResourceURL>
Diagnóstico
Identifique o formato de URL do recurso inválido usado na política PythonScript. Você encontra essas informações na mensagem de erro. Por exemplo, no seguinte erro, o formato de URL do recurso inválido é
py:myscript.py
:Invalid resource url format. Resource url is py:myscript.py.
Analise todas as políticas do PythonScript no proxy da API específica em que ocorreu a falha. Se houver alguma política PythonScript em que o URL do recurso especificado no elemento
<ResourceURL>
ou no elemento<IncludeURL>
corresponda à entrada inválida identificada na etapa 1 acima, essa será a causa do erro.Por exemplo, a seguinte política 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>
Como o URL do recurso é especificado como
py:myscript.py
, o que é inválido, a implantação do proxy da API falha com o erro:Invalid resource url format. Resource url is py:myscript.py.
Resolução
Verifique se 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 implantação de um proxy de API por meio da IU da Apigee ou da API 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
Exemplo de captura de tela
Causa
Se os elementos <ResourceURL>
e <IncludeURL>
se referirem a um arquivo PythonScript
que não existe, a implantação do proxy da API falhará.
Se você estiver implantando um pacote de proxy a partir da máquina local, os arquivos de origem
do PythonScript precisam ser armazenados em /apiproxy/resources/py
(no escopo do proxy da API).
Na IU da Apigee, os arquivos de origem PythonScript aparecem em py, na seção "Scripts" do painel de navegação do editor de proxy da API, conforme mostrado abaixo:
Também é possível armazenar arquivos de recursos em repositórios de nível de ambiente (para disponibilizar o código PythonScript para todos os proxies em um ambiente, por exemplo). Se algum arquivo de recurso especificado na política não puder ser encontrado, esse erro ocorrerá.
Diagnóstico
Identifique a política do PythonScript em que o erro ocorreu e a referência inválida do URL do recurso. Você encontra essas informações na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é
Python_script
e a referência de 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 com falha do PythonScript corresponde ao valor identificado na mensagem de erro (etapa 1 acima). Por exemplo, esta 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 arquivo identificado na etapa 1 é parte do pacote específico do proxy da API ou se existe no escopo do ambiente.
- Para verificar se o arquivo faz parte do pacote de proxy de API específico, siga uma das etapas abaixo:
- Na IU da Apigee, verifique se esse arquivo está na seção "Scripts" do proxy da API.
- Faça o download do pacote de proxy da API e pesquise se o arquivo existe.
- Se o arquivo não fizer parte do pacote de proxy de API específico, verifique se ele existe no nível do ambiente. Use a API Resource Files nessa investigação.
Se o arquivo não existir no nível do proxy de API ou do ambiente, essa será a causa do erro.
No exemplo acima, o nome do arquivo PythonScript inválido é myscript.py. Na captura de tela abaixo, observe que o arquivo especificado como URL de recurso na política não aparece na seção "Scripts". Além disso, o arquivo não existe no nível do ambiente. Portanto, a implantação do proxy da API falha com o erro:
Invalid resource url ref py://myscript.py in policy Python_script in myorg
- Para verificar se o arquivo faz parte do pacote de proxy de API específico, siga uma das etapas abaixo:
Resolução
Verifique se os arquivos PythonScript especificados em elementos <ResourceURL>
e <IncludeURL>
se referem a um arquivo válido que existe no proxy da API ou no nível do ambiente.
Para corrigir o exemplo de política PythonScript mostrado acima, adicione o arquivo myscript.py ao pacote do proxy da API. Na captura de tela abaixo, é possível ver que os arquivos PythonScript especificados nos elementos <ResourceURL>
e <IncludeURL>
estão visíveis na seção "Scripts" do pacote do proxy da API: