Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
InvalidResourceUrlFormat
Сообщение об ошибке
Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:
Error Deploying Revision revision_number to environment Invalid resource url format. Resource url is invalid_URL.
Пример сообщения об ошибке
Error Deploying Revision 2 to prod Invalid resource url format. Resource url is py:myscript.py.
Пример скриншота

Причина
Если формат URL ресурса, указанного в элементе <ResourceURL> или <IncludeURL> правила PythonScript, недопустим, развертывание прокси-сервера API завершится неудачно.
Правильный формат приведен ниже.
<ResourceURL>py://file_name.py</ResourceURL> <IncludeURL>py://file_name.py</IncludeURL>
Например, если элемент <ResourceURL> указан так, как показано ниже, развертывание прокси-сервера API завершится неудачно, поскольку он не соответствует требуемому шаблону:
<ResourceURL>py:myscript.py</ResourceURL>
диагностика;
Определите недопустимый формат URL ресурса, используемый в правиле PythonScript. Эту информацию можно найти в сообщении об ошибке. Например, в приведенной ниже ошибке неверный формат URL ресурса –
py:myscript.py:Invalid resource url format. Resource url is py:myscript.py.
Проверьте все правила PythonScript в определенном прокси API, в котором произошел сбой. Если в каком-либо правиле PythonScript URL ресурса, указанный в элементе
<ResourceURL>или<IncludeURL>, совпадает с недопустимой записью, выявленной на шаге 1, то это и является причиной ошибки.Например, в приведенном ниже правиле URL ресурса указан как
py:myscript.py, что соответствует сообщению об ошибке:<?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>
Поскольку URL ресурса указан как
py:myscript.py, что недопустимо, развертывание прокси API завершается неудачно с ошибкой:Invalid resource url format. Resource url is py:myscript.py.
Разрешение
Убедитесь, что формат URL ресурса, указанный в элементе <ResourceURL> правила PythonScript, действителен. Пример:
<?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
Сообщение об ошибке
Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:
Error Deploying Revision revision_number to environment Invalid resource url ref invalid_reference in policy policy_name in org_name
Пример сообщения об ошибке
Error Deploying Revision 2 to prod Invalid resource url ref py://myscript.py in policy Python_script in myorg
Пример скриншота

Причина
Если элементы <ResourceURL> и <IncludeURL> ссылаются на несуществующий файл PythonScript, развертывание прокси-сервера API завершится неудачно.
Если вы развертываете пакет прокси-сервера с локального компьютера, исходные файлы PythonScript должны храниться в каталоге /apiproxy/resources/py(в области действия прокси-сервера API).
В интерфейсе Edge исходные файлы PythonScript отображаются в разделе "Скрипты" под элементом py на панели навигации редактора прокси-сервера API, как показано ниже.

Вы также можете хранить файлы ресурсов в репозиториях на уровне организации и среды (например, чтобы сделать код PythonScript доступным для всех прокси в организации или среде). Эта ошибка возникает, если не удается найти какой-либо из файлов ресурсов, указанных в правиле.
диагностика;
Определите правило PythonScript, в котором произошла ошибка, и недействительную ссылку на URL ресурса. Эту информацию можно найти в сообщении об ошибке. Например, в приведенной ниже ошибке название правила –
Python_script, а недопустимый URL ресурса –py://myscript.py:Invalid resource url ref py://myscript.py in policy Python_script in myorg
Убедитесь, что ссылка на URL ресурса, указанная в правиле PythonScript, которое не удалось применить, соответствует значению, указанному в сообщении об ошибке (шаг 1 выше). Например, в следующем правиле URL ресурса указан как
py://myscript.py, что соответствует сообщению об ошибке:<?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>
Проверьте, входит ли файл, указанный на шаге 1, в определенный пакет прокси-сервера API или существует на уровне организации или области действия.
- Чтобы проверить, входит ли файл в определенный пакет прокси API, выполните одно из следующих действий:
- В интерфейсе Edge проверьте, есть ли этот файл в разделе Scripts прокси-сервера API.
- Скачайте пакет прокси API и проверьте, есть ли в нем нужный файл.
- Если файл не входит в определенный пакет прокси API, проверьте, существует ли он на уровне организации или среды. Для этого можно использовать Resource Files API.
Если файла нет на уровне прокси API, организации или среды, это и является причиной ошибки.
В примере выше недопустимое название файла PythonScript – myscript.py. На скриншоте ниже показано, что файл, указанный в качестве URL ресурса в правиле, не отображается в разделе "Скрипты". Файл также не существует на уровне организации или среды. Поэтому развертывание прокси API завершается неудачно с ошибкой:
Invalid resource url ref py://myscript.py in policy Python_script in myorg
- Чтобы проверить, входит ли файл в определенный пакет прокси API, выполните одно из следующих действий:

Разрешение
Убедитесь, что файлы PythonScript, указанные в элементах <ResourceURL> и <IncludeURL>, относятся к действительному файлу, который существует на уровне прокси API, организации или среды.
Чтобы исправить приведенный выше пример правила PythonScript, добавьте файл myscript.py в пакет прокси API. На скриншоте ниже видно, что файлы PythonScript, указанные в элементах <ResourceURL> и <IncludeURL>, отображаются в разделе Scripts пакета API Proxy:
