Устранение ошибок развертывания политики PythonScript

Вы просматриваете документацию 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>

Диагностика

  1. Определите недопустимый формат URL-адреса ресурса, используемый в политике PythonScript. Эту информацию можно найти в сообщении об ошибке. Например, в следующей ошибке недопустимый формат URL-адреса ресурса — py:myscript.py :

    Invalid resource url format. Resource url is py:myscript.py.
    
  2. Проверьте все политики 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 доступным для всех прокси в организации или среде). Если не удается найти какие-либо файлы ресурсов, указанные в политике, возникает эта ошибка.

Диагностика

  1. Определите политику PythonScript, в которой произошла ошибка, и ссылку на неверный URL-адрес ресурса. Эту информацию можно найти в сообщении об ошибке. Например, в следующей ошибке имя политики — Python_script , а неверная ссылка на URL-адрес ресурса — py://myscript.py :

    Invalid resource url ref py://myscript.py in policy Python_script in myorg
    
  2. Убедитесь, что ссылка на 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>
    
  3. Проверьте, является ли файл, указанный на шаге 1, частью конкретного пакета прокси-сервера API или существует ли он в рамках организации или среды.

    1. Чтобы проверить, является ли файл частью определенного пакета прокси-сервера API, выполните один из следующих шагов:
      1. В пользовательском интерфейсе Edge проверьте, находится ли этот файл в разделе «Сценарии» прокси-сервера API.
      2. Загрузите пакет прокси-сервера API и найдите, существует ли файл.
    2. Если файл не является частью определенного пакета прокси-сервера API, проверьте, существует ли он на уровне организации или среды. Для этого расследования вы можете использовать API файлов ресурсов .

    Если файл не существует на уровне прокси-сервера API, организации или среды, это и есть причина ошибки.

    В приведенном выше примере недопустимое имя файла PythonScript — myscript.py. На снимке экрана ниже обратите внимание, что файл, указанный в качестве URL-адреса ресурса в политике, не отображается в разделе «Скрипты». Также файл не существует на уровне организации или среды. Таким образом, развертывание прокси-сервера API завершается с ошибкой:

    Invalid resource url ref py://myscript.py in policy Python_script in myorg
    

Разрешение

Убедитесь, что файлы PythonScript, указанные в элементах <ResourceURL> и <IncludeURL> , относятся к допустимому файлу, существующему на уровне прокси-сервера API, организации или среды.

Чтобы исправить пример политики PythonScript, показанный выше, добавьте файл myscript.py в пакет прокси-сервера API. На снимке экрана ниже вы можете видеть, что файлы PythonScript, указанные в элементах <ResourceURL> и <IncludeURL> , видны в разделе «Скрипты» пакета API Proxy: