配置配额

本页面介绍了如何在 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 > 服务 > 配额页面上显示的文本,以用于标识配额。
    • 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 > 服务 > 配额页面上显示的文本,以用于标识配额。
    • 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. 向 API 修饰器添加配额(只需将该配额分配给 limit_definitions 参数即可)。例如:

      @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

要详细了解配额中使用的修饰器,请参阅以下内容: