このページでは、Cloud Endpoints Framework で 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
を、[エンドポイント] > [サービス] > [割り当て] ページで割り当ての識別のために表示されるテキストに置き換えます。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), } )
割り当てを適用するメソッドごとに、以下の内容を
@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
を、[エンドポイント] > [サービス] > [割り当て] ページで割り当ての識別のために表示されるテキストに置き換えます。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), ]
割り当てを
limit_definitions
引数に指定することで、API デコレータに割り当てを追加します。次に例を示します。@endpoints.api(name='bookstore', version='v1', limit_definitions=quota_limits)
割り当てを適用するメソッドごとに、メソッド デコレータの
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...
割り当てで使用されるデコレータの詳細については、以下をご覧ください。