LoginSignup
0
0

【関数不要】Firestoreの定期バックアップを作成する【備忘録】

Last updated at Posted at 2022-01-18

CloudScheduler + CloudFirestoreAPIでコードを書かずに定期バックアップデータが作成できたので紹介します。

WorkFlowsを使った記事もありましたが、WorkFlowsをはさまなくてもバックアップ可能でした。

公式ではScheduler + Functionsを使う方法が紹介されいます。各プロジェクトに適した方法を採用してください。

  1. Google Cloud プロジェクトに対する課金を有効
  2. バックアップ用のストレージ作成
  3. サービスアカウントに権限を付与
  4. スケジューラーの設定

2. バックアップ用のストレージ作成

スクリーンショット 2022-01-18 13.49.33.png

プロジェクトと別のロケーションを選択するとAPI実行時にstatus: "INVALID_ARGUMENT"というエラーがでるので注意。

3. サービスアカウントに権限を付与

管理画面からサービスアカウントを新規で作成する場合は以下のロールを付与。

  • Cloud Datastore インポート / エクスポート管理者
  • Storage オブジェクト 作成者(公式は管理者)

4. スケジューラーの設定

Cloud FireStoreのexportDocumentsAPIを定期実行します。

TH TH
頻度 0 1 * * *
ターゲットタイプ HTTP
URL https://firestore.googleapis.com/v1/projects/${PROJECT_ID}/databases/(default):exportDocuments
HTTPメソッド POST
本文 {"outputUriPrefix":"gs://${バケット名}"}
Authヘッダー Authトークンを追加
サービスアカウント サービスアカウントに権限を付与でアクセス権限を付与したアカウントを指定
範囲 https://www.googleapis.com/auth/cloud-platform

確認する

Cloud Schedulerの今すぐ実行ボタンを押す。

スクリーンショット 2022-01-18 11.42.53.png

Cloud Storageに実行した日時のフォルダができていればOK。

スクリーンショット 2022-01-18 11.44.44.png

以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0