ユーザー割り当ての管理

このページでは、Service Consumer Management API を使用して、サービスの個々のユーザーに適用される割り当ての上限を表示し、オーバーライドする方法について説明します。

サービス割り当てモデルをよく理解してこのチュートリアルで使用されている用語について理解を深めてください。

Service Infrastructure API に対してプログラミングするには、Google が提供するクライアント ライブラリのいずれかを使用することをおすすめします。API を試すには、このガイドの手順に従い、curl コマンドを使用します。これにより、完全なアプリケーション開発環境をセットアップしなくても API を試すことができます。

サービス割り当ての表示

このチュートリアルでは、consumer-project-id という名前のプロジェクトと myservice.appspot.com という名前のサービスを使用します。各 gcurl コマンドで、独自のサービスと関心のあるユーザー プロジェクトを置き換えます。

gcurl を使用するには、まず認証トークンを使用して次の alias コマンドを実行します。

alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'

詳しくは、スタートガイドをご覧ください。

特定のユーザーに適用されるすべてのメトリックのすべての割り当て上限を表示するには、次の方法を使用します。

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics

この呼び出しは、サービスによって定義された指標のリストで応答します。各指標は、このコンシューマーに適用される指標の制限のリスト、それらの制限の値、およびオーバーライドを備えています。以下はレスポンスの例です。

{
  "metrics": [
    {
      "name": "services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests",
      "metric": "airport_requests"
      "displayName": "Airport Requests"
      "consumerQuotaLimits": [
        {
          "name": "services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests/limits/%2Fmin%2Fproject",
          "metric": "airport_requests",
          "unit": "1/min/{project}",
          "quotaBuckets": [
            {
              "effectiveLimit": "5",
              "defaultLimit": "5",
            }
          ]
        }
      ],
    }
  ]
}

レスポンスの各指標には名前フィールドがあります。すべての指標ではなく、その指標のみの割り当て設定を検査するには、URL でその名前を使用します。

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}

同様に、指標内の各上限には名前フィールドがあります。指標のすべての上限ではなく、特定のメトリックの特定の上限のみの割り当て設定を検査するには、URL でその名前を使用します。

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}

プロデューサーによるオーバーライドの適用

サービスのオーナーや管理者は、特定のユーザーの特定の制限にプロデューサー オーバーライドを適用し、その制限に対する割り当ての増加を許可できます。

制限を特定するには、まず上記のいずれかの方法を使用して対象の割り当て制限を見つけ、その名前フィールドを使用してプロデューサー オーバーライドを適用します。

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "12345"} }'

この呼び出しを使用すると、新しいオーバーライドの適用や既存のオーバーライドの新しい値への更新が可能になります。制限に対して無制限の割り当てを付与するには、オーバーライド値として「-1」を使用します。

呼び出しが成功すると、割り当ての変更がバックエンドシステムに伝達されるため、サーバーで進行中の作業を表すオペレーション識別子が返されます。

{
  "name": "operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7"
}

操作の進行状況を確認するには、その呼び出しの名前を使用します。

gcurl https://serviceconsumermanagement.googleapis.com/v1/{name}

この呼び出しが 「"done":true」を含むメッセージで応答すると、オペレーションは完了です。オペレーションが失敗した場合、メッセージにはエラーの詳細が含まれます。

特定の制限に関する元の get 呼び出しを繰り返すことにより、変更が適用されたかどうかを確認することもできます。これで、この制限には追加の「producerOverride」フィールドが必要になりました。

大規模な割り当て変更の強制

オーバーライドによって強制割り当て量が 10%以上減少した場合、誤って割り当て量が急激に減少するのを防ぐために、安全策として、呼び出しが拒否されます。この制約を無視するには、強制フラグを使用します。

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "0"}, "force": true}'

リージョンまたはゾーンの割り当てオーバーライドの適用

一部の割り当て上限は、リージョンごとまたはゾーンごとに適用されます。これは、制限ユニットに /{region}または /{zone}があることで示されます。

このような制限にオーバーライドを適用すると、すべてのリージョンまたはゾーンの基本割り当てが変更されます。特定のリージョンまたはゾーンに限定して割り当てを変更するには、場所フィールドを使用します。

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}/producerOverrides -d '{"override": {"override_value": "135", "dimensions": {"region": "asia-south1"} } }'