Risoluzione degli errori di deployment dei criteri per le quote

Stai visualizzando la documentazione relativa a Apigee e Apigee ibrido.
Visualizza la documentazione di Apigee Edge.

InvalidQuotaInterval

Messaggio di errore

Il deployment del proxy API tramite la UI o l'API Apigee non va a buon fine e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 1.

Causa

Se l'intervallo di quota specificato nell'elemento <Interval> del criterio per le quote non è un numero intero, il deployment del proxy API non va a buon fine.

Ad esempio, se l'intervallo di quota specificato è 0,1 nell'elemento <Interval> di un criterio per le quote, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica il criterio per le quote in cui si è verificato l'errore e l'intervallo di quota non valida. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, il nome del criterio è Quota-1 e l'intervallo di quota non valido è 0.1:

    Error Saving Revision 1
    Invalid quota interval 0.1 in quota policy Quota-1.
    
  2. Verifica che il valore dell'intervallo di quota specificato nel criterio per le quote non riuscite corrisponda al valore identificato nel messaggio di errore (passaggio 1 sopra). Ad esempio, il seguente criterio specifica il valore dell'intervallo di quota come 0.1, che corrisponde a quanto indicato nel messaggio di errore:

    <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. Se l'intervallo di quota specificato non è un numero intero, ciò è la causa dell'errore.

    Nell'esempio di criterio per le quote mostrato sopra, il valore dell'intervallo di quota è 0,1, che non corrisponde a un numero intero. Pertanto, il deployment del proxy API non va a buon fine e viene restituito l'errore:

    Invalid quota interval 0.1 in quota policy Quota-1.
    

Risoluzione

Assicurati che il valore dell'intervallo di quota specificato nell'elemento <Interval> del criterio per le quote sia un numero intero. Ad esempio:

<?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

Messaggio di errore

Il deployment del proxy API tramite la UI o l'API Apigee non va a buon fine e viene visualizzato questo messaggio di errore:

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].

Esempio di messaggio di errore

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.

Screenshot di esempio

Errore durante il salvataggio della revisione 1.

Causa

Se l'unità di tempo specificata nell'elemento <TimeUnit> del criterio per le quote non è supportata, il deployment del proxy API non va a buon fine.

Le unità di tempo supportate sono minute, hour, day, week e month.

Ad esempio, se l'unità di tempo viene specificata come year nell'elemento <TimeUnit> del criterio per le quote, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica il criterio di quota in cui si è verificato l'errore e l'unità di tempo non valida. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, il nome del criterio è Quota-1 e l'unità di tempo non valida è year:

    Invalid quota interval time unit year in quota policy Quota-1
    in Revision 1 of application Quota_test, in organization aprabhashankar-eval.
    
  2. Verifica che l'unità di tempo specificata nell'elemento <TimeUnit> del criterio di quota corrisponda a quella identificata nel messaggio di errore (passaggio 1 sopra). Ad esempio, il seguente criterio specifica il valore dell'intervallo di quota come year, che corrisponde a quello indicato nel messaggio di errore:

    <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. Se l'unità di tempo specificata nel criterio di quota non è supportata, è questa la causa dell'errore.

    Nell'esempio di criterio per le quote mostrato sopra, l'unità di tempo è specificata come year che non è supportato. Di conseguenza, il deployment del proxy API non va a buon fine con l'errore:

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

Risoluzione

Assicurati che l'unità di tempo specificata nell'elemento <TimeUnit> del criterio per le quote sia supportata. Ad esempio:

<?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

Messaggio di errore

Il deployment del proxy API tramite la UI o l'API Apigee non va a buon fine e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 1.

Causa

Se il tipo della quota specificata dall'attributo type in <Quota> del criterio per le quote non è valido, la distribuzione del proxy API non va a buon fine.

I tipi di quote supportati sono default, calendar, flexi e rollingwindow.

Ad esempio, se il tipo di criterio specificato come window nell'elemento <Quota> del criterio per le quote, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica il tipo di quota non valido utilizzato nel criterio per le quote. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, il tipo di criterio non valido è window:

    Error Saving Revision 1
    No enum constant com.apigee.quota.types.QuotaType.window.
    
  2. Esamina tutti i criteri per le quote nel proxy API specifico in cui si è verificato l'errore. Se è presente un criterio per le quote in cui il tipo di quota specificato nell'elemento <Quota> corrisponde al tipo non supportato identificato nel passaggio 1 precedente, ciò è la causa dell'errore.

    Ad esempio, il seguente criterio specifica il tipo come window, che corrisponde a quanto indicato nel messaggio di errore:

    <?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>
    

    Poiché l'attributo type è impostato su window, che non è supportato, il deployment del proxy API non riesce con l'errore:

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

Risoluzione

Assicurati che il tipo di quota specificato dall'attributo type nell'elemento <Quota> del criterio di quota sia supportato. Ad esempio:

<?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

Messaggio di errore

Il deployment del proxy API tramite la UI o l'API Apigee non va a buon fine e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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.

Screenshot di esempio

Errore durante il salvataggio della revisione 1.

Causa

Se il formato dell'ora specificato nell'elemento <StartTime> del criterio per le quote non è valido, il deployment del proxy API non va a buon fine.

Il formato valido è yyyy-MM-dd HH:mm:ss, ovvero il formato data e ora ISO 8601.

Ad esempio, se l'ora specificata nell'elemento <StartTime> del criterio per le quote è 7-16-2017 12:00:00, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica l'ora di inizio non valida specificata nel criterio di quota. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, l'ora di inizio non valida è 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. Esamina tutti i criteri per le quote nel proxy API specifico in cui si è verificato l'errore. Se esiste un criterio di quota in cui il valore specificato nell'elemento <StartTime> corrisponde all'ora di inizio non valida identificata nel passaggio 1 qui sopra, questa è la causa dell'errore.

    Ad esempio, il seguente criterio specifica il tipo come 7-16-2017 12:00:00, che corrisponde a quanto indicato nel messaggio di errore:

    <?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>
    

    Poiché il valore impostato per <StartTime> è impostato su 7-16-2017 12:00:00, che non è in base al formato di data/ora richiesto, il deployment del proxy API ha esito negativo e genera l'errore:

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

Risoluzione

Assicurati che il formato dell'ora di inizio specificato nell'elemento <StartTime> del criterio di quota sia valido in base al formato richiesto yyyy-MM-dd HH:mm:ss. Ad esempio:

<?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

Messaggio di errore

Il deployment del proxy API tramite la UI o l'API Apigee non va a buon fine e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 1.

Causa

Se l'elemento <StartTime> è specificato in un criterio di quota il cui tipo di quota non è di tipo calendario, il deployment del proxy API non va a buon fine.

L'elemento <StartTime> è supportato solo per il tipo di quota calendar.

Ad esempio, se l'attributo type è impostato su flexi o rolling window nell'elemento <Quota> del criterio per le quote, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica il tipo di quota specificato nel criterio per le quote che non funziona. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, l'ora di inizio non valida è flexi

    Starttime is not supported for quotatype flexi. Starttime is
    supported only for calendar based type.
    
  2. Esamina tutti i criteri per le quote nel proxy API specifico in cui si è verificato l'errore. Se esiste un criterio di quota in cui l'attributo type specificato corrisponde al tipo di quota identificato nel passaggio 1 sopra e l'elemento <StartTime> è specificato, questa è la causa dell'errore.

    Ad esempio, la seguente norma specifica il tipo di quota come flexi, che corrisponde a quanto indicato nel messaggio di errore e specifica anche l'elemento <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>
    

    Poiché l'elemento <StartTime> viene specificato nel criterio per le quote il cui tipo di quota è specificato come flexi, il deployment del proxy API non va a buon fine e restituisce l'errore:

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

Risoluzione

Assicurati che l'elemento <StartTime> non sia specificato quando il tipo di quota indicato dall'attributo type nell'elemento <Quota> è flexi o rolling window. Ad esempio:

<?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

Messaggio di errore

Il deployment del proxy API tramite la UI o l'API Apigee non va a buon fine e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

Error Saving Revision 1
Invalid timeunit second for distributed quota.

Screenshot di esempio

Errore durante il salvataggio della revisione 1.

Causa

Se l'elemento <Distributed> è impostato su true e l'elemento <TimeUnit> è impostato su second, il deployment del proxy API non va a buon fine. L'unità di tempo second non è valida per una quota distribuita.

Quando l'elemento Distributed è impostato su true, il criterio deve mantenere un contatore centrale e sincronizzarlo continuamente in tutti i processori di messaggi. Pertanto, sarebbe difficile sincronizzare e verificare anche che il numero di richieste non abbia superato la quota specificata in un breve intervallo di tempo, ad esempio in secondi. Per questo motivo, l'unità di tempo second è considerata non valida per la quota distribuita.

Diagnosi

Esamina tutti i criteri per le quote nel proxy API specifico in cui si è verificato l'errore. Se è presente un criterio di quota con un elemento <TimeUnit> impostato su second e l'elemento <Distributed> è impostato su true, questa è la causa dell'errore.

Ad esempio, il criterio riportato di seguito ha un elemento <TimeUnit> impostato su second e l'elemento <Distributed> è impostato su 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>

Risoluzione

Assicurati che l'elemento <TimeUnit> non sia mai impostato su second quando l'elemento <Distributed> è impostato su true. L'elemento <TimeUnit> può essere impostato su uno qualsiasi degli altri valori consentiti: minute, hour, day, week,omonth. Ad esempio:

<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

Messaggio di errore

Il deployment del proxy API tramite la UI o l'API Apigee non va a buon fine e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 1.

Causa

Se il valore specificato per l'elemento <SyncIntervalInSeconds> all'interno dell'elemento <AsynchronousConfiguration> in un criterio per le quote è inferiore a zero, il deployment del proxy API non va a buon fine.

Diagnosi

Esamina tutti i criteri per le quote nel proxy API specifico in cui si è verificato l'errore. Se esiste un criterio per le quote in cui l'elemento <SyncIntervalInSeconds> è impostato su un valore inferiore a zero all'interno dell'elemento <AsynchronousConfiguration>, questo è il motivo dell'errore.

Ad esempio, nel seguente criterio è stato specificato un valore negativo per l'elemento <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>

Risoluzione

Assicurati di specificare sempre un numero intero positivo per l'elemento <SyncIntervalInSeconds> all'interno dell'elemento <AsynchronousConfiguration> in un criterio per le quote. Ad esempio:

<?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

Messaggio di errore

Il deployment del proxy API tramite la UI o l'API Apigee non va a buon fine e viene visualizzato questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 2.

Causa

Se il valore dell'elemento <Synchronous> è impostato su true in un criterio per le quote, che ha anche una configurazione asincrona definita utilizzando l'elemento <AsynchronousConfiguration>, il deployment del proxy API non va a buon fine.

Diagnosi

Esamina tutti i criteri per le quote nel proxy API specifico in cui si è verificato l'errore. Se è presente un criterio per le quote in cui l'elemento <Synchronous> è impostato su true e è stato definito anche un elemento <AsynchronousConfiguration>, questo è la causa dell'errore.

Ad esempio, la norma riportata di seguito ha un elemento <Synchronous> impostato su true e ha anche definito un elemento <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>

Risoluzione

Assicurati che non esista una configurazione asincrona definita utilizzando l'elemento <AsynchronousConfiguration> se l'elemento <Synchronous> è impostato su true in un criterio per le quote.

L'esempio precedente può essere corretto rimuovendo la sezione <AsynchronousConfiguration>, come mostrato di seguito:

<?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>