Data Connect-Dienste und ‑Datenbanken verwalten

Ihre Data Connect-Projekte bestehen aus zwei wichtigen Infrastrukturelementen:

  • Eine oder mehrere Data Connect-Dienstinstanzen
  • Eine oder mehrere Cloud SQL for PostgreSQL-Instanzen

In diesem Leitfaden erfahren Sie, wie Sie Ihre Data Connect-Dienstinstanzen einrichten und verwalten und wie Sie die zugehörigen Cloud SQL-Instanzen verwalten.

Regionen für Firebase Data Connect konfigurieren

Für Projekte, in denen Data Connect verwendet wird, ist eine Standorteinstellung erforderlich.

Wenn Sie eine neue Data Connect-Dienstinstanz erstellen, werden Sie aufgefordert, den Standort des Dienstes auszuwählen.

Verfügbare Standorte

Data Connect-Dienste können in den folgenden Regionen erstellt werden.

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1
  • asia-southeast2
  • australia-southeast1
  • australia-southeast2
  • europe-central2
  • europe-north1
  • europe-southwest1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • europe-west8
  • europe-west9
  • me-west1
  • northamerica-northeast1
  • northamerica-northeast2
  • southamerica-east1
  • southamerica-west1
  • us-central1
  • us-east1
  • us-east4
  • us-south1
  • us-west1
  • us-west2
  • us-west3
  • us-west4

Data Connect-Dienstinstanzen verwalten

Dienste erstellen

Wenn Sie einen neuen Dienst erstellen möchten, verwenden Sie die Firebase-Konsole oder führen Sie die lokale Projektinitialisierung mit der Firebase-Befehlszeile aus. Mit diesen Workflows wird ein neuer Data Connect-Dienst erstellt.

Außerdem werden Sie durch Folgendes geführt:

  • Neue Cloud SQL-Instanz bereitstellen (kostenlose Stufe)
  • Vorhandene Cloud SQL-Instanz mit Data Connect verknüpfen (Blaze-Tarif)

Nutzer verwalten

Data Connect bietet Tools zur Verwaltung des Nutzerzugriffs, die dem Prinzip der geringsten Berechtigung folgen (jedem Nutzer oder Dienstkonto werden die minimal erforderlichen Berechtigungen zur Unterstützung der erforderlichen Funktionen gewährt) und dem Konzept der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) (mit vordefinierten Rollen zum Verwalten von Datenbankberechtigungen, was die Sicherheitsverwaltung vereinfacht).

Wenn Sie Projektmitglieder als Nutzer hinzufügen möchten, die Data Connect-Instanzen in Ihrem Projekt ändern können, wählen Sie in der Firebase-Konsole die entsprechenden vordefinierten Nutzerrollen aus.

Mit diesen Rollen werden Berechtigungen mithilfe von Identity and Access Management (IAM) gewährt. Eine Rolle ist eine Sammlung von Berechtigungen. Wenn Sie einem Projektmitglied eine Rolle zuweisen, gewähren Sie diesem Projektmitglied alle mit der Rolle verknüpften Berechtigungen. Weitere Informationen finden Sie unter:

Rollen auswählen, um bestimmte Workflows zu aktivieren

Mit IAM-Rollen können Sie Ihre Firebase-Projekte mithilfe von Data Connect-CLI-Workflows verwalten.

Befehl in der Befehlszeile, anderer Workflow Erforderliche Rolle(n)
firebase init dataconnect
  • Keine Berechtigungen (wenn keine Cloud SQL-Instanz verknüpft wird)
  • roles/cloudsql.admin (beim Erstellen einer Cloud SQL-Instanz)
firebase deploy -–only dataconnect
  • firebasedataconnect.connectors.*
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
  • roles/cloudsql.admin
firebase dataconnect:sql:diff
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
firebase dataconnect:sql:migrate
  • roles/cloudsql.admin für die Ziel-Cloud SQL-Instanz
firebase dataconnect:sql:grant
  • roles/cloudsql.admin für die Ziel-Cloud SQL-Instanz

Data Connect-Dienstleistung überwachen

Leistung des Diensts verstehen

Die Leistung sowohl des Data Connect-Dienstes als auch des Cloud SQL for PostgreSQL-Dienstes kann sich auf die Nutzung auswirken.

  • Allgemeine Informationen zum Cloud SQL for PostgreSQL-Dienst finden Sie in der Dokumentation zu Kontingenten und Limits.
  • Für den Data Connect-Dienst gibt es ein Kontingent für GraphQL-Anfragen, das sich auf die Häufigkeit auswirkt, mit der Sie Abfragen aufrufen und ausführen können:

    • Ein Gesamtkontingent von 6.000 Anfragen pro Minute und Projekt über Client-App-Connectors.
    • Ein Gesamtkontingent pro Projekt von 6.000 Anfragen pro Minute über die Firebase Admin SDK und die REST API.
    • Ein Kontingent von 1.200 Anfragen pro Minute und Nutzer. „Pro Nutzer“ bedeutet hier, dass das Limit auf Anfragen angewendet wird, die von einer IP-Adresse aus gestartet werden, unabhängig davon, ob sie von einer Client-App, von der Firebase Admin SDK oder von der REST API stammen.

    Wenn Sie diese Kontingentlimits erreichen, wenden Sie sich bitte an den Firebase-Support, um das entsprechende Kontingent anzupassen.

Dienstleistung, Nutzung und Abrechnung im Blick behalten

In der Firebase-Konsole können Sie Anfragen, Fehler und Vorgangsraten sowohl global als auch pro Vorgang überwachen.

Cloud SQL-Instanzen verwalten

Einschränkungen des kostenlosen Testzeitraums

Die folgenden Cloud SQL for PostgreSQL-Features werden im 3-monatigen kostenlosen Testzeitraum nicht unterstützt:

  • Andere PostgreSQL-Versionen als 15.x
  • Vorhandene Cloud SQL for PostgreSQL-Instanzen verwenden
  • Andere Maschinenebene als db-f1-micro
  • Ressourcen Ihrer Instanz ändern, z. B. Speicher, Arbeitsspeicher, CPU
  • Lesereplikate
  • IP-Adresse der privaten Instanz
  • Hochverfügbarkeit (mehrere Zonen); nur Instanzen mit einer einzelnen Zone werden unterstützt
  • Enterprise Plus-Version
  • Automatische Sicherungen
  • Automatische Speichererweiterung

Cloud SQL-Instanzen verwalten

Im Allgemeinen können Sie Ihre Cloud SQL-Instanzen über die Google Cloud-Konsole verwalten, um die folgenden Workflows auszuführen.

  • Cloud SQL-Instanzen beenden und neu starten
  • Cloud SQL-Datenbanken (innerhalb von Instanzen) erstellen und löschen
  • PostgreSQL-Datenbankinstanzen mit Flags starten und verschiedene Erweiterungen verwenden
  • Leistung mit den Cloud SQL-Funktionen zur Observabilitӓt in der Google Cloud Console überwachen
  • Cloud SQL-Zugriff und -Sicherheit mit Funktionen wie IAM, Secret Manager, Datenverschlüsselung und Auth-Proxy verwalten
  • Cloud SQL-Nutzer hinzufügen, löschen und verwalten

Weitere Informationen zu diesen und anderen Workflows finden Sie in der Cloud SQL for PostgreSQL-Dokumentation.

PostgreSQL-Nutzerrollen gewähren

Data Connect bietet Tools zur Verwaltung des Nutzerzugriffs, die dem Prinzip der geringsten Berechtigung folgen (jedem Nutzer oder Dienstkonto werden die minimal erforderlichen Berechtigungen zur Unterstützung der erforderlichen Funktionen gewährt) und dem Konzept der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) (mit vordefinierten Rollen zum Verwalten von Datenbankberechtigungen, was die Sicherheitsverwaltung vereinfacht).

In einigen Fällen möchten Sie möglicherweise direkt über einen SQL-Client Ihrer Wahl eine Verbindung zur von Data Connect verwalteten Cloud SQL-Datenbank herstellen, z. B. mit Cloud Run, Cloud Functions oder GKE.

Um solche Verbindungen zu ermöglichen, müssen Sie SQL-Berechtigungen gewähren. Gehen Sie dazu so vor:

  • Weisen Sie die IAM-Rolle roles/cloudsql.client dem Nutzer- oder Dienstkonto zu, das eine Verbindung zur Instanz herstellen muss, entweder über die Google Cloud-Konsole oder über die gcloud CLI.
  • Erforderliche PostgreSQL-Rolle mit der Firebase-Befehlszeile gewähren

Cloud SQL-IAM-Rolle zuweisen

Informationen zur Verwendung von Cloud SQL for PostgreSQL zum Zuweisen der IAM-Rolle roles/cloudsql.client finden Sie unter Rollen und Berechtigungen.

PostgreSQL-Rollen gewähren

Mit der Firebase-Befehlszeile können Sie Nutzern oder Dienstkonten, die mit Ihrem Projekt verknüpft sind, vordefinierte PostgreSQL-Rollen zuweisen. Verwenden Sie dazu den Befehl firebase dataconnect:sql:grant.

Wenn Sie beispielsweise die Rolle „Autor“ gewähren möchten, führen Sie diesen Befehl in der Befehlszeile aus:

firebase dataconnect:sql:grant --role writer

Weitere Informationen finden Sie im Referenzhandbuch für die Befehlszeile.

Vorhandene Cloud SQL for PostgreSQL-Datenbanken einbinden

Der Standardablauf für die Bereitstellung und Verwaltung von Datenbanken geht davon aus, dass in Ihrem Projekt neue (Greenfield-)Datenbanken verwendet werden. Wenn Sie firebase deploy aufrufen, werden die erforderlichen Änderungen am Datenbankschema angezeigt und nach Ihrer Genehmigung werden alle Migrationen ausgeführt.Data Connect

Für vorhandene (Brownfield-)Datenbanken haben Sie möglicherweise einen eigenen Workflow zum Verwalten von Schemas und können die Data Connect-Tools für Migrationen nicht verwenden. Sie möchten Ihre Datenbank jedoch in einem Data Connect-Projekt verwenden, um unter anderem die SDK-Generierung für Mobilgeräte und das Web, die abfragebasierte Autorisierung und die Verwaltung von Clientverbindungen zu nutzen.

In diesem Abschnitt finden Sie eine Anleitung für den letzteren Fall: die Einbindung vorhandener Datenbanken in Data Connect.

.

Vorhandene Datenbank in ein Data Connect-Projekt einbinden

Der Workflow zur Einbindung einer vorhandenen Datenbank umfasst in der Regel die folgenden Schritte:

  1. Wählen Sie bei der Einrichtung des Data Connect-Projekts in der Firebase-Konsole die Instanz und Datenbank aus.
  2. Führen Sie über die Firebase-Befehlszeile den Befehl firebase dataconnect:sql:setup aus und lehnen Sie die Option ab, mit der Data Connect SQL-Migrationen verarbeiten kann.

    Damit Änderungen am Datenbankschema nicht von Ihrem benutzerdefinierten Tool gesteuert werden, werden mit dem Befehl setup die entsprechenden Lese- und Schreibrollen zugewiesen, aber nicht die Rolle owner. Weitere Informationen zum Befehl setup und zu PostgreSQL-Rollen finden Sie im Referenzhandbuch für die Befehlszeile.

  3. Erstellen Sie ein Data Connect GraphQL-Schema, das mit Ihrem Datenbankschema übereinstimmt.

    Sie können Ihr GraphQL-Schema, Ihre Abfragen und Mutationen nur dann bereitstellen, wenn Ihr GraphQL-Schema mit Ihrem PostgreSQL-Schema kompatibel ist.

    Zur Vereinfachung der Ausrichtung der beiden Schemas stellen wir den Befehl firebase dataconnect:sql:diff bereit, mit dem Sie die erforderlichen SQL-Anweisungen für die Migration Ihrer Datenbank erhalten. So können Sie Ihr GraphQL-Schema iterativ so anpassen, dass es Ihrem vorhandenen Datenbankschema entspricht.

  4. In Zukunft können Sie Ihr GraphQL-Schema, Ihre Abfragen und Ihre Mutationen in Ihrer lokalen Entwicklungsumgebung schnell iterieren. Wenn Sie mit dem Ergebnis zufrieden sind, können Sie mit firebase dataconnect:sql:diff die SQL-Migrationsanweisungen abrufen, die Sie mit Ihren benutzerdefinierten Tools und Abläufen auf PostgreSQL anwenden können.

  5. Alternativ können Sie zuerst Änderungen direkt an Ihrer PostgreSQL-Datenbank vornehmen und dann versuchen, sie in Ihr GraphQL-Schema zu übertragen. Wir empfehlen den GraphQL-first-Ansatz, da es Fälle geben kann, in denen die Schemaänderungen nicht unterstützt werden. Wenn Sie Änderungen einführen, die Ihr PostgreSQL-Schema mit bereitgestellten Connector-Abfragen oder ‑Mutationen inkompatibel machen, funktionieren diese Connector möglicherweise nicht mehr oder verhalten sich nicht wie erwartet.