blog.bouzuya.net

2021-11-08 https://bouzuya.net/lab/genuuid

bouzuya/rust-sandbox の genuuid を 0.3.0 にした。

genuuid は UUID v4 を生成するアプリケーションだ。 https://bouzuya.net/lab/genuuid にデプロイしている。↓のように curl でも使用できる。

$ curl -L https://bouzuya.net/lab/genuuid
51588a82-ebff-4e85-8037-e72622eff885

実装は Rust で crates:structopt, crates:axum, crates:uuid などを使用している。大した機能のないアプリケーションになっている。

GitHub Actions で GitHub Container Registry と GCP の Container Registry と Cloud Run にデプロイしている。

最初は GitHub Container Registry から Cloud Run にデプロイしようと考えていたのだけど Cloud Run は GCP の Container Registry か Artifact Registry からしかデプロイできなかったので切り替えた。せっかく設定を書いたので GitHub Container Registry も残している。

workflow の yaml は https://github.com/bouzuya/rust-sandbox/blob/42d62bb8bc2e13a2d650ec0df77049c38af3ae4e/.github/workflows/genuuid.yml にある。 Action は GitHub Container Registry は VaultVulp/gp-docker-action で GCP 分は google-github-actions/setup-gcloud を使用している。

デプロイにめちゃくちゃハマった。実行環境を first generation にしないと動かないような気がする。いろいろハマりすぎて何が悪かったのかさえ分からなくなってしまった。

また bouzuya.net は AWS なので CloudFront から Cloud Run を Origin として使用する形にしている。パスの読み替えがうまくできなさそうなのでアプリケーション側に BASE_PATH を設定できるようにした。

ちなみに通常はこれを使わなくても uuidgen で良いと思う。


今日のコミット。