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

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

ИнвалидКоннекторИнстанс

Сообщение об ошибке

Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:

Error Saving Revision revision_number
In policy_name: Connector must not be empty.

Пример сообщения об ошибке

Error Saving Revision 1
In Extension Callout-1: Connector must not be empty.

Пример снимка экрана с ошибкой

Сообщение об ошибке «Неверный экземпляр соединителя»

Причина

Эта ошибка возникает, если элемент <Connector> в политике ExtensionCallout отсутствует или ему присвоено пустое значение.

Диагностика

  1. Определите имя политики ExtensionCallout в сообщении об ошибке. Например, в следующей ошибке имя политики ExtensionCallout — Extension Callout-1 :

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. Изучите неудавшийся XML-код политики ExtensionCallout и проверьте, присутствует ли элемент <Connector> и не является ли он пустым. Например, в политике ниже элемент <Connector> пуст и не содержит имени расширения:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
        <DisplayName>Extension Callout-1</DisplayName>
        <Connector></Connector>
        <Action>downloadFile</Action>
        <Input><![CDATA[
             {}
         ]]></Input>
        <Output>context-variable-name</Output>
    </ConnectorCallout>

Поскольку элемент <Connector> пуст, развертывание прокси-сервера API завершается неудачно.

Разрешение

Убедитесь, что значение элемента <Connector> политики выноски расширений всегда указано и соответствует имени фактического расширения, созданного в организации.

Чтобы исправить пример политики ExtensionCallout, показанный выше, вы можете установить для элемента <Connector> имя расширения, которое существует в конкретной среде, где развертывается прокси-сервер API.

Чтобы определить имя расширения, в пользовательском интерфейсе Edge вы можете перейти в раздел «Администратор» > «Расширения» . Там будут показаны имена всех расширений в вашей организации. Имя расширения должно быть задано в элементе <Connector> .

Просмотрите имена всех расширений в пользовательском интерфейсе Edge.

Ниже приведен пример с правильно установленным именем расширения в элементе <Connector> :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

КоннекторИнстанцеDoesNotExists

Сообщение об ошибке

Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:

Error Deploying Revision revision_number to environment
In policy_name: Connector <extension_name> does not exist in environment environment.

Пример сообщения об ошибке

Error Deploying Revision 1 to test
In Extension Callout-1: Connector cloud_storage does not exist in environment test.

Пример снимка экрана с ошибкой

Сообщение об ошибке «Экземпляр соединителя не существует»

Причина

Эта ошибка возникает, если для элемента <Connector> в политике ExtensionCallout установлено имя, которое не существует в среде, где развертывается прокси-сервер API.

Диагностика

  1. Определите имя политики ExtensionCallout, недопустимое имя расширения, используемое в элементе <Connector> политики ExtensionCallout, и среду, в которой произошла ошибка. Все эти элементы вы можете найти в сообщении об ошибке.

    Например, в следующей ошибке имя политики ExtensionCallout — Extension Callout-1, d имя расширения — cloud_storage , а имя среды — test :

        Error Deploying Revision 1 to test
        In Extension Callout-1: Connector cloud_storage does not exist in environment test.
    
  2. Изучите неудачный XML-код политики ExtensionCallout и проверьте, соответствует ли имя расширения, указанное для элемента <Connector> , тому, что указано в сообщении об ошибке.

    В этом примере имя расширения, указанное в элементе <Connector> , — cloud_storage :

        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
            <DisplayName>Extension Callout-1</DisplayName>
            <Connector>cloud_storage</Connector>
            <Action>downloadFile</Action>
            <Input><![CDATA[
                 {}
             ]]></Input>
            <Output>context-variable-name</Output>
        </ConnectorCallout>
    
  3. Убедитесь, что имя расширения было создано в среде (определяется на шаге 1).

    В пользовательском интерфейсе Edge перейдите в раздел «Администратор» > «Расширения» и проверьте, существует ли расширение и соответствует ли его имя имени, указанному в элементе <Connector> в политике ExtensionCallout.

    Обратите внимание на снимке экрана ниже, что расширение cloud_storage_ext существует, но не соответствует элементу <Connector> , указанному в примере политики ExtensionCallout, показанном выше:

    Просмотрите имена всех расширений в пользовательском интерфейсе Edge.

    Поскольку имя расширения, указанное в элементе <Connector> , не существует, вы получите ошибку развертывания:

    In Extension Callout-1: Connector cloud_storage does not exist in environment test.

Разрешение

Убедитесь, что расширение, указанное в элементе <Connector> политики ExtensionCallout, создано и имя указано правильно.

Обратитесь к Учебнику: Использование расширений для получения информации о том, как создать расширение.

Чтобы исправить приведенный выше пример, исправьте имя, чтобы оно соответствовало фактическому расширению:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

ИнвалидДейшн

Сообщение об ошибке

Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:

Error Saving Revision revision_number
In policy_name: Action must not be empty.

Пример сообщения об ошибке

Error Saving Revision 1
In Extension Callout-1: Action must not be empty.

Пример снимка экрана с ошибкой

Сообщение об ошибке «Недопустимое действие»

Причина

Эта ошибка возникает, если элемент <Action> в политике ExtensionCallout отсутствует или ему присвоено пустое значение.

Диагностика

  1. Определите имя политики ExtensionCallout. Эту информацию можно найти в сообщении об ошибке. Например, в следующей ошибке имя политики ExtensionCallout — Extension Callout-1:

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
    
  2. Изучите неудавшийся XML-код политики ExtensionCallout и проверьте, указано ли действие в элементе <Action> . Если элемент <Action> отсутствует или он пуст, это причина ошибки.

    В этом примере элемент <Action> пуст:

        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
            <DisplayName>Extension Callout-1</DisplayName>
            <Connector>cloud_storage_ext</Connector>
            <Action></Action>
            <Input><![CDATA[
                 {}
             ]]></Input>
            <Output>context-variable-name</Output>
        </ConnectorCallout>
    

Разрешение

Убедитесь, что элемент <Action> всегда указан и не пуст в политике ExtensionCallout.

Обратитесь к Учебному руководству: Использование расширений для получения информации о том, как создать расширение и как использовать его в политике с правильным элементом <Action> .

Чтобы устранить проблему выше, укажите правильное действие для расширения:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

Алловекстенсионсинпостклиентфлоу

Сообщение об ошибке

Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:

Error Deploying Revision revision_number to environment
In policy_name: Policy is not allowed in PostClientFlow.

Пример сообщения об ошибке

Error Deploying Revision 1 to test
In Extension Callout-1: Policy is not allowed in PostClientFlow.

Пример снимка экрана с ошибкой

Разрешить расширения в сообщении об ошибке после клиентского потока

Причина

Запрещено использовать политику ExtensionCallout в потоке PostClient. Если политика ExtensionCallout помещена в поток PostClient, развертывание прокси-сервера API завершается с ошибкой.

Диагностика

  1. Определите имя политики ExtensionCallout. Эту информацию можно найти в сообщении об ошибке. Например, в следующей ошибке имя политики ExtensionCallout — Extension Callout-1:

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. Проверьте все потоки PostClient во всех конечных точках конкретного прокси-сервера API, где произошел сбой. См. статью «Управление работой прокси-сервера с помощью потоков» .

    Если вы заметили, что политика ExtensionCallout (определенная на шаге 1) помещена в поток PostClient, это и есть причина ошибки.

    Например, следующий поток PostClient содержит политику ExtensionCallout:

        ...
        <PostClientFlow>
                <Request/>
                <Response>
                    <Step>
                        <Name>Extension-Callout-1</Name>
                    </Step>
                </Response>
            </PostClientFlow>
        ...
    

Разрешение

Убедитесь, что политика ExtensionCallout не помещена в поток PostClient.

Чтобы устранить упомянутую выше проблему, вам следует переместить политику ExtensionCallout в любой другой поток.

...
<PreFlow name="PreFlow">
    <Request/>
    <Response>
        <Step>
            <Name>Extension-Callout-1</Name>
        </Step>
    </Response>
</PreFlow>
...