【GCP】Cloud Functionsのデプロイで429エラーが出た際に試すこと【開発備忘録】

GCP 開発備忘録

事の発端

いつも通り、Firebase CLIにて$ firebase deploy --only functionsのコマンドを実行しました。
すると見慣れないエラーが突如出ました。

Error: Request to https://cloudbilling.googleapis.com/v1/projects/{Project ID}/billingInfo had HTTP Error: 429, Quota exceeded for quota metric 'All requests' and limit 'All requests per minute' of service 'cloudbilling.googleapis.com' for consumer 'project_number:{Project Number}'.

エラーの原因

このエラーについて調べてみると、どうやらAPIの利用制限を超過したせいでエラーを返しているようです。
しかし、実際のところは「利用制限」なるものとは別のところに根本の原因がありました。

解決までの流れ

1. Firebase CLIの現在のプロジェクト情報を確認

まず、$ firebase projects:listを実行することで、現在のプロジェクトの情報を確認します。
複数のプロジェクトが表示される場合がありますが、Project IDの欄に(current)と書いてあるのが現在のプロジェクトになります。

2. エラーメッセージとカレントプロジェクトの情報を照合

エラーメッセージの冒頭のURLにProject IDが含まれています。
そこで、カレントプロジェクトのIDとURLの当該部分が一致しているかチェックします。

そして、エラーメッセージの末尾にはProject Numberが書いてあります。
このProject Numberが、カレントプロジェクトのProject Numberと一致しているかチェックします。

※私の場合は、Project IDは正しかったのですが、なぜかProject Numberが合致していませんでした。つまり、別のプロジェクトのProject Numberがコンタミしていたということでしょうか?(本当になぜ??)

3. Firebase CLIに再ログインする

$ firebase login --reauthのコマンドを実行し、ログインし直しましょう。

4. カレントプロジェクトを再度設定

$ firebase use {Project ID}のコマンドを実行することで、カレントプロジェクトを設定し直すことができます。
{Project ID}の部分には、デプロイ先のプロジェクトを書きます(1.で取得したProject IDをコピペしてください)

以上の手順を踏まえた後で、再度デプロイを試みたところ問題なく完了しました。