Quota ポリシーのデプロイエラーのトラブルシューティング

InvalidQuotaInterval

エラー メッセージ

Edge UI または Edge 管理 API で API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。

    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.
    

スクリーンショットの例

原因

Quota ポリシーの <Interval> 要素に指定された割り当て間隔が整数でないと、API プロキシのデプロイに失敗します。

たとえば、Quota ポリシーの <Interval> 要素に指定された割り当て間隔が 0.1 の場合、API プロキシのデプロイに失敗します。

診断

  1. エラーが発生した Quota ポリシーと無効な割り当て間隔を特定します。この情報はエラー メッセージで確認できます。たとえば、次のエラー メッセージの場合、Quota-1 がポリシー名、0.1 が無効な割り当て間隔です。

        Error Saving Revision 1
        Invalid quota interval 0.1 in quota policy Quota-1.
        
  2. 失敗した Quota ポリシーに指定された割り当て間隔の値が、エラー メッセージ(上の手順 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. 指定された割り当て間隔が整数でない場合、これがエラーの原因です。

    上の Quota ポリシーの場合、割り当て間隔の値が 0.1 で、整数ではありません。このため、API プロキシのデプロイが失敗し、次のエラーが返されます。

    Invalid quota interval 0.1 in quota policy Quota-1.
        

解決策

Quota ポリシーの <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

エラー メッセージ

Edge UI または Edge 管理 API で API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。

    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.
    

スクリーンショットの例

原因

Quota ポリシーの <TimeUnit> 要素に指定された時間単位がサポートされていない場合、API プロキシのデプロイに失敗します。

サポートされる時間単位は、minutehourdayweekmonth です。

たとえば、Quota ポリシーの <TimeUnit> 要素の時間単位に year が指定されている場合、API プロキシのデプロイに失敗します。

診断

  1. エラーが発生した Quota ポリシーと無効な時間単位を特定します。この情報はエラー メッセージで確認できます。たとえば、次のエラー メッセージの場合、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. Quota ポリシーの <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. Quota ポリシーに指定された時間単位がサポートされていない場合、これがエラーの原因です。

    上の Quota ポリシーの場合、時間単位が year で、この時間単位はサポートされていません。このため、API プロキシのデプロイが失敗し、次のエラーが返されます。

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

解決策

Quota ポリシーの <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

エラー メッセージ

Edge UI または Edge 管理 API で API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。

    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.
    

スクリーンショットの例

原因

Quota ポリシーの <Quota> 要素の type 属性に指定された割り当てタイプが無効な場合、API プロキシのデプロイに失敗します。

サポートされる割り当てタイプは defaultcalendarflexirollingwindow です。

たとえば、Quota ポリシーの <Quota> 要素の割り当てタイプに window が指定されている場合、API プロキシのデプロイに失敗します。

診断

  1. Quota ポリシーで使用されいてる無効な割り当てタイプを特定します。この情報はエラー メッセージで確認できます。たとえば、次のエラー メッセージでは、window が無効な割り当てタイプです。

        Error Saving Revision 1
        No enum constant com.apigee.quota.types.QuotaType.window.
        
  2. エラーが発生した特定の API プロキシで、すべての Quota ポリシーを調べます。<Quota> 要素の割り当てタイプが手順 1 で特定された無効な値と一致している Quota ポリシーがある場合、これがエラーの原因です。

    たとえば、次のポリシーでは、タイプに 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>
        

    サポートされていない window が type 属性に設定されているため、API プロキシのデプロイが失敗し、次のエラーが返されます。

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

解決策

Quota ポリシーの <Quota> 要素の type 属性に、サポートされている割り当てタイプを指定します。例:

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

エラー メッセージ

Edge UI または Edge 管理 API で API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。

    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.
    

スクリーンショットの例

原因

Quota ポリシーの <StartTime> 要素に指定された時間形式が無効な場合、API プロキシのデプロイに失敗します。

有効な形式は yyyy-MM-dd HH:mm:ss です。これは、ISO 8601 の日付と時刻の形式です。

たとえば、Quota ポリシーの <StartTime> 要素に指定された時間が 7-16-2017 12:00:00 の場合、API プロキシのデプロイに失敗します。

診断

  1. Quota ポリシーに指定された無効な開始時間を特定します。この情報はエラー メッセージで確認できます。たとえば、次のエラー メッセージの場合、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 プロキシで、すべての Quota ポリシーを調べます。<StartTime> 要素の値が手順 1 で特定された無効な開始時間と一致している Quota ポリシーがある場合、これがエラーの原因です。

    たとえば、次のポリシーでは、タイプに 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.
        

解決策

Quota ポリシーの <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

エラー メッセージ

Edge UI または Edge 管理 API で API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。

    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.
    

スクリーンショットの例

原因

Quota ポリシーの <StartTime> 要素の割り当てタイプに calendar が指定されていない場合、API プロキシのデプロイに失敗します。

<StartTime> 要素でサポートされている割り当てタイプは calendar だけです。

たとえば、Quota ポリシーの <Quota> 要素の type 属性が flexi または rolling window に設定されていると、API プロキシのデプロイに失敗します。

診断

  1. エラーが発生した Quota ポリシーの割り当てタイプを特定します。この情報はエラー メッセージで確認できます。たとえば、次のエラー メッセージの場合、flexi が無効な開始時間です。

        Starttime is not supported for quotatype flexi. Starttime is
        supported only for calendar based type.
        
  2. エラーが発生した特定の API プロキシで、すべての Quota ポリシーを調べます。type 属性が手順 1 で特定された値と一致し、<StartTime> 要素が指定されている Quota ポリシーがある場合、これがエラーの原因です。

    たとえば、次のポリシーでは、割り当てタイプにエラー メッセージと同じ 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>
        

    Quota ポリシーに <StartTime> 要素が指定され、割り当てタイプに flexi が指定されているため、API プロキシのデプロイに失敗し、次のエラーが返されます。

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

解決策

<Quota> 要素の type 属性の割り当てタイプが flexi または rolling window の場合、<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>
    </Quota>
    

InvalidTimeUnitForDistributedQuota

エラー メッセージ

Edge UI または Edge 管理 API で API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。

    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 プロキシのデプロイに失敗します。分散割り当ての場合、時間単位 second は無効です。

Distributed 要素が true に設定されている場合、ポリシーは中央にカウンタを維持し、すべての Message Processor でこのカウンタを同期する必要があります。この場合、同期が難しくなります。また、リクエスト数が指定の割り当てを超過していないかどうかを短い間隔(秒など)で確認するのも難しくなります。このため、分散割り当てでは時間単位 second は無効と見なされます。

診断

エラーが発生した特定の API プロキシで、すべての Quota ポリシーを調べます。<TimeUnit> 要素が second に設定され、<Distributed> 要素が true に設定されている Quota ポリシーがある場合、これがエラーの原因です。

たとえば、次のポリシーでは、<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>
    

解決策

<Distributed> 要素が true に設定されている場合は、<TimeUnit> 要素に second を設定しません。<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

エラー メッセージ

Edge UI または Edge 管理 API で API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。

    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.
    

スクリーンショットの例

原因

Quota ポリシーの <AsynchronousConfiguration> 要素の <SyncIntervalInSeconds> 要素に 0 より小さい値が指定されていると、API プロキシのデプロイに失敗します。

診断

エラーが発生した特定の API プロキシで、すべての Quota ポリシーを調べます。<AsynchronousConfiguration> 要素内の <SyncIntervalInSeconds> 要素に 0 より小さい値が設定された Quota ポリシーがある場合、これがエラーの原因です。

たとえば、次のポリシーでは、<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>
    

解決策

割り当てポリシーの <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>5</SyncIntervalInSeconds>
        </AsynchronousConfiguration>
    </Quota>
    

InvalidAsynchronizeConfigurationForSynchronousQuota

エラー メッセージ

Edge UI または Edge 管理 API で API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。

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

エラー メッセージの例

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

スクリーンショットの例

原因

Quota ポリシーの <Synchronous> 要素に true が設定され、<AsynchronousConfiguration> 要素で非同期構成が定義されていると、API プロキシのデプロイに失敗します。

診断

エラーが発生した特定の API プロキシで、すべての Quota ポリシーを調べます。<Synchronous> 要素が true に設定され、<AsynchronousConfiguration> 要素が定義されている Quota ポリシーがある場合、これがエラーの原因です。

たとえば、次のポリシーでは、<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>
    

解決策

Quota ポリシーで <Synchronous> 要素を true に設定する場合は、<AsynchronousConfiguration> 要素を使用して非同期構成を定義しません。

上の例では、次のように <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>