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

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

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

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

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

Error Saving Revision [revision_number]
Invalid quota interval [interval] in quota policy [policy_name].

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

Error Saving Revision 1
Invalid quota interval 0.1 in quota policy Quota-1.

Пример скриншота

Причина

Если интервал квоты, указанный в элементе <Interval> политики квот, не является целым числом, развертывание прокси-сервера API завершается неудачно.

Например, если указанный интервал квоты равен 0,1 в элементе <Interval> политики квот, развертывание прокси-сервера API завершается неудачно.

Диагностика

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

    Error Saving Revision 1
    Invalid quota interval 0.1 in quota policy Quota-1.
    
  2. Убедитесь, что значение интервала квоты, указанное в неудачной политике квот, соответствует значению, указанному в сообщении об ошибке (шаг № 1 выше). Например, следующая политика определяет значение интервала квоты как 0.1 , что соответствует значению в сообщении об ошибке:

    <Quota async="false" continueOnError="false" enabled="true" name="Quota-1">
     <DisplayName>Quota-1</DisplayName>
     <Properties />
     <Allow count="3" />
     <Interval>0.1</Interval>
     <TimeUnit>minute</TimeUnit>
    </Quota>
    
  3. Если указанный интервал квоты не является целым числом, это и есть причина ошибки.

    В примере политики квот, показанном выше, значение интервала квоты равно 0,1, что не является целым числом. Таким образом, развертывание прокси-сервера API завершается с ошибкой:

    Invalid quota interval 0.1 in quota policy Quota-1.
    

Разрешение

Убедитесь, что значение интервала квоты, указанное в элементе <Interval> политики квот, является целым числом. Например:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota-1">
    <DisplayName>Quota-1</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
</Quota>

Инвалидкуотатименит

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

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

Error Saving Revision [revision_number]
Invalid quota interval time unit [time_unit] in quota policy
[policy_name] in Revision [revision_number] of application
[proxy_name], in organization [org_name].

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

Error Saving Revision 1
Invalid quota interval time unit year in quota policy Quota-1 in Revision 1 of application Quota_test, in organization aprabhashankar-eval.

Пример скриншота

Причина

Если единица времени, указанная в элементе <TimeUnit> политики квот, не поддерживается, развертывание прокси-сервера API завершается неудачно.

Поддерживаемые единицы времени: minute , hour , day , week и month .

Например, если в качестве единицы времени указан year в элементе <TimeUnit> политики квот, развертывание прокси-сервера API завершится неудачей.

Диагностика

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

    Invalid quota interval time unit year in quota policy Quota-1
    in Revision 1 of application Quota_test, in organization aprabhashankar-eval.
    
  2. Убедитесь, что единица времени, указанная в элементе <TimeUnit> политики квот, совпадает с единицей времени, указанной в сообщении об ошибке (шаг № 1 выше). Например, следующая политика определяет значение интервала квоты как year , что соответствует значению, указанному в сообщении об ошибке:

    <Quota async="false" continueOnError="false" enabled="true" name="Quota-1">
     <DisplayName>Quota-1</DisplayName>
     <Properties />
     <Allow count="3" />
     <Interval>1</Interval>
     <TimeUnit>year</TimeUnit>
    </Quota>
    
  3. Если единица времени, указанная в политике квот, не поддерживается, это и есть причина ошибки.

    В приведенном выше примере политики квот в качестве единицы времени указан year , который не поддерживается. Таким образом, развертывание прокси-сервера API завершается с ошибкой:

    Invalid quota interval time unit year in quota policy Quota-1 in Revision 1 of application Quota_test, in organization aprabhashankar-eval.
    

Разрешение

Убедитесь, что поддерживается единица времени, указанная в элементе <TimeUnit> политики квоты. Например:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota-1">
    <DisplayName>Quota-1</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>month</TimeUnit>
</Quota>

ИнвалидКвотаТип

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

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

Error Saving Revision [revision_number]
No enum constant com.apigee.quota.types.QuotaType.[type].

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

Error Saving Revision 1
No enum constant com.apigee.quota.types.QuotaType.window.

Пример скриншота

Причина

Если тип квоты, указанный атрибутом type в элементе <Quota> политики квот, недействителен, развертывание прокси-сервера API завершается неудачно.

Поддерживаемые типы квот: default , calendar , flexi и rollingwindow .

Например, если тип политики указан как window в элементе <Quota> политики квот, развертывание прокси-сервера API завершается неудачей.

Диагностика

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

    Error Saving Revision 1
    No enum constant com.apigee.quota.types.QuotaType.window.
    
  2. Проверьте все политики квот в конкретном прокси-сервере API, где произошел сбой. Если существует какая-либо политика квот, в которой тип квоты, указанный в элементе <Quota> , соответствует неподдерживаемому типу, указанному на шаге 1 выше, это и есть причина ошибки.

    Например, следующая политика определяет тип window , который соответствует тому, что указано в сообщении об ошибке:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Quota async="false" continueOnError="false" enabled="true" name="Quota-1" type="window">
        <DisplayName>Quota-1</DisplayName>
        <Properties/>
        <Allow count="3"/>
        <Interval>1</Interval>
        <TimeUnit>minute</TimeUnit>
        <StartTime>2017-7-16 12:00:00</StartTime>
        <MessageWeight ref="messageWeight"/>
    </Quota>
    

    Поскольку атрибут type установлен как window , который не поддерживается, развертывание прокси-сервера API завершается с ошибкой:

    No enum constant com.apigee.quota.types.QuotaType.window.
    

Разрешение

Убедитесь, что тип квоты, указанный атрибутом type в элементе <Quota> политики квот, поддерживается. Например:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota-1" type="rollingwindow">
    <DisplayName>Quota-1</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
    <StartTime>2017-7-16 12:00:00</StartTime>
    <MessageWeight ref="messageWeight"/>
</Quota>

Инвалидстарттиме

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

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

Error Saving Revision [revision_number]
Invalid Starttime:[start_time]; Start Time should be of the format yyyy-MM-dd HH:mm:ss.

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

Error Saving Revision 1
Invalid Starttime:7-16-2017 12:00:00; Start Time should be of the format yyyy-MM-dd HH:mm:ss.

Пример скриншота

Причина

Если формат времени, указанный в элементе <StartTime> политики квот, недействителен, развертывание прокси-сервера API завершается неудачей.

Допустимый формат — yyyy-MM-dd HH:mm:ss , который соответствует формату даты и времени ISO 8601 .

Например, если время, указанное в элементе <StartTime> политики квот, — 7-16-2017 12:00:00 , то развертывание прокси-сервера API завершается неудачей.

Диагностика

  1. Определите недопустимое время начала, указанное в политике квот. Эту информацию можно найти в сообщении об ошибке. Например, в следующей ошибке недопустимое время начала — 7-16-2017 12:00:00

    Invalid Starttime:7-16-2017 12:00:00; Start Time should be of the format yyyy-MM-dd HH:mm:ss.
    
  2. Проверьте все политики квот в конкретном прокси-сервере API, где произошел сбой. Если существует какая-либо политика квот, в которой значение, указанное в элементе <StartTime> , соответствует недопустимому времени начала, указанному на шаге 1 выше, это и есть причина ошибки.

    Например, следующая политика определяет тип 7-16-2017 12:00:00 , что соответствует тому, что указано в сообщении об ошибке:

    <?xml version="1.0" encoding="UTF-8"?>
    <Quota async="false" continueOnError="false" enabled="true" name="Quota-1" type="calendar">
       <DisplayName>Quota-1</DisplayName>
       <Properties />
       <Allow count="3" />
       <Interval>1</Interval>
       <TimeUnit>minute</TimeUnit>
       <StartTime>7-16-2017 12:00:00</StartTime>
    </Quota>
    

    Поскольку значение, установленное для <StartTime> установлено как 7-16-2017 12:00:00 , что не соответствует требуемому формату даты и времени, развертывание прокси-сервера API завершается с ошибкой:

    Invalid Starttime:7-16-2017 12:00:00; Start Time should be of the format yyyy-MM-dd HH:mm:ss.
    

Разрешение

Убедитесь, что формат времени начала, указанный в элементе <StartTime> политики квот, действителен в соответствии с требуемым форматом yyyy-MM-dd HH:mm:ss . Например:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota-1" type="calendar">
    <DisplayName>Quota-1</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
    <StartTime>2017-7-16 12:00:00</StartTime>
</Quota>

Старттименотсуппортед

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

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

Error Saving Revision [revision_number]
Starttime is not supported for quotatype [quota_type]. Starttime is supported only for calendar based type.

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

Error Saving Revision 1
Starttime is not supported for quotatype flexi. Starttime is supported only for calendar based type.

Пример скриншота

Причина

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

Элемент <StartTime> поддерживается только для типа calendar квоты.

Например, если в элементе <Quota> политики квот для атрибута type установлено значение flexi или rolling window , то развертывание прокси-сервера API завершится сбоем.

Диагностика

  1. Определите тип квоты, указанный в сбойной политике квот. Эту информацию можно найти в сообщении об ошибке. Например, в следующей ошибке недопустимое время начала является flexi

    Starttime is not supported for quotatype flexi. Starttime is
    supported only for calendar based type.
    
  2. Проверьте все политики квот в конкретном прокси-сервере API, где произошел сбой. Если существует какая-либо политика квот, в которой указанный атрибут type соответствует типу квоты, указанному на шаге 1 выше, и указан элемент <StartTime> , то это и есть причина ошибки.

    Например, следующая политика определяет тип квоты как flexi , который соответствует тому, что указано в сообщении об ошибке, а также указывает элемент <StartTime> :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Quota async="false" continueOnError="false" enabled="true" name="Quota-1" type="flexi">
        <DisplayName>Quota-1</DisplayName>
        <Properties/>
        <Allow count="3"/>
        <Interval>1</Interval>
        <TimeUnit>minute</TimeUnit>
        <StartTime>2017-7-16 12:00:00</StartTime>
    </Quota>
    

    Поскольку элемент <StartTime> указан в политике квот, тип квоты которой указан как flexi , развертывание прокси-сервера API завершается с ошибкой:

    Starttime is not supported for quotatype flexi. Starttime is supported only for calendar based type.
    

Разрешение

Убедитесь, что элемент <StartTime> не указан, если тип квоты, указанный атрибутом type в элементе <Quota> , — flexi или rolling window . Например:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota-1" type="flexi">
    <DisplayName>Quota-1</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
</Quota>

Инвалидтимеюнитфордистрибутедкуота

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

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

Error Saving Revision [revision number]
Invalid timeunit second for distributed quota.

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

Error Saving Revision 1
Invalid timeunit second for distributed quota.

Пример скриншота

Причина

Если для элемента <Distributed> установлено значение true , а для элемента <TimeUnit> установлено значение second , развертывание прокси-сервера API завершается неудачей. Параметр timeunit second недопустим для распределенной квоты.

Если для элемента Distributed установлено значение true , политика должна поддерживать центральный счетчик и постоянно синхронизировать его между всеми процессорами сообщений. Поэтому было бы сложно синхронизировать, а также проверить, что количество запросов не превысило указанную квоту за короткий промежуток времени, например секунды. По этой причине единица времени- second считается недействительной для распределенной квоты.

Диагностика

Проверьте все политики квот в конкретном прокси-сервере API, где произошел сбой. Если существует какая-либо политика квот, в которой для элемента <TimeUnit> установлено значение second , а для элемента <Distributed> установлено true , то это и есть причина ошибки.

Например, в приведенной ниже политике для элемента <TimeUnit> установлено значение second , а для элемента <Distributed> установлено значение true .

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="CheckQuota" type="calendar">
    <DisplayName>CheckQuota</DisplayName>
    <Properties/>
    <Allow count="30"/>
    <Interval>1</Interval>
    <TimeUnit>second</TimeUnit>
    <StartTime>2018-8-05 12:00:00</StartTime>
    <Distributed>true</Distributed>
    <Synchronous>false</Synchronous>
</Quota>

Разрешение

Убедитесь, что для элемента <TimeUnit> никогда не установлено значение second , если для элемента <Distributed> установлено значение true. Элементу <TimeUnit> может быть присвоено любое другое допустимое значение — minute, hour, day, week, или month . Например:

<Quota async="false" continueOnError="false" enabled="true" name="CheckQuota" type="calendar">
    <DisplayName>CheckQuota</DisplayName>
    <Properties/>
    <Allow count="30"/>
    <Interval>1</Interval>
    <TimeUnit>hour</TimeUnit>
    <StartTime>2018-8-05 12:00:00</StartTime>
    <Distributed>true</Distributed>
    <Synchronous>false</Synchronous>
</Quota>

Инвалидсинхронизеинтервалфорасинконфигуратион

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

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

Error Saving Revision [revision number]
SyncIntervalInSeconds should be a value greater than zero.

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

Error Saving Revision 1
SyncIntervalInSeconds should be a value greater than zero.

Пример скриншота

Причина

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

Диагностика

Проверьте все политики квот в конкретном прокси-сервере API, где произошел сбой. Если в элементе <AsynchronousConfiguration> существует какая-либо политика квот, в которой для элемента <SyncIntervalInSeconds> установлено значение меньше нуля, это является причиной ошибки.

Например, в приведенной ниже политике для элемента <SyncIntervalInSeconds> указано отрицательное значение:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota_AsyncConfig" type="calendar">
    <DisplayName>Quota_AsyncConfig</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
    <StartTime>2017-7-16 12:00:00</StartTime>
    <Distributed>true</Distributed>
    <Synchronous>false</Synchronous>
    <AsynchronousConfiguration>
        <SyncIntervalInSeconds>-1</SyncIntervalInSeconds>
    </AsynchronousConfiguration>
</Quota>

Разрешение

Убедитесь, что вы всегда указываете положительное целое число для элемента <SyncIntervalInSeconds> в элементе <AsynchronousConfiguration> в политике квот. Например:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota_AsyncConfig" type="calendar">
    <DisplayName>Quota_AsyncConfig</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
    <StartTime>2017-7-16 12:00:00</StartTime>
    <Distributed>true</Distributed>
    <Synchronous>false</Synchronous>
    <AsynchronousConfiguration>
        <SyncIntervalInSeconds>5</SyncIntervalInSeconds>
    </AsynchronousConfiguration>
</Quota>

Инвалидасинхронизеконфигуратионфорсинхронускуота

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

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

Error Saving Revision [revision number]
AsynchronousConfiguration is not valid for synchronous quota.

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

Error Saving Revision 2
AsynchronousConfiguration is not valid for synchronous quota.

Пример скриншота

Причина

Если для значения элемента <Synchronous> установлено значение true в политике квот, которая также имеет асинхронную конфигурацию, определенную с помощью элемента <AsynchronousConfiguration> , то развертывание прокси-сервера API завершается сбоем.

Диагностика

Проверьте все политики квот в конкретном прокси-сервере API, где произошел сбой. Если существует какая-либо политика квот, в которой для элемента <Synchronous> установлено значение true , и если для нее также определен элемент <AsynchronousConfiguration> , то это является причиной ошибки.

Например, в приведенной ниже политике есть элемент <Synchronous> , которому присвоено значение true , а также определен элемент <AsynchronousConfiguration> :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota_AsyncConfig" type="calendar">
    <DisplayName>Quota_AsyncConfig</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
    <StartTime>2017-7-16 12:00:00</StartTime>
    <Distributed>true</Distributed>
    <Synchronous>true</Synchronous>
    <AsynchronousConfiguration>
     <SyncIntervalInSeconds>1</SyncIntervalInSeconds>
    </AsynchronousConfiguration>
</Quota>

Разрешение

Убедитесь, что асинхронная конфигурация не определена с помощью элемента <AsynchronousConfiguration> , если для элемента <Synchronous> установлено true в политике квот.

Приведенный выше пример можно исправить, удалив раздел <AsynchronousConfiguration> , как показано ниже:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Quota async="false" continueOnError="false" enabled="true" name="Quota_AsyncConfig" type="calendar">
    <DisplayName>Quota_AsyncConfig</DisplayName>
    <Properties/>
    <Allow count="3"/>
    <Interval>1</Interval>
    <TimeUnit>minute</TimeUnit>
    <StartTime>2017-7-16 12:00:00</StartTime>
    <Distributed>true</Distributed>
 <Synchronous>true</Synchronous>
</Quota>