查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
InvalidQuotaInterval
錯誤訊息
透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:
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 Proxy 部署作業就會失敗。
舉例來說,如果配額政策的 <Interval>
元素中指定的配額間隔為 0.1,API Proxy 部署作業就會失敗。
診斷
找出發生錯誤的配額政策和無效配額間隔。你可以在錯誤訊息中找到這項資訊。舉例來說,在下列錯誤中,政策名稱為
Quota-1
,無效的配額間隔為0.1
:Error Saving Revision 1 Invalid quota interval 0.1 in quota policy Quota-1.
確認失敗配額政策中指定的配額間隔值與錯誤訊息 (上方步驟 #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>
如果指定的配額間隔不是整數,這就是發生錯誤的原因。
在上方顯示的配額政策範例中,配額間隔的值為 0.1,而非整數。因此,API Proxy 部署作業失敗並收到以下錯誤:
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
錯誤訊息
透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:
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 Proxy 部署作業就會失敗。
支援的時間單位為 minute
、hour
、day
、week
和 month
。
舉例來說,如果在配額政策的 <TimeUnit>
元素中將時間單位指定為 year
,則 API Proxy 的部署作業就會失敗。
診斷
找出發生錯誤的配額政策和無效的時間單位。你可以在錯誤訊息中找到這項資訊。舉例來說,在下列錯誤中,政策名稱為
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.
確認配額政策的
<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>
如果系統不支援「配額政策」中指定的時間單位,表示發生錯誤。
在上述配額政策範例中,時間單位指定為
year
所以我們不再支援因此,API Proxy 部署作業失敗並收到以下錯誤: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
錯誤訊息
透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:
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>
中 type
屬性指定的配額類型
配額政策的元素無效,即表示 API Proxy 部署失敗。
支援的配額類型為 default
、calendar
、flexi
和 rollingwindow
。
舉例來說,如果在 <Quota>
元素中指定為 window
的政策類型,
,API Proxy 的部署作業就會失敗。
診斷
找出配額政策中使用的無效配額類型。您可以 錯誤訊息中的資訊舉例來說,下列錯誤訊息中,無效的政策類型為
window
:Error Saving Revision 1 No enum constant com.apigee.quota.types.QuotaType.window.
在失敗的特定 API Proxy 中檢查所有配額政策。如果
<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>
由於類型屬性已設為
window
,但系統不支援這個類型,因此 API Proxy 部署作業會失敗,並出現以下錯誤:No enum constant com.apigee.quota.types.QuotaType.window.
解析度
確認系統支援配額政策 <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 Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:
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 Proxy 部署作業就會失敗。
有效的格式為 yyyy-MM-dd HH:mm:ss
,即 ISO 8601 日期和時間格式。
舉例來說,如果配額政策的 <StartTime>
元素中指定的時間是 7-16-2017 12:00:00
,則 API Proxy 部署作業就會失敗。
診斷
找出配額政策中指定的無效開始時間。你可以在錯誤訊息中找到這項資訊。舉例來說,在下列錯誤中,無效的開始時間為
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.
在失敗的特定 API Proxy 中檢查所有配額政策。如有任何配額政策,且
<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 Proxy 部署作業就會失敗,並顯示以下錯誤: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
錯誤訊息
透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:
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 Proxy 部署作業就會失敗。
只有 calendar
配額類型支援 <StartTime>
元素。
舉例來說,如果配額政策的 <Quota>
元素中的 type
屬性設為 flexi
或 rolling window
,API Proxy 部署作業就會失敗。
診斷
找出失敗配額政策中指定的配額類型。你可以在錯誤訊息中找到這項資訊。舉例來說,在下列錯誤中,無效的開始時間為
flexi
Starttime is not supported for quotatype flexi. Starttime is supported only for calendar based type.
在失敗的特定 API Proxy 中檢查所有配額政策。如有任何「配額」政策指定的類型屬性與上方步驟 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 Proxy 部署作業會失敗並出現以下錯誤: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 Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:
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 Proxy 部署作業就會失敗。分散式配額的時間單位 second
無效。
如果 Distributed
元素設為 true
,政策應維持中央計數器,並持續在所有訊息處理器之間同步處理。因此,同步處理並難以確認要求數量在短時間內 (例如幾秒) 內未超過指定配額。因此,系統會將 second
的時間單位視為無效的分散式配額。
診斷
在失敗的特定 API Proxy 中檢查所有配額政策。如果有任何配額政策將 <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>
解析度
當 <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 Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:
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.
螢幕截圖範例
原因
如果配額政策的 <AsynchronousConfiguration>
元素中針對 <SyncIntervalInSeconds>
元素指定的值小於零,則 API Proxy 的部署作業就會失敗。
診斷
在失敗的特定 API Proxy 中檢查所有配額政策。如有任何配額政策的 <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>
解析度
請務必在配額政策的 <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 Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:
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 Proxy 部署會失敗。
診斷
在失敗的特定 API Proxy 中檢查所有配額政策。如有任何配額政策的 <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>
解析度
如果配額政策中的 <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>