【GCP】Cloud Functionsのデプロイで429エラーが出た際に試すこと【開発備忘録】
事の発端
いつも通り、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をコピペしてください)
以上の手順を踏まえた後で、再度デプロイを試みたところ問題なく完了しました。