Firestore 백업 정기 실행 방법
참고 : htps : // 메이 m. 코 m / go g ぇ c c u d jp / 푹신 s와 - 77272 ba c8762
서비스 계정의 개인 키 얻기
Google Cloud Platform 콘솔→IAM 및 관리→서비스 계정 화면 상단에서 '서비스 계정 만들기'를 클릭합니다.
프로젝트 역할은 다음 두 가지 유형을 추가
- Cloud Datastore Import Export Admin
- Storage Object Admin
이때 '새 비밀키 제공'에 체크를 넣으면 비밀키가 발행된다. 이 비공개 키를 functions 폴더에 넣습니다.
Cloud Functions에서 작업 스케줄링(cron)
하루에 한 번 불리는 클라우드 기능을 만듭니다.
Pub/Sub에 대해서는 이하를 알기 쉽다.
참고 : ぇぺぺぺrs-jp. 오 g b b g. 이 m/2017/04/호 w-와-s ぇづぇ-c 론-조 bs-우 th-c c d. HTML
cron.yaml
cron:
- description: make a backup for firestore everyday at 00:00
url: /publish/firebase-backup
schedule: every 24 hours
functions/index.js
exports.backupFirestore = functions.pubsub.topic('firebase-backup').onPublish((message, context) => {
return true
})
작성한 Function 내에서 Firestore API exportDocuments를 두드리는
functions/index.js
const {google} = require('googleapis')
const rp = require('request-promise')
const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp()
exports.backupFirestore = functions.pubsub.topic('firebase-backup').onPublish((message, context) => {
const projectId = 'プロジェクトID'
const getAccessToken = new Promise(function (resolve, reject) {
const scopes = ['https://www.googleapis.com/auth/datastore', 'https://www.googleapis.com/auth/cloud-platform']
const key = require(`./${projectId}.json`)
const jwtClient = new google.auth.JWT(
key.client_email,
undefined,
key.private_key,
scopes,
undefined
)
const authorization = new Promise(function (resolve, reject) {
return jwtClient.authorize().then((value) => {
return resolve(value)
})
})
return authorization.then(function (value) {
return resolve(value.access_token)
})
})
return getAccessToken.then(function (accessToken) {
const url = `https://firestore.googleapis.com/v1beta1/projects/${projectId}/databases/(default):exportDocuments`
return rp.post(url, {
headers: {
Authorization: `Bearer ${accessToken}`
},
json: true,
body: {
outputUriPrefix: `gs://${projectId}-backups`
}
})
})
})
이전 백업 자동 삭제
Google Cloud Platform 콘솔 → Storage 해당 버킷의 라이프사이클 설정
Reference
이 문제에 관하여(Firestore 백업 정기 실행 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Kasanomo/items/566191f0c106b4669f22텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)