割り当ての構成

このページでは、Cloud Endpoints Framework で 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 を、[エンドポイント] > [サービス] > [割り当て] ページで割り当ての識別のために表示されるテキストに置き換えます。
    • YOUR_QUOTA_LIMIT は整数値に置き換えます。これは、コンシューマの Google Cloud プロジェクトに関連付けられたアプリケーションが 1 分間に行うことができるリクエストの数を表します。例:

        @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 を、[エンドポイント] > [サービス] > [割り当て] ページで割り当ての識別のために表示されるテキストに置き換えます。
    • limit は整数値に置き換えます。これは、コンシューマの Google Cloud プロジェクトに関連付けられたアプリケーションが 1 分間に行うことができるリクエストの数を表します。例:

        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 引数に辞書を代入します。割り当てを適用するメソッドごとに、メソッド デコレータの 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 をデプロイします

割り当てで使用されるデコレータの詳細については、以下をご覧ください。