本頁面說明如何在 Cloud Endpoints Frameworks 中為您的 API 設定配額。如需配額功能的總覽,請參閱關於配額。
Java
進行下方的設定程序前,請先完成下列動作:
- 為您的 API 撰寫程式碼並加上註解。
- 已新增 API 管理。
- 已部署 API。
- 已將您的 API 設定為使用 API 金鑰。如此一來,Endpoints Frameworks 才能識別出與呼叫應用程式相關聯的Google Cloud 專案。詳情請參閱「共用受 API 金鑰保護的 API」一節。
在 API 上設定配額的方式:
在包含適用 API 範圍註解的檔案中,將以下內容加到 @Api 註解:
limitDefinitions = { @ApiLimitMetric( name = "YOUR_METRIC_NAME", displayName = "YOUR_METRIC_DISPLAY_NAME", limit = YOUR_QUOTA_LIMIT) }
- 將
YOUR_METRIC_NAME
改為描述 API 要求計數器的名稱。 - 將
YOUR_METRIC_DISPLAY_NAME
替換為「Endpoints」 >「Services」 >「Quotas」頁面上顯示的文字,以識別配額。 將
YOUR_QUOTA_LIMIT
改為整數。這是與消費者的 Google Cloud 專案相關聯的應用程式可在一分鐘內發出的要求數量。例如:@Api( name = "echo", version = "v1", namespace = @ApiNamespace( ownerDomain = "echo.example.com", ownerName = "echo.example.com", packagePath = "" ), limitDefinitions = { @ApiLimitMetric( name = "read-requests", displayName = "Read requests", limit = 1000), @ApiLimitMetric( name = "list-requests", displayName = "List requests", limit = 100), @ApiLimitMetric( name = "write-requests", displayName = "Write requests", limit = 50), } )
- 將
針對每個您要套用配額的方法,將以下內容加到
@ApiMethod
註解:metricCosts = { @ApiMetricCost( name ="YOUR_METRIC_NAME", cost = YOUR_COST) }
- 將
YOUR_METRIC_NAME
替換為您在@Api
註解中limitDefinitions
參數中指定的名稱。 將
YOUR_COST
改成某個整數值,以指定每個要求的費用。例如:
@ApiMethod(name = "echo", metricCosts = { @ApiMetricCost( name = "read-requests", cost = 1) }) public Message echo(Message message, @Named("n") @Nullable Integer n) { // ...function code here... }
- 將
如要進一步瞭解在配額中使用的註解,請參閱以下內容:
Python
進行下方的設定程序前,請先完成下列動作:
- 已安裝 2.4.5 以上版本的 Endpoints Frameworks 程式庫。
- 已建立 API。
- 已建立網路伺服器。
- 已新增 API 管理。
- 已部署 API。
- 已將您的 API 設定為使用 API 金鑰。如此一來,Endpoints Frameworks 才能識別出與呼叫應用程式相關聯的Google Cloud 專案。詳情請參閱「共用受 API 金鑰保護的 API」一節。
在 API 上設定配額的方式:
在包含 API 裝飾器的檔案中,建立
LimitDefinition
例項清單,如下所示:quota_limits = [ endpoints.LimitDefinition( "YOUR_METRIC_NAME", "YOUR_METRIC_DISPLAY_NAME", limit) ]
- 將
YOUR_METRIC_NAME
改為描述 API 要求計數器的名稱。 - 將
YOUR_METRIC_DISPLAY_NAME
替換為「Endpoints」 >「Services」 >「Quotas」頁面上顯示的文字,以識別配額。 將
limit
改為整數。這是與用戶的 Google Cloud專案相關聯的應用程式可在一分鐘內發出的要求數量。例如:quota_limits = [ endpoints.LimitDefinition('read-requests', 'Read Requests', 1000), endpoints.LimitDefinition('list-requests', 'List Requests', 100), endpoints.LimitDefinition('write-requests', 'Write Requests', 50), ]
- 將
將配額指派給
limit_definitions
引數,以便將配額加入 API 裝飾器中。例如:@endpoints.api(name='bookstore', version='v1', limit_definitions=quota_limits)
針對每個您要套用配額的方法,將字典指派給方法裝飾器的
METRIC_COSTS
引數。金鑰必須為您在 API 裝飾器的limit_definitions
引數中指定的名稱,而值則是指定每個要求費用的整數,例如:@endpoints.method(path='shelves/{shelf}', http_method='GET', metric_costs={'read-requests': 1}) def get_shelf(self, request): # ...function code here...
如要進一步瞭解在配額中使用的裝飾器,請參閱以下內容: