42tokyo-stats-website 用のデータを収集し、Cloud Storageに保管するためのCloud Functionsです。
- Firebaseプロジェクト(Blazeプラン)
- Firebase CLI
- Node.js v16
- JDK v11以上
- 42 API
- Cloud Functions
- Cloud Storage
- 毎日1つObjectが増加します。
- Google Cloud Secret Manager
- 42 APIのuid, secretを保管するために使います。
BUCKET_NAME
- バケット名を指定ください。
-
Secretを追加します。
firebase functions:secrets:set FT_CLIENT_ID firebase functions:secrets:set FT_CLIENT_SECRET
- 「Error: HTTP Error: 403, Secret Manager API has not been used in project...」が表示される場合は、指示に従いURLにアクセスしてSecret Manager APIを有効にしてください。
-
Secretの値が正しく設定されたか確認します。
firebase functions:secrets:access FT_CLIENT_ID firebase functions:secrets:access FT_CLIENT_SECRET
-
不要になった以前のバージョンのSecretを削除します。
firebase functions:secrets:prune
-
Secretのバージョンの有効/無効を確認します。
firebase functions:secrets:get FT_CLIENT_ID firebase functions:secrets:get FT_CLIENT_SECRET
Secret削除後、それぞれのSecretで1つのバージョンだけ
ENABLED
になっているはずです。
Secret管理に関するコマンドの詳細については、公式ドキュメントを参照ください。
Configure your environment | Firebase Documentation
関数実行時の設定があります。適宜変更ください。
- 関数実行の際、環境変数が無効になるようで、定数で設定しています。
Firebaseプロジェクトを現在のディレクトリに関連づけます。
以下のコマンドを、リポジトリのルートディレクトリで実行してください。
firebase use --add
? Which project do you want to add? <Firebaseプロジェクトを選択>
? What alias do you want to use for this project? (e.g. staging) default
コマンド実行後、リポジトリのルートディレクトリに .firebaserc
が生成されます。
以下のコマンドは functions
ディレクトリで実行します。
-
Cloud Storageををローカルで動作させるためのエミュレータを起動
yarn storage
-
Cloud Functionsをローカルで実行するためのエミュレータを起動
yarn storage
とは別のTerminalで実行してください。yarn shell
-
関数を実行して動作確認する
collectCursusUsers()
yarn test
yarn lint
yarn deploy