BigQueryの割り当て(クオータ・Quotas)をAPIから変更する方法を探していましたが、GCP公式ドキュメント見てもコンソールでの作業ばかりしか記載が見つかりません。
GCPの公式ドキュメントはほとんどの項目でgcloud等で設定するパターンが書かれているので、これは無いのではと思い情報を探していました。
情報を見つけた
そこで以下のブログに出会いました。
I tried to understand how the API worked in the console thanks to the developer mode of Chrome and I found a workaround.
Chromeの開発者モードで見ればやり方わかるよ! なるほど!と思い、やってみたら見つけました。ブログに記載されているAPIが確かに実行されているのが確認できます。
実際にやってみる
ご紹介した記事と、Developer Toolを使って実施してみました。
まずプロジェクトIDを設定しておきます。
PROJECT_ID="your_project_id"
QueryUsagePerDay(Query usage /日)を50TB、 QueryUsagePerUserPerDay(Query usage /日 /ユーザー)を4TB に設定してみます。
まずpayloadに含めるJSONを作ります。
cat <<EOF > input.json { "quotaSettings": { "adminOverrides":{}, "consumerOverrides": { "QueryUsagePerUserPerDay": { "limit":"4194304" }, "QueryUsagePerDay": { "limit":"52428800" } }, "force":true }, "consumerProjectId": "${PROJECT_ID}", "serviceName":"bigquery-json.googleapis.com" } EOF
そのJSONを指定してPATCHリクエストを送信します。複数項目設定したい場合は updateMask
をパラメータに複数並べます。
認証用のTokenどこかから取ってこないとなと思っていたら、参照先のブログで gcloud auth
で取得していたので勉強になりました。
curl -d @input.json \ -H "content-type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -X PATCH \ "https://servicemanagement.googleapis.com/v1/services/bigquery-json.googleapis.com/projectSettings/${PROJECT_ID}?updateMask=quotaSettings.consumerOverrides%5B%22QueryUsagePerUserPerDay%22%5D&updateMask=quotaSettings.consumerOverrides%5B%22QueryUsagePerDay%22%5D"
無事変更されました。
一応、ドキュメントには書いてない内容なので、自己責任で。