Daten exportieren und importieren

Sie können den verwalteten Export- und Importdienst von Firestore dazu verwenden, versehentlich gelöschte Daten wiederherzustellen und Daten für die Offlineverarbeitung zu exportieren. Es lassen sich alle Dokumente oder nur bestimmte Sammlungen exportieren. Ebenso können Sie alle Daten aus einem Export oder nur bestimmte Sammlungen daraus importieren. Bei Daten, die aus einer Firestore-Datenbank exportiert wurden, besteht die Möglichkeit, sie in eine andere Firestore-Datenbank zu importieren. Sie können auch Firestore-Exporte in BigQuery laden.

Auf dieser Seite wird gezeigt, wie Sie Firestore-Dokumente mithilfe des verwalteten Export- und Importdienstes und von Cloud Storage exportieren bzw. importieren. Der verwaltete Export- und Importdienst für Firestore ist über das gcloud-Befehlszeilentool und über die Firestore API (REST, RPC) verfügbar.

Hinweis

Bevor Sie den verwalteten Export- und Importdienst verwenden können, müssen Sie die folgenden Schritte ausführen:

  1. Aktivieren Sie die Abrechnung für Ihr Google Cloud-Projekt. Die Export- und Importfunktionalität kann nur für Google Cloud-Projekte mit aktivierter Abrechnung verwendet werden.
  2. Erstellen Sie einen Cloud Storage-Bucket für Ihr Projekt an einem Standort in der Nähe des Speicherorts Ihrer Firestore-Datenbank. Sie können für Export- und Importvorgänge keinen Bucket mit der Funktion "Anforderer bezahlt" verwenden.
  3. Sorgen Sie dafür, dass Ihr Konto die erforderlichen Berechtigungen für Cloud Firestore und Cloud Storage hat. Wenn Sie der Projektinhaber sind, enthält Ihr Konto bereits die notwendigen Berechtigungen. Andernfalls gewähren die folgenden Rollen die erforderlichen Berechtigungen für Export- und Importvorgänge und für den Zugriff auf Cloud Storage:

    • Firestore-Rollen: Owner, Cloud Datastore Owner oder Cloud Datastore Import Export Admin
    • Cloud Storage-Rollen:Owner oder Storage Admin

Berechtigungen des Dienst-Agents

Export- und Importvorgänge verwenden einen Firestore-Dienst-Agent, um Cloud Storage-Vorgänge autorisieren. Firestore-Dienst-Agent verwendet die folgende Namenskonvention:

Firestore-Dienst-Agent
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com

Weitere Informationen zu Dienst-Agents finden Sie unter Dienstmitarbeiter:

Der Firestore-Dienst-Agent benötigt Zugriff auf die Cloud Storage-Bucket, der in einem Export- oder Importvorgang verwendet wird. Wenn Ihr Der Cloud Storage-Bucket befindet sich im selben Projekt wie Ihr Firestore kann der Firestore-Dienst-Agent auf die Bucket ein.

Befindet sich der Cloud Storage-Bucket in einem anderen Projekt, muss dem Firestore-Dienst-Agent Zugriff auf Cloud Storage gewähren Bucket.

Dem Dienst-Agent Rollen zuweisen

Sie können das gsutil-Befehlszeilentool verwenden, um eine der folgenden Rollen zuzuweisen. So weisen Sie beispielsweise die Rolle „Storage-Administrator“ zu: an den Firestore-Dienst-Agent führen Sie folgenden Befehl aus:

gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com:roles/storage.admin \
    gs://[BUCKET_NAME]

Ersetzen Sie PROJECT_NUMBER durch Ihre Projektnummer, die wird verwendet, um Ihren Firestore-Dienst-Agent zu benennen. So rufen Sie die Name des Dienst-Agents: Weitere Informationen finden Sie unter Name des Dienst-Agents ansehen.

Alternativ können Sie Weisen Sie diese Rolle über die Google Cloud Console zu.

Name des Dienst-Agents ansehen

Sie können sich das Konto ansehen, das von den Import- und Exportvorgängen zur Autorisierung verwendet wird Anfragen von der Seite Import/Export in der Google Cloud Console. Sie können auch Prüfen, ob Ihre Datenbank Firestore verwendet oder das alte App Engine-Dienstkonto.

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.

  3. Klicken Sie im Navigationsmenü auf Importieren/Exportieren.

  4. Sehen Sie sich das Autorisierungskonto neben dem Import-/Exportjobs ausführen als Label.

Der Dienst-Agent benötigt die Rolle Storage Admin für Cloud Storage Bucket, der für den Export- oder Importvorgang verwendet werden soll.

gcloud für das Projekt einrichten

Sie können Import- und Exportvorgänge über die Google Cloud Console oder gcloud-Befehlszeilentool Richten Sie das Befehlszeilentool ein, um gcloud zu verwenden, und stellen Sie mit einer der folgenden Methoden eine Verbindung zu Ihrem Projekt her:

Daten exportieren

Bei einem Exportvorgang werden Dokumente Ihrer Datenbank in eine Gruppe von Dateien kopiert, die sich in einem Cloud Storage-Bucket befinden. Beachten Sie, dass ein Export kein exakter Datenbank-Snapshot ist, der zum Startzeitpunkt des Exports aufgenommen wurde. Ein Export kann Änderungen enthalten, die während der Ausführung des Vorgangs vorgenommen wurden.

Alle Dokumente exportieren

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.

  3. Klicken Sie im Navigationsmenü auf Importieren/Exportieren.

  4. Klicken Sie auf Exportieren.

  5. Klicken Sie auf die Option Gesamte Datenbank exportieren.

  6. Geben Sie unter Ziel auswählen den Namen eines Cloud Storage-Buckets ein oder wählen Sie mit der Schaltfläche Suchen einen Bucket aus.

  7. Klicken Sie auf Exportieren.

Die Console kehrt zur Seite Import/Export zurück. Wenn der Vorgang erfolgreich gestartet wird, fügt die Seite der letzten Import- und Exportseite einen Eintrag hinzu. Bei einem Fehler wird auf der Seite eine Fehlermeldung angezeigt.

gcloud

Verwenden Sie den Befehl firestore export, um alle Dokumente Ihrer Datenbank zu exportieren und ersetzen Sie [BUCKET_NAME] durch den Namen Ihres Cloud Storage-Buckets. Fügen Sie das Flag --async hinzu, um zu verhindern, dass das gcloud-Tool auf den Abschluss des Vorgangs wartet.

  gcloud firestore export gs://[BUCKET_NAME] \
  --database=[DATABASE]

Ersetzen Sie Folgendes:

  • BUCKET_NAME: zum Organisieren Ihrer Exporte durch Hinzufügen eines Dateipräfixes danach Den Bucket-Namen, z. B. BUCKET_NAME/my-exports-folder/export-name. Wenn Sie kein Dateipräfix angeben, wird vom verwalteten Exportdienst ein Präfix auf Basis des aktuellen Zeitstempels erstellt.

  • DATABASE: Name der Datenbank, aus der Sie exportieren möchten in den Dokumenten. Verwenden Sie für die Standarddatenbank --database='(default)'.

Wenn Sie einen Export gestartet haben, wird der Vorgang durch Schließen des Terminals nicht abgebrochen. Siehe Vorgang abbrechen.

Bestimmte Sammlungen exportieren

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.

  3. Klicken Sie im Navigationsmenü auf Importieren/Exportieren.

  4. Klicken Sie auf Exportieren.

  5. Klicken Sie auf die Option Eine oder mehrere Sammlungsgruppen exportieren. Wählen Sie im Drop-down-Menü eine oder mehrere Sammlungsgruppen aus.

  6. Geben Sie unter Ziel auswählen den Namen eines Cloud Storage-Buckets ein oder wählen Sie mit der Schaltfläche Suchen einen Bucket aus.

  7. Klicken Sie auf Exportieren.

Die Console kehrt zur Seite Import/Export zurück. Wenn der Vorgang erfolgreich gestartet wird, fügt die Seite der letzten Import- und Exportseite einen Eintrag hinzu. Bei einem Fehler wird auf der Seite eine Fehlermeldung angezeigt.

gcloud

Verwenden Sie das Flag --collection-ids, um bestimmte Sammlungsgruppen zu exportieren. Bei diesem Vorgang werden nur die Sammlungsgruppen mit den angegebenen Sammlungs-IDs exportiert. Eine Sammlungsgruppe enthält alle Sammlungen und untergeordneten Sammlungen (in einem beliebigen Pfad) mit der festgelegten Sammlungs-ID.

<ph type="x-smartling-placeholder">
gcloud firestore export gs://[BUCKET_NAME] \
--collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2],[SUBCOLLECTION_ID_1] \
--database=[DATABASE]

Sie können beispielsweise eine restaurants-Sammlung in der foo-Datenbank so entwerfen, Mehrere untergeordnete Sammlungen wie ratings, reviews oder outlets Zum Exportieren einer bestimmten Sammlung restaurants und reviews sieht Ihr Befehl so aus: folgt:

gcloud firestore export gs://[BUCKET_NAME] \
--collection-ids=restaurants,reviews \
--database='cymbal'

Aus einem PITR-Zeitstempel exportieren

Sie können Ihre Datenbank aus PITR-Daten nach Cloud Storage exportieren. mit dem Befehl gcloud firestore export. Sie können PITR-Daten exportieren, bei denen der Zeitstempel ein ganzer Minutenwert innerhalb der letzten sieben Tage, aber nicht vor dem earliestVersionTime. Wenn die Daten nicht mehr zum angegebenen Zeitstempel existiert, schlägt der Exportvorgang fehl.

Der PITR-Exportvorgang unterstützt alle Filter, einschließlich des Exports aller Dokumente und bestimmter Sammlungen.

  1. Exportieren Sie die Datenbank und geben Sie für den Parameter snapshot-time den gewünschten Wiederherstellungszeitstempel an.

    gcloud

    Führen Sie den folgenden Befehl aus, um die Datenbank in Ihren Bucket zu exportieren.

    gcloud firestore export gs://[BUCKET_NAME_PATH] \
        --snapshot-time=[PITR_TIMESTAMP] \
        --collection-ids=[COLLECTION_IDS] \
        --namespace-ids=[NAMESPACE_IDS]
    

    Dabei gilt:

    • PITR_TIMESTAMP: ein PITR-Zeitstempel mit minutengenauem Detaillierungsgrad, z. B. 2023-05-26T10:20:00.00Z.

    Beachten Sie die folgenden Punkte, bevor Sie PITR-Daten exportieren:

    • Zeitstempel in RFC 3339 angeben Format. Beispiel: 2020-09-01T23:59:30.234233Z.
    • Der angegebene Zeitstempel muss eine ganze Minute sein innerhalb der letzten sieben Tage, aber nicht vor dem earliestVersionTime Wenn am angegebenen Ort keine Daten mehr vorhanden sind, wird ein Fehler generiert.
    • Ein fehlgeschlagener PITR-Export wird Ihnen nicht in Rechnung gestellt.

Daten importieren

Sobald Sie Dateien in Cloud Storage exportiert haben, können Sie Dokumente aus diesen Dateien wieder in Ihr Projekt oder in ein anderes Projekt importieren. Beachten Sie die folgenden Punkte zu Importvorgängen:

  • Beim Importieren von Daten werden die erforderlichen Indexe mit den aktuellen Indexdefinitionen der Datenbank aktualisiert. Ein Export enthält keine Indexdefinitionen.

  • Es werden beim Import keine neuen Dokument-IDs zugewiesen. Für den Import werden die IDs verwendet, die zum Zeitpunkt des Exports erfasst wurden. Die ID eines Dokuments wird beim Import reserviert, um ID-Kollisionen zu vermeiden. Wenn ein Dokument mit derselben ID bereits vorhanden ist, wird das vorhandene Dokument durch den Import überschrieben.

  • Wenn ein Dokument in Ihrer Datenbank nicht von einem Import betroffen ist, bleibt es nach dem Import in Ihrer Datenbank bestehen.

  • Importvorgänge lösen keine Cloud Functions-Funktionen aus. Snapshot-Listener erhalten Aktualisierungen im Zusammenhang mit Importvorgängen.

  • Der Dateiname „.overall_export_metadata“ muss mit dem Namen der übergeordneten Datei übereinstimmen Ordner:

    gs://BUCKET_NAME/OPTIONAL_NAMESPACE_PATH/PARENT_FOLDER_NAME/PARENT_FOLDER_NAME.overall_export_metadata

    Wenn Sie die Ausgabedateien eines Exports verschieben oder kopieren, behalten Sie das Feld Die Dateien PARENT_FOLDER_NAME und .overall_export_metadata nicht identisch sind.

Alle Dokumente aus einem Export importieren

Google Cloud Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.

  3. Klicken Sie im Navigationsmenü auf Importieren/Exportieren.

  4. Klicken Sie auf Importieren.

  5. Geben Sie im Feld Dateiname den Dateinamen einer .overall_export_metadata-Datei aus einem abgeschlossenen Exportvorgang ein. Sie können die Schaltfläche Durchsuchen verwenden, um die Datei auszuwählen.

  6. Klicken Sie auf Importieren.

Die Console kehrt zur Seite Import/Export zurück. Wenn der Vorgang erfolgreich gestartet wird, fügt die Seite der letzten Import- und Exportseite einen Eintrag hinzu. Bei einem Fehler wird auf der Seite eine Fehlermeldung angezeigt.

gcloud

Verwenden Sie den Befehl firestore import, um Dokumente aus einem vorherigen Exportvorgang zu importieren,

gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --database=[DATABASE]

Ersetzen Sie Folgendes:

  • BUCKET_NAME/EXPORT_PREFIX: Standort Ihres Exportdateien.

  • DATABASE ist der Name der Datenbank. Verwenden Sie für die Standarddatenbank --database='(default)'.

Beispiel:

gcloud firestore import gs://my-bucket/2017-05-25T23:54:39_76544/ --database='cymbal'

Den Speicherort Ihrer Exportdateien können Sie in der Cloud Storage-Browser in der Google Cloud Console:

Cloud Storage-Browser öffnen

Wenn Sie einen Import gestartet haben, wird der Vorgang durch Schließen des Terminals nicht abgebrochen. Siehe Vorgang abbrechen.

Bestimmte Sammlungen importieren

Google Cloud Console

Sie können in der Konsole keine bestimmten Sammlungen auswählen. Verwenden Sie stattdessen gcloud.

gcloud

Verwenden Sie das Flag --collection-ids, um bestimmte Sammlungsgruppen aus einer Gruppe von Exportdateien zu importieren. Der Vorgang importiert nur die Sammlungsgruppen mit den angegebenen Sammlungs-IDs. Die Sammlung Gruppe enthält alle Sammlungen und Untersammlungen (in einem beliebigen Pfad) mit dem Attribut die angegebene Sammlungs-ID enthält. Geben Sie den Datenbanknamen mithilfe der --database an melden. Verwenden Sie für die Standarddatenbank --database='(default)'.

Nur ein Export bestimmter Sammlungsgruppen unterstützt den Import bestimmter Sammlungsgruppen. Der Import bestimmter Sammlungen aus einem Export aller Dokumente ist nicht möglich.

  gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ \
  --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2],[SUBCOLLECTION_ID_1] \
  --database=[DATABASE]

PITR-Export importieren

Folgen Sie der Anleitung unter Alle Dokumente importieren, um Ihre exportierten Daten zu importieren. Datenbank. Wenn ein Dokument bereits in Ihrer Datenbank vorhanden ist, überschrieben.

Export- und Importvorgänge verwalten

Nachdem Sie einen Export- oder Importvorgang gestartet haben, weist Firestore dem Vorgang einen eindeutigen Namen zu. Sie können mit diesem Namen den Vorgang löschen, abbrechen oder seinen Status prüfen.

Vorgangsnamen haben das Präfix projects/[PROJECT_ID]/databases/(default)/operations/, zum Beispiel:

projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg

Wenn Sie für die Befehle describe, cancel und delete einen Vorgangsnamen angeben, können Sie das Präfix weglassen.

Alle Export- und Importvorgänge auflisten

Google Cloud Console

Eine Liste der letzten Export- und Importvorgänge finden Sie in der Seite Import/Export der Google Cloud Console.

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.

  3. Klicken Sie im Navigationsmenü auf Importieren/Exportieren.

gcloud

Verwenden Sie den Befehl operations list, um alle laufenden und kürzlich abgeschlossenen Export- und Importvorgänge anzeigen zu lassen:

gcloud firestore operations list

Vorgangsstatus prüfen

Google Cloud Console

Den Status eines aktuellen Export- oder Importvorgangs finden Sie in der Seite Import/Export der Google Cloud Console.

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.

  3. Klicken Sie im Navigationsmenü auf Importieren/Exportieren.

gcloud

Verwenden Sie den Befehl operations describe, um den Status eines Export- oder Importvorgangs anzeigen zu lassen.

gcloud firestore operations describe [OPERATION_NAME]

Fertigstellungszeit schätzen

Eine Anfrage für den Status eines Vorgangs mit langer Ausführungszeit liefert die Messwerte workEstimated und workCompleted. Beide Messwerte werden als Anzahl der Byte und als Anzahl der Entitäten zurückgegeben:

  • workEstimated weist die geschätzte Gesamtzahl der Byte und Dokumente aus, die ein Vorgang verarbeitet. Firestore kann diesen Messwert auslassen, wenn er keine Schätzung vornehmen kann.

  • workCompleted weist die Anzahl der bisher verarbeiteten Byte und Dokumente aus. Nachdem der Vorgang abgeschlossen ist, zeigt der Wert die Gesamtanzahl der tatsächlich verarbeiteten Byte und Dokumente an, die möglicherweise größer als der Wert von workEstimated ist.

Teilen Sie workCompleted durch workEstimated, um eine grobe Schätzung des Fortschritts zu erhalten. Diese Schätzung ist möglicherweise ungenau, da sie von der verzögerten Statistikerfassung abhängt.

Vorgang abbrechen

Google Cloud Console

Einen laufenden Export- oder Importvorgang können Sie im Seite Import/Export der Google Cloud Console.

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.

  3. Klicken Sie im Navigationsmenü auf Importieren/Exportieren.

In der Tabelle Aktuelle Importe und Exporte enthalten aktuell ausgeführte Vorgänge die Schaltfläche Abbrechen in der Spalte Abgeschlossen. Klicken Sie auf die Schaltfläche Abbrechen, um den Vorgang zu beenden. Die Schaltfläche ändert sich in eine Abbrechen- und, sobald der Vorgang komplett ist, in eine Storniert-Nachricht.

gcloud

Verwenden Sie den Befehl operations cancel, um einen laufenden Vorgang zu stoppen:

gcloud firestore operations cancel [OPERATION_NAME]

Durch das Abbrechen eines laufenden Vorgangs wird der Vorgang nicht rückgängig gemacht. Bei einem abgebrochenen Exportvorgang werden die bereits in Cloud Storage exportierten Dokumente beibehalten. Bei einem abgebrochenen Importvorgang werden die bereits an der Datenbank vorgenommenen Aktualisierungen beibehalten. Sie können einen unvollständigen Export nicht importieren.

Vorgang löschen

Verwenden Sie den Befehl gcloud firestore operations delete, um einen Vorgang aus der Liste der letzten Vorgänge zu entfernen. Mit diesem Befehl werden keine Exportdateien aus Cloud Storage gelöscht.

gcloud firestore operations delete [OPERATION_NAME]

Abrechnung und Preise für Export- und Importvorgänge

Damit Sie den verwalteten Export- und Importdienst verwenden können, müssen Sie die Abrechnung für Ihr Google Cloud-Projekt aktivieren.

Für Export- und Importvorgänge fallen Kosten an für Lese- und Schreibvorgänge von Dokumenten mit den in Firestore-Preise. Für Exportvorgänge ist ein Lesevorgang erforderlich Vorgang pro exportiertem Dokument. Für Importvorgänge ist ein Schreibvorgang pro Dokument importiert.

In Cloud Storage gespeicherte Ausgabedateien werden auf Ihre in Cloud Storage gespeicherten Daten angerechnet.

Die Kosten für Export- und Importvorgänge werden nicht auf das Ausgabenlimit angerechnet. Export- oder Importvorgänge werden erst nach Abschluss auf das Google Cloud-Budget angerechnet. Die während eines Export- oder Importvorgangs ausgeführten Lese- und Schreibvorgänge werden nach Abschluss des Vorgangs auf Ihr tägliches Kontingent angerechnet. Export- und Importvorgänge wirken sich nicht auf die im Abschnitt "Nutzung" der Konsole angezeigte Nutzung aus.

Preise für Export und Import aufrufen

Bei Export- und Importvorgängen wird das goog-firestoremanaged:exportimport-Label auf in Rechnung gestellte Vorgänge angewendet. Auf der Seite der Cloud Billing-Berichte können Sie über dieses Label Kosten für Import- und Exportvorgänge aufrufen:

Über das Filtermenü auf das Label &quot;goog-firestoremanaged&quot; zugreifen.

Nach BigQuery exportieren

Wenn Sie einen collection-ids-Filter angegeben haben, können Sie Daten aus einem Firestore-Export in BigQuery laden. Weitere Informationen finden Sie unter Daten aus Firestore-Exporten laden.

BigQuery-Spaltenlimit

In BigQuery gilt ein Limit von 10.000 Spalten pro Tabelle. Firestore-Exportvorgänge generieren für jede Sammlungsgruppe ein BigQuery-Tabellenschema. In diesem Schema dient jeder eindeutige Feldname innerhalb einer Sammlungsgruppe als Schemaspalte.

Wenn das BigQuery-Schema einer Sammlungsgruppe mehr als 10.000 Spalten umfasst, wird beim Firestore-Exportvorgang versucht, die Spaltenbeschränkung zu beachten. Dazu werden die Map-Felder in Form von Byte behandelt. Wenn durch diese Umwandlung die Anzahl der Spalten 10.000 nicht übersteigt, können Sie die Daten in BigQuery laden, aber nicht die Unterfelder innerhalb der Map-Felder abfragen. Wenn die Anzahl der Spalten immer noch über 10.000 beträgt, erzeugt der Exportvorgang kein BigQuery-Schema für die Sammlungsgruppe und die Daten können nicht in BigQuery geladen werden.

Exportformat und Metadatendateien

Die Ausgabe eines verwalteten Exports verwendet das LevelDB-Logformat.

Metadatendateien

Beim Exportvorgang wird für jede von Ihnen angegebene Sammlungsgruppe eine Metadatendatei erstellt. Metadatendateien heißen in der Regel ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata.

Die Metadatendateien sind Protokollpuffer und können mit dem Protokollcompiler protoc decodiert werden. Sie können beispielsweise eine Metadatendatei decodieren, um die Sammlungsgruppen zu bestimmen, die die Exportdateien enthalten:

protoc --decode_raw < export0.export_metadata

Migration des Dienst-Agents

Firestore verwendet einen Firestore-Dienst-Agent zum Autorisieren des Imports und Exportvorgänge ausführen, anstatt das App Engine-Dienstkonto zu verwenden. Für den Dienst-Agent und das Dienstkonto gelten die folgenden Namenskonventionen:

Firestore-Dienst-Agent
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com

Firestore hat zuvor den App Engine-Standarddienst verwendet anstelle des Firestore-Dienst-Agents. Wenn Ihre Datenbank weiterhin das App Engine-Dienstkonto für den Import oder Export von Daten verwendet, empfehlen wir Ihnen, der Anleitung in diesem Abschnitt zu folgen, den Firestore-Dienst-Agent zu verwenden.

App Engine-Dienstkonto
PROJECT_ID@appspot.gserviceaccount.com

Der Firestore-Dienst-Agent ist vorzuziehen, da er spezifisch ist. zu Firestore. Das App Engine-Dienstkonto ist freigegeben von mehreren Diensten.

Autorisierungskonto ansehen

Sie können sehen, über welches Konto die Import- und Exportvorgänge autorisiert werden Anfragen von der Seite Import/Export in der Google Cloud Console. Sie können auch Prüfen Sie, ob Ihre Datenbank bereits Firestore verwendet Dienst-Agent.

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
  3. Klicken Sie im Navigationsmenü auf Importieren/Exportieren.

  4. Sehen Sie sich das Autorisierungskonto neben dem Import-/Exportjobs ausführen als Label.

Wenn Ihr Projekt den Firestore-Dienst-Agent nicht verwendet, zum Firestore-Dienst-Agent mit einer der folgenden Methoden diese Techniken einsetzen:

Die erste dieser Techniken ist zu bevorzugen, da sie den Umfang der auf ein einzelnes Firestore-Projekt auswirken. Die zweite Technik ist nicht bevorzugt, da der vorhandene Cloud Storage-Bucket nicht migriert wird Berechtigungen. Es bietet jedoch Sicherheitscompliance im Unternehmen.

Migrieren Sie, indem Sie Cloud Storage-Bucket-Berechtigungen prüfen und aktualisieren

Der Migrationsprozess umfasst zwei Schritte:

  1. Aktualisieren Sie die Cloud Storage-Bucket-Berechtigungen. Im folgenden Abschnitt finden Sie Details.
  2. Bestätigen Sie die Migration zum Firestore-Dienst-Agent.

Bucket-Berechtigungen des Dienst-Agents

Für alle Export- oder Importvorgänge, die einen Cloud Storage-Bucket in anderen Projekt gibt, müssen Sie dem Firestore-Dienst-Agent Berechtigungen für diesen Bucket. Zum Beispiel Vorgänge, bei denen Daten in eine andere Projekt auf einen Bucket in diesem anderen Projekt zugreifen müssen. Andernfalls werden diese Vorgänge schlagen nach der Migration zum Firestore-Dienst fehl .

Für Import- und Export-Workflows, die im selben Projekt bleiben, ist kein Änderungen an den Berechtigungen. Der Firestore-Dienst-Agent hat Zugriff Buckets im selben Projekt.

Aktualisieren Sie die Berechtigungen für Cloud Storage-Buckets aus anderen Projekten, um Zugriff auf die service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com Dienst-Agent. Gewähren Sie dem Dienst-Agent die Rolle Firestore Service Agent.

Die Rolle Firestore Service Agent gewährt Lese- und Schreibberechtigungen für ein Cloud Storage-Bucket. Wenn Sie nur Lese- oder Nur-Schreibzugriff gewähren müssen Berechtigungen, verwenden Sie benutzerdefinierte Rolle.

Der im folgenden Abschnitt beschriebene Migrationsprozess hilft Ihnen, Cloud Storage Buckets, die möglicherweise Aktualisierungen von Berechtigungen erfordern.

Projekt zum Firestore-Dienst-Agent migrieren

Führen Sie die folgenden Schritte aus, um vom App Engine-Dienstkonto zu migrieren den Firestore-Dienst-Agent. Nach Abschluss der Migration kann sie nicht mehr rückgängig gemacht.

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
  3. Klicken Sie im Navigationsmenü auf Importieren/Exportieren.

  4. Wenn Ihr Projekt noch nicht zum Firestore-Dienst migriert wurde Agent enthält, wird ein Banner mit einer Beschreibung der Migration und die Schaltfläche Bucket-Status prüfen. Im nächsten Schritt identifizieren Sie mögliche Berechtigungsfehler beheben.

    Klicken Sie auf Bucket-Status prüfen.

    Es wird ein Menü mit der Option zum Abschließen der Migration angezeigt. Außerdem wird ein Liste der Cloud Storage-Buckets. Es kann einige Minuten dauern, um den Ladevorgang der Liste abzuschließen.

    Diese Liste enthält Buckets, die in Import- und Exportvorgängen verwendet werden, aber derzeit keine Lese- und Schreibberechtigungen für den Firestore-Dienst-Agent.

  5. Notieren Sie sich den Prinzipalnamen des Firestore-Eintrags Ihres Projekts Dienst-Agent. Der Name des Dienst-Agents wird unter dem Label Dienst-Agent, dem Zugriff gewährt werden soll
  6. Für jede Gruppe in der Liste für zukünftige Import- oder Exportvorgänge verwenden, führen Sie folgende Schritte aus: Schritte:

    1. Klicken Sie in der Tabellenzeile dieses Buckets auf Korrigieren. Dadurch wird die Berechtigungsseite dieses Buckets in einem neuen Tab geöffnet.

    2. Klicken Sie auf Hinzufügen.
    3. Geben Sie in das Feld Neue Hauptkonten den Namen Ihres Firestore-Dienst-Agent
    4. Wähle im Feld Rolle auswählen die Option Dienst-Agents > Firestore-Dienst-Agent
    5. Klicken Sie auf Speichern.
    6. Kehren Sie zum Tab mit der Firestore-Seite „Import/Export“ zurück.
    7. Wiederholen Sie diese Schritte für andere Buckets in der Liste. Stellen Sie sicher, dass Sie alle Seiten der Liste enthält.
  7. Klicken Sie auf Zum Firestore-Dienst-Agent migrieren. Wenn Sie noch Buckets mit fehlgeschlagenen Berechtigungsprüfungen haben, müssen Sie die Migration bestätigen, indem Sie auf Migrieren klicken.

    Sie werden über eine Benachrichtigung informiert, wenn die Migration abgeschlossen ist. Migration nicht möglich rückgängig gemacht.

Status der Migration abrufen

So überprüfen Sie den Migrationsstatus Ihres Projekts:

  1. Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
  3. Klicken Sie im Navigationsmenü auf Importieren/Exportieren.

  4. Suchen Sie nach dem Hauptkonto neben dem Label Import-/Exportjobs als ausführen als.

    Wenn das Hauptkonto service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com ist, ist Ihr Projekt bereits zu Firestore migriert Dienst-Agent. Die Migration kann nicht rückgängig gemacht werden.

    Wenn das Projekt nicht migriert wurde, wird oben auf der Seite ein Banner angezeigt. durch die Schaltfläche Bucket-Status prüfen. Weitere Informationen finden Sie unter Zum Firestore-Dienst-Agent migrieren um die Migration abzuschließen.

Organisationsweite Richtlinieneinschränkung hinzufügen

  • Legen Sie die folgende Einschränkung in der Richtlinie Ihrer Organisation fest:

    Firestore-Dienst-Agent für Import/Export erforderlich (firestore.requireP4SAforImportExport).

    Für diese Einschränkung sind Import- und Exportvorgänge erforderlich, um die Methode Firestore-Dienst-Agent zum Autorisieren von Anfragen. Informationen zum Festlegen dieser Einschränkung finden Sie unter <ph type="x-smartling-placeholder"></ph> Organisationsrichtlinien erstellen und verwalten

Durch Anwenden dieser Einschränkung der Organisationsrichtlinie wird der Parameter Cloud Storage-Bucket-Berechtigungen für die Firestore-Dienst-Agent

Wenn durch die Einschränkung Berechtigungsfehler für Import- oder Export-Workflows entstehen, können Sie es deaktivieren, um wieder das Standarddienstkonto zu verwenden. Nach der Prüfung und Aktualisierung des Cloud Storage-Bucket Berechtigungen haben, können Sie die Einschränkung wieder aktivieren.