ふと GCP ( Google Cloud Platform ) の Cloud Run を初めて使用してみて、すんなりいかなかったのでメモ。
使用したのは、Cloud Run のうち、Service と Job。 GCP の Web管理画面の日本語版メニューの表記はそれぞれ サービス と ジョブ だが、Google の機能として明示するため、ここでは英語表記とする。
Service : Webアプリケーションを動かすための機能。ローカルで開発したアプリをデプロイして動かす。Webアプリとして HTTP を使用しないとデプロイできない。 ロジックを直接クラウド画面から書いて動かす「関数」にする方法もある。
Job : バッチ処理として動かす。Webアプリ機能は不要。
自分一人で実施したが、全体的に GCP固有のエラーが頻出するため、ChatGPT に聞きまくってようやく解決できた。
一番ハマったのは Job のデプロイ&実行。GitHub 連携でのデプロイ機能が無く、この時点でコンテナ( Docker) からのデプロイの知識が無かったため、gcloud コマンド実行でデプロイしたが、build.gradle などが GCP 側のビルド方式に合っていないと、ローカルでは動いても GCPのビルド or 実行で失敗する。 ChatGPT のお陰でなんとか動くようになったがベストな方法かは分からない。なお。GCPのビルドは Ubuntu で実行されるらしい。
Service は GitHub 連携を使ったデプロイのためか、比較的にすんなりとできた。 後でコンテナデプロイも試してみたが、docker でちょっとつまずいたものの、ハマらなかった。 ちなみにアプリは Spring Boot。
Job では、GCP 以外の外部APIや GCP の SQL インスタンスを使用したが、そちらは問題なくできた。