Устранение неполадок при развертывании политики квот

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

InvalidQuotaInterval

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

Развертывание 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-прокси завершится неудачей.

Например, если интервал квоты, указанный в элементе <Interval> политики квот, равен 0,1, то развертывание 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>

InvalidQuotaTimeUnit

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

Развертывание 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 .

Например, если в элементе <TimeUnit> политики квот единица измерения времени указана как year , то развертывание 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>

InvalidQuotaType

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

Развертывание 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 .

Например, если в элементе <Quota> политики квот указан тип политики как window , то развертывание 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>

InvalidStartTime

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

Развертывание 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>

StartTimeNotSupported

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

Развертывание 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-прокси, где произошла ошибка. Если в какой-либо политике квот указанный атрибут типа совпадает с типом квоты, определенным на шаге № 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>

InvalidTimeUnitForDistributedQuota

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

Развертывание 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>

InvalidSynchronizeIntervalForAsyncConfiguration

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

Развертывание 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-прокси, где произошла ошибка. Если в какой-либо политике квот элемент <SyncIntervalInSeconds> в элементе <AsynchronousConfiguration> имеет значение меньше нуля, то это и является причиной ошибки.

Например, в приведенной ниже политике для элемента <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>

InvalidAsynchronizeConfigurationForSynchronousQuota

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

Развертывание 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.

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

Причина

Если в политике квот, в которой также определена асинхронная конфигурация с помощью элемента <AsynchronousConfiguration> , значение элемента <Synchronous> установлено на true , то развертывание 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>