Life is Tech! の卒業イベント 2023 で使用したブラボーな Web アプリ。
Docker-compose で動かす。インストールしてない場合はここを参照。
- 起動前準備
まず、本 Web アプリケーションは Datastore モードの Cloud Firestore を使用するため、有効にする。
次に ./credentials
に Google Cloud サービスアカウントの Credentials JSON を配置する。
proj=google-cloud-project-id
gcloud auth login
gcloud config set project $proj
# gcloud コマンドでサービスアカウントを作成
gcloud iam service-accounts create one-mm --project $proj
# サービスアカウントに Datastore の権限を付与
gcloud projects add-iam-policy-binding $proj --member serviceAccount:one-mm@$proj.iam.gserviceaccount.com --role roles/datastore.user
# サービスアカウントの Credentials JSON を ./credentials.json ダウンロード
gcloud iam service-accounts keys create ./credentials.json --iam-account one-mm@$proj.iam.gserviceaccount.com
.env
ファイルを作成し、以下のように環境変数を設定する。
GOOGLE_APPLICATION_CREDENTIALS=./credentials.json
また、スプレッドシートに記録する機能は SpreadSheet および Google Apps Script を使用しているため、以下の手順を行う必要がある。
- スプレッドシートを作成する
- スプレッドシートのシート名を
1mm結果
にする - スプレッドシートのスクリプトエディタを開く
- スクリプトエディタに
gas/one-mm.gs
の内容をコピペする - デプロイを行う
- [デプロイ] > [新しいデプロイ]を選択
- 種類を [ウェブアプリ] に設定
- 次のユーザーとしてアプリを実行: [自分] を選択
- アクセスできるユーザー: [全員] を選択
- [デプロイ] を選択
- 初回のみ、許可のためのポップアップが表示されます
- ウェブアプリの URL が表示されるので、コピーしておく
.env
ファイルに以下のように環境変数を設定する
GOOGLE_APP_SCRIPT_DEPLOY_URL=https://script.google.com/macros/s/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/exec
- 起動
make run
- Web ブラウザで確認
make open
- 停止
make stop
- 本番環境は Cloud Run を想定し、gcloud コマンドを使用してデプロイする。
proj=google-cloud-project-id
gcloud auth login
gcloud config set project $proj
# Cloud Run と Cloud Build を有効化
gcloud services enable run.googleapis.com cloudbuild.googleapis.com
# Cloud Run にスプレッドシート記録用の URL を設定
google_app_script_deploy_url=https://script.google.com/macros/s/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/exec
make deploy GOOGLE_APP_SCRIPT_DEPLOY_URL=$google_app_script_deploy_url