Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Инвалидресаурлформат
Сообщение об ошибке
Развертывание прокси-сервера 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>
Инвалидресаурлреференце
Сообщение об ошибке
Развертывание прокси-сервера 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 проверьте, находится ли этот файл в разделе «Сценарии» прокси-сервера API.
- Загрузите пакет прокси-сервера API и найдите, существует ли файл.
- Если файл не является частью определенного пакета прокси-сервера API, проверьте, существует ли он на уровне организации или среды. Для этого расследования вы можете использовать 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>
, видны в разделе «Скрипты» пакета API Proxy: