Den skemaløse realtidsdatabase Firestore fra Firebase leveres ikke med indbyggede automatiske sikkerhedskopier. I dette blogindlæg guider vi dig gennem opsætning af automatiserede Firestore-backups inspireret af, hvordan vi gør det hos Kvalifik.
☝️ Vi antager, at du er ejer af Firebase-projektet, og at du har aktiveret fakturering. Læs mere her.
Firestore-backupperne startes af en cloud-funktion og gemmes i en dedikeret lagerbuket på Google Cloud Platform.
Åbn Google Cloud Platform, og vælg det Google Cloud-projekt, der er knyttet til dit Firebase-projekt.
Gå til IAM & Admin → IAM.
Rediger medlemmet "[project-id][@appspot.gserviceaccount.com]".
Tilføj endnu en rolle: "Cloud Datastore Import Export Admin".
Klik på Gem.
Gå til afsnittet Lagring i Google Cloud Platform.
Opret spand:
✅ Dette sikrer, at sikkerhedskopier fra de sidste syv dage ikke kan slettes ved et uheld.
Klik på Opret.
Du er velkommen til at justere disse indstillinger for livscyklus, så de passer til dine behov.
Gå til Livscyklusindstillinger, og tilføj følgende regler:
Vi anbefaler, at du bruger miljøvariabler for at kunne dele den samme cloud-funktion på tværs af flere Firebase-projekter. For at gøre dette skal du køre følgende kommando på din lokale maskine (med Firebase CLI installeret):
⚠️ Hvis du har flere miljøer, skal du sørge for at skifte til det korrekte projekt ved hjælp af kommandoen "firebase use [environment-name]".
Tilføj følgende Typescript cloud-funktion firestoreBackupDaily. Bemærk, at denne cloud-funktion er tilpasset fra Javascript-versionen, der findes her.
Endelig skal du implementere din cloud-funktion ved hjælp af følgende kommando:
Gå til siden Cloud Scheduler, og klik på "Run now" (Kør nu) i rækken, der svarer til din nyoprettede cloud-funktion. Kort tid efter bør du se en Firestore-backup i mappen "firestore" i den tidligere oprettede storage bucket.
For at afslutte denne opsætning anbefaler vi, at du opretter overvågning og en plan for katastrofeberedskab. Bemærk desuden, at den løsning, der præsenteres her, kun udfører sikkerhedskopiering af Firestore. Du er måske også interesseret i at sikkerhedskopiere Firebase Storage og Firebase Auth. Førstnævnte kan opnås ved at konfigurere et dagligt overførselsjob på Google Cloud Platform, mens sidstnævnte er mere tricky (husk også at gemme en kopi af password hash-parametrene!). Du kan bruge listUsers-funktionen, der er præsenteret her, i en planlagt cloud-funktion i lighed med den tidligere præsenterede. Vi dækker måske nogle af disse emner i et fremtidigt blogindlæg.