SQL Connect-Dienste und -Datenbanken verwalten

Ihre SQL Connect Projekte bestehen aus zwei Hauptkomponenten der Infrastruktur elemente:

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

In diesem Leitfaden wird beschrieben, wie Sie Ihre SQL Connect Dienstinstanzen einrichten und verwalten. Außerdem wird erläutert, wie Sie die zugehörigen Cloud SQL Instanzen verwalten.

Regionen für Firebase SQL Connect konfigurieren

Für Projekte, die SQL Connect verwenden, muss ein Standort festgelegt werden.

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

Verfügbare Standorte

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

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1 (nicht für Testversionen des Spark-Tarifs verfügbar)
  • asia-southeast2 (nicht für Testversionen des Spark-Tarifs verfügbar)
  • 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

SQL Connect-Dienstinstanzen verwalten

Dienste erstellen

Verwenden Sie die Firebase Console oder führen Sie die lokale Projekt initialisierung mit der Firebase CLI aus, um einen neuen Dienst zu erstellen. Mit diesen Workflows wird ein neuer SQL Connect Dienst erstellt.

Diese Abläufe führen Sie auch durch folgende Schritte:

  • Eine neue Cloud SQL Instanz bereitstellen (kostenloser Tarif)
  • Eine vorhandene Cloud SQL Instanz mit SQL Connect verknüpfen (Blaze-Tarif)

Nutzer verwalten

SQL Connect bietet Tools zur Verwaltung des Nutzerzugriffs, die dem dem Prinzip der geringsten Berechtigung folgen (jedem Nutzer oder Dienstkonto werden die minimal notwendigen Berechtigungen gewährt, um die erforderliche Funktionalität zu unterstützen) und auf der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) basieren (mit vordefinierten Rollen zur Verwaltung von Datenbank berechtigungen, wodurch die Sicherheitsverwaltung vereinfacht wird).

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

Diese Rollen gewähren Berechtigungen mithilfe von Identity and Access Management (IAM). Eine Rolle ist eine Sammlung von Berechtigungen. Wenn Sie einem Projektmitglied eine Rolle zuweisen, gewähren Sie diesem Projektmitglied alle Berechtigungen, die in der Rolle enthalten sind. Weitere Informationen finden Sie unter:

Rollen auswählen, um bestimmte Workflows zu aktivieren

Mit IAM-Rollen können Sie Firebase CLI-Workflows verwenden, um Ihre SQL Connect Projekte zu verwalten.

Befehl 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 Zielinstanz Cloud SQL
firebase dataconnect:sql:grant
  • roles/cloudsql.admin für die Zielinstanz Cloud SQL

Leistung des SQL Connect Dienstes beobachten

Leistung des Diensts verstehen

Die Leistung des SQL Connect Dienstes und des Cloud SQL für PostgreSQL-Dienstes kann sich auf Ihre Erfahrung auswirken.

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

    • Ein Kontingent von 24.000 GraphQL-Anfragen pro Minute und Projekt pro Region

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

Dienstleistung, Nutzung und Abrechnung beobachten

Sie können Anfragen, Fehler und Vorgangsraten sowohl global als auch pro Vorgang in der Firebase Console beobachten.

Instanzen verwaltenCloud SQL

Einschränkungen des kostenlosen Probeabos

Die folgenden Cloud SQL für PostgreSQL-Funktionen werden in den kostenlosen Testversionen des Spark- oder Blaze-Tarifs nicht unterstützt:

  • Anderer Maschinentyp als db-f1-micro
  • Ändern von Ressourcen Ihrer Instanz, z. B. Region, Speicher, Arbeitsspeicher, CPU
  • Andere PostgreSQL-Versionen als 15.x
  • Lesereplikate
  • Private IP-Adresse der Instanz
  • Hohe Verfügbarkeit (mehrere Zonen); nur Instanzen mit einer Zone werden unterstützt
  • Enterprise Plus-Version
  • Automatische Sicherungen
  • Automatische Speichererweiterung

Einschränkungen von temporären Onboarding-Datenbanken

Wenn Sie Ihrem Firebase-Projekt SQL Connect hinzufügen, können Sie sofort mit dem Prototyping Ihres Datenmodells beginnen und Daten laden, da die Daten in einer temporären Datenbank gespeichert werden. Die Bereitstellung Ihrer permanenten Cloud SQL für PostgreSQL-Instanz dauert 5 bis 20 Minuten. Alle von Ihnen geladenen Erstdaten werden automatisch in Ihre permanente PostgreSQL-Datenbank migriert, sobald sie bereitgestellt wurde.

Diese temporäre Datenbank eignet sich hervorragend, um Ihr Schema und Ihre CRUD-Vorgänge zu untersuchen.

Wenn Sie die temporäre Datenbank nicht verwenden möchten, warten Sie, bis Ihre Cloud SQL Instanz bereitgestellt wurde.

Die temporäre Datenbank ist keine PostgreSQL-Datenbank und bietet nicht alle PostgreSQL-Funktionen.

Wichtige Einschränkungen sind:

  • Die Datenbankgröße muss weniger als 1 MB betragen.
  • Die Anzahl der Zeilen pro Tabelle muss weniger als 1.000 betragen.
  • Weniger als 1 Abfrage pro Sekunde
  • Keine Unterstützung für die Volltextsuche
  • Keine Unterstützung für die Generierung von Vektoreinbettungen
  • Keine Unterstützung für SQL-Funktionen wie @view, @col(dataType), oder natives SQL.

Cloud SQL-Instanzen verwalten

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

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

PostgreSQL-Nutzerrollen gewähren

SQL Connect bietet Tools zur Verwaltung des Nutzerzugriffs, die dem dem Prinzip der geringsten Berechtigung folgen (jedem Nutzer oder Dienstkonto werden die minimal notwendigen Berechtigungen gewährt, um die erforderliche Funktionalität zu unterstützen) und auf der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) basieren (mit vordefinierten Rollen zur Verwaltung von Datenbank berechtigungen, wodurch die Sicherheitsverwaltung vereinfacht wird).

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

Um solche Verbindungen zu ermöglichen, müssen Sie SQL-Berechtigungen gewähren:

  • Weisen Sie dem Nutzer oder Dienstkonto das eine Verbindung zur Instanz herstellen muss, die roles/cloudsql.client IAM-Rolle zu. Dies kann entweder über die Google Cloud Console oder mit der gcloud CLI erfolgen.
  • Gewähren Sie die erforderliche PostgreSQL-Rolle mit der Firebase CLI.

Cloud SQL-IAM-Rolle zuweisen

Informationen zum Arbeiten mit Cloud SQL für PostgreSQL zum Zuweisen der IAM Rolle roles/cloudsql.client finden Sie unter Rollen und Berechtigungen.

PostgreSQL-Rollen gewähren

Mit der Firebase CLI können Sie Nutzern oder Dienstkonten, die mit Ihrem Projekt verknüpft sind, mit dem firebase dataconnect:sql:grant Befehl vordefinierte PostgreSQL-Rollen gewähren.

Führen Sie beispielsweise den folgenden Befehl mit der Firebase CLI aus, um die Rolle „Writer“ zu gewähren:

firebase dataconnect:sql:grant --role writer

Weitere Informationen finden Sie im Firebase CLI-Referenzleitfaden.

Vorhandene Cloud SQL for PostgreSQL-Datenbanken einbinden

Der Standardablauf für die Datenbankbereitstellung und -verwaltung geht davon aus, dass Ihr Projekt neue Datenbanken verwendet. Wenn Sie firebase deploy, SQL Connect aufrufen, zeigt SQL Connect die Änderungen am Datenbankschema an, die vorgenommen werden müssen, und führt alle Migrationen aus, nachdem Sie sie genehmigt haben.

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

In diesem Abschnitt finden Sie eine Anleitung für den letzteren Fall: das Einbinden vorhandener Datenbanken in SQL Connect.

Vorhandene Datenbank in ein SQL Connect Projekt einbinden

Der Workflow zum Einbinden einer vorhandenen Datenbank umfasst in der Regel die folgenden Schritte:

  1. Wählen Sie bei der Einrichtung des SQL Connect Projekts in der Firebase Konsole, die Instanz und die Datenbank aus.

  2. Führen Sie mit der Firebase CLI den Befehl firebase dataconnect:sql:setup aus und lehnen Sie die Option ab, SQL Connect die SQL Migrationen zu überlassen.

    Um Änderungen an Ihrem Datenbankschema zu verhindern, die nicht von Ihren benutzerdefinierten Tools vorgenommen werden, weist der Befehl setup die entsprechenden Leser- und Autorenrollen, aber nicht die Rolle owner zu. Weitere Informationen zum Befehl setup und zu PostgreSQL-Rollen finden Sie im Firebase CLI-Referenzleitfaden.

  3. Erstellen Sie ein SQL Connect GraphQL-Schema, das Ihrem Datenbank schema entspricht.

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

    Um die Abstimmung beider Schemas zu vereinfachen, stellen wir den Befehl firebase dataconnect:sql:diff bereit, der Ihnen die erforderlichen SQL-Anweisungen zum Migrieren Ihrer Datenbank liefert. Damit können Sie Ihr GraphQL-Schema iterativ an Ihr vorhandenes Datenbankschema anpassen.

  4. In Zukunft können Sie Ihr GraphQL-Schema, Ihre Abfragen und Mutationen schnell in Ihrer lokalen Entwicklungsumgebung durchlaufen. Wenn Sie 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 sie dann in Ihr GraphQL-Schema übertragen. Wir empfehlen den GraphQL-First-Ansatz, da es Fälle geben kann, in denen die Schemaänderungen nicht unterstützt werden. Wenn Sie außerdem Änderungen bereitstellen, die Ihr PostgreSQL-Schema mit den bereitgestellten Connector-Abfragen oder -Mutationen inkompatibel machen, funktionieren diese Connectors möglicherweise nicht mehr oder verhalten sich nicht wie erwartet.