GitHubにプッシュ→CloudBuild→CloudRunへデプロイという感じで動いていたプロジェクトで、CloudBuildが急にエラーというか失敗するようになった。
ログを見ると、
ビルドを実行できませんでした: generic::failed_precondition: generic::failed_precondition: no concurrent builds quota available to create builds
という内容が表示されていた。
no concurrent builds quota available to create builds
を日本語に訳すとビルドの作成に使用できる同時ビルドクォータがない
ということ。
ざっくりとは、ビルド実行するリソースがないらしい。なら失敗じゃなくてキューを待機させてくれればいいのに。
この件について英語のサイトでいろいろな報告を読んだが、 ・ユーザー側で何かコントールできることはない(プライベートプール的なリソースを有料課金しない限りどうにもできないものらしい) ・リージョンをglobalにするとなんか解消するよ という情報しか得られなかった。
なんとなくCloud Runのリージョンをasia-northeast1にしてるから、Cloud Buildのトリガーもasia-northeast1にしてたんだけど、とりあえずアドバイスに沿ってトリガーのリージョンをglobalにしてみたら、本当に解決した。
globalにしておくと世界中のリージョンからリソースをよしなに活用してくれるってことなのかな。 それにしても深夜2時にasia-northeast1でリソースが少なくなるっておかしい気がするけども。腑に落ちないけど解決。