設定配額

本頁面說明如何在 Cloud Endpoints Frameworks 中為您的 API 設定配額。如需配額功能的總覽,請參閱關於配額

Java

進行下方的設定程序前,請先完成下列動作:

在 API 上設定配額的方式:

  1. 在包含適用 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),
            }
        )
      
  2. 針對每個您要套用配額的方法,將以下內容加到 @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...
        }
      
  3. 部署 API

如要進一步瞭解在配額中使用的註解,請參閱以下內容:

Python

進行下方的設定程序前,請先完成下列動作:

在 API 上設定配額的方式:

  1. 在包含 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),
        ]
      
  2. 將配額指派給 limit_definitions 引數,以便將配額加入 API 裝飾器中。例如:

      @endpoints.api(name='bookstore',
                     version='v1',
                     limit_definitions=quota_limits)
    
  3. 針對每個您要套用配額的方法,將字典指派給方法裝飾器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...
    
  4. 部署 API

如要進一步瞭解在配額中使用的裝飾器,請參閱以下內容: