配置配额

本页面介绍了如何在 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

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