Auf dieser Seite wird beschrieben, wie Sie Exporte Ihrer Firestore-Daten im Datastore-Modus planen. Um Exporte nach einem Zeitplan auszuführen, empfehlen wir die Verwendung von Cloud Functions und Cloud Scheduler. Erstellen Sie eine Cloud Functions-Funktion, die Exporte initiiert, und führen Sie Ihre Funktion mit Cloud Scheduler aus.
Hinweise
Bevor Sie Datenexporte planen:
- Aktivieren Sie die Abrechnung für Ihr Google Cloud-Projekt. Nur Google Cloud-Projekte mit aktivierter Abrechnung können die Export- und Importfunktion verwenden.
- Erstellen Sie einen Cloud Storage-Bucket an einem Ort in der Nähe des Standorts Ihrer Datenbank im Datastore-Modus. Für Exportvorgänge ist ein Cloud Storage-Ziel-Bucket erforderlich. Einen Bucket mit der Funktion "Anfragesteller bezahlt" können Sie nicht für Exportvorgänge verwenden.
Cloud Functions-Funktion und Cloud Scheduler-Job erstellen
Erstellen Sie nach der folgenden Anleitung eine Cloud Functions-Funktion, die Datenexporte initiiert, und einen Cloud Scheduler-Job, um diese Funktion aufzurufen:
Cloud Functions-Funktion datastore_export
erstellen
-
Rufen Sie in der Google Cloud Console die Seite Cloud Functions auf:
- Klicken Sie auf Funktion erstellen.
- Geben Sie einen Funktionsnamen wie
datastoreExport
ein. - Wählen Sie unter Trigger die Option Cloud Pub/Sub aus. Cloud Scheduler ruft Ihre Funktion über Ihr Pub/Sub-Thema auf.
- Wählen Sie im Feld Thema die Option Thema erstellen aus. Geben Sie für das Pub/Sub-Thema einen Namen ein, z. B.
startDatastoreExport
. Notieren Sie den Namen des Themas, da Sie ihn zum Erstellen Ihres Cloud Scheduler-Jobs benötigen. - Wählen Sie unter Quellcode Inline-Editor aus.
- Wählen Sie im Drop-down-Menü Laufzeit die Option Python 3.7 aus.
- Geben Sie für
main.py
den folgenden Code ein: - Fügen Sie in
requirements.txt
die folgende Abhängigkeit hinzu: - Geben Sie unter Einstiegspunkt
datastore_export
ein, den Namen der Funktion inmain.py
. - Klicken Sie auf Bereitstellen, um die Cloud Functions-Funktion bereitzustellen.
Zugriffsberechtigungen konfigurieren
Weisen Sie der Cloud Functions-Funktion die Berechtigung zu, Exportvorgänge zu starten und in Ihren GCS-Bucket zu schreiben.
Diese Cloud Functions-Funktion verwendet das Standarddienstkonto Ihres Projekts, um sich zu authentifizieren und Exportvorgänge zu autorisieren. Wenn Sie ein Projekt erstellen, wird ein Standarddienstkonto mit folgendem Namen erstellt:
project_id@appspot.gserviceaccount.com
Dieses Dienstkonto benötigt die Berechtigung, Exportvorgänge zu starten und in Ihren Cloud Storage-Bucket zu schreiben. Weisen Sie dem Standarddienstkonto für diese Berechtigungen die folgenden IAM-Rollen zu:
Cloud Datastore Import Export Admin
-
Rolle
Owner
oderStorage Admin
für den Bucket
Sie können diese Rollen mit den Befehlszeilentools gcloud
und gsutil
zuweisen. Sie können über Cloud Shell in der Google Cloud Console auf diese Tools zugreifen:
Cloud Shell starten
-
Weisen Sie die Rolle Import-Export-Administrator für Cloud Datastore zu. Ersetzen Sie project_id und führen Sie folgenden Befehl aus:
gcloud projects add-iam-policy-binding project_id \ --member serviceAccount:project_id@appspot.gserviceaccount.com \ --role roles/datastore.importExportAdmin
-
Weisen Sie Ihrem Bucket die Rolle Storage-Administrator zu. Ersetzen Sie project_id und bucket_name und führen Sie den folgenden Befehl aus:
gsutil iam ch serviceAccount:project_id@appspot.gserviceaccount.com:admin \ gs://bucket_name
Cloud Scheduler-Job erstellen
Erstellen Sie als Nächstes einen Cloud Scheduler-Job, der die Cloud Functions-Funktion datastore_export
aufruft:
Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler auf:
Klicken Sie auf Job erstellen.
Geben Sie einen Namen für den Job ein, z. B.
scheduledDatastoreExport
.Geben Sie eine Häufigkeit im unix-cron-Format ein.
Wählen Sie eine Zeitzone aus.
Wählen Sie unter Ziel Pub/Sub aus. Geben Sie im Feld Thema den Namen des Pub/Sub-Themas ein, das Sie zusammen mit Ihrer Cloud Functions-Funktion definiert haben (
startDatastoreExport
im obigen Beispiel).Geben Sie im Feld Nutzlast ein JSON-Objekt ein, um den Exportvorgang zu konfigurieren. Die Cloud Functions-Funktion
datastore_export
erfordert einenbucket
-Wert. Sie können optional Werte fürkinds
odernamespaceIDs
angeben, um einen Entitätsfilter festzulegen. Beispiel:Alle Entitäten exportieren
{ "bucket": "gs://bucket_name" }
Mit Entitätsfilter exportieren
Exportieren Sie Entitäten der Art
User
oderTask
aus allen Namespaces:{ "bucket": "gs://bucket_name", "kinds": ["User", "Task"] }
Entitäten der Art
User
oderTask
aus dem Standard- und demTesters
-Namespace exportieren; der Standard-Namespace wird mit einem leeren String (""
) angegeben:{ "bucket": "gs://bucket_name", "kinds": ["User", "Task"], "namespaceIds": ["", "Testers"] }
Entitäten aller Arten aus dem Standard- und dem
Testers
-Namespace exportieren; der Standard-Namespace wird mit einem leeren String (""
) angegeben:{ "bucket": "gs://bucket_name", "namespaceIds": ["", "Testers"] }
Dabei steht
bucket_name
für den Namen Ihres Cloud Storage-Buckets.Klicken Sie auf Erstellen.
Geplante Exporte testen
Führen Sie Ihren Cloud Scheduler-Job auf der Seite Cloud Scheduler der Google Cloud Console aus, um Ihre Cloud Functions-Funktion und Ihren Cloud Scheduler-Job zu testen. Bei Erfolg wird ein echter Exportvorgang initiiert.
Rufen Sie in der Google Cloud Console die Seite Cloud Scheduler auf.
Zu Cloud SchedulerKlicken Sie in der Zeile für Ihren neuen Cloud Scheduler-Job auf Jetzt ausführen.
Klicken Sie nach einigen Sekunden auf Aktualisieren. Der Cloud Scheduler-Job sollte die Ergebnisspalte in Erfolgreich und Letzte Ausführung auf die aktuelle Zeit aktualisieren.
Die Seite "Cloud Scheduler" bestätigt nur, dass der Job eine Nachricht an das Pub/Sub-Thema gesendet hat. Ob Ihre Exportanfrage erfolgreich war, können Sie in den Logs Ihrer Cloud Functions-Funktion.
Cloud Functions-Logs aufrufen
Auf der Seite Log-Explorer in der Google Cloud Console können Sie sehen, ob Cloud Function einen Exportvorgang erfolgreich gestartet hat.
Das Log für die Cloud Functions-Funktion meldet Fehler und erfolgreich initiierte Exporte.
Exportfortschritt anzeigen
Mit dem Befehl gcloud datastore operations list
können Sie den Fortschritt Ihrer Exportvorgänge anzeigen lassen. Weitere Informationen finden Sie unter Vorgänge mit langer Ausführungszeit auflisten.
Nach Abschluss eines Exportvorgangs können Sie die Ausgabedateien in Ihrem Cloud Storage-Bucket ansehen. Der verwaltete Exportdienst organisiert die Exportvorgänge anhand eines Zeitstempels.