DockerベースのWebアプリケーションの運営に,Google Cloud Runがよさそうだと思ったので,使ってみました.Google Cloud Runは2019年12月に正式リリースされたばかりで,まだ半年しか経過していません*1.とはいうものの,Dockerイメージを指定して,CPUとメモリーを設定したら,あとは自動的にサービスを公開してくれる手軽さと柔軟さはとても魅力的です.競合するサービスとしてAWS FargateやHerokuがあります.
DockerベースのWebアプリケーションを作成するには,Dockerイメージ自体にサービスの状態を示す変数を保存できない制約のため,別のサーバーに変数を保存しておき,起動時に読み込む必要があります.環境変数を利用することが多いですが,Google Cloud Runでは,環境変数を利用せずに,Secret Managerを使うよう説明されています.Pythonを利用するならば,以下のclientを使います.
Python Client for Secret Manager API — google-cloud-secret-manager documentation
このclientはRPCを利用するので,grpcio · PyPIに依存しています.しかし,Alpine Linuxと相性が悪いです.「grpcio alpine error」と検索すると,多くの報告があります.
- Installation of grpcio Python package on Alpine Linux fails · Issue #21918 · grpc/grpc · GitHub
- No precompiled python package for alpine Linux · Issue #18150 · grpc/grpc · GitHub
- grpcio-1.28.1 fails to install for manylinux1_compatible · Issue #22581 · grpc/grpc · GitHub
いろいろと試しましたが,みーはgrpcioをAlpineにインストールすることができませんでした.
google-cloud-secret-managerのPython clientのバージョンが1.0.0になったのは2020/5/20と1ヶ月前のようなので*2,バージョンが上がってからGoogle Cloud Run挑戦したいと思います.