Ihre SQL Connect-Projekte bestehen aus zwei wichtigen Infrastrukturelementen:
- Eine oder mehrere SQL Connect-Dienstinstanzen
- Eine oder mehrere Cloud SQL-Instanzen für PostgreSQL
In diesem Leitfaden wird beschrieben, wie Sie Ihre SQL Connect-Dienstinstanzen einrichten und verwalten. Außerdem wird erläutert, wie Sie Ihre zugehörigen Cloud SQL-Instanzen verwalten.
Regionen für Firebase SQL Connect konfigurieren
Für Projekte, in denen SQL Connect verwendet wird, ist eine Standorteinstellung erforderlich.
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 verfügbar für Spark-Tarif-Testversionen)
- asia-southeast2 (nicht für Spark-Tarif-Testversionen 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 zum Erstellen eines neuen Dienstes die Firebase-Konsole oder führen Sie die lokale Projektinitialisierung mit dem Firebase-CLI aus. Bei diesen Workflows wird ein neuer SQL Connect-Dienst erstellt.
In diesen Abläufen werden Sie auch durch Folgendes geführt:
- Neue Cloud SQL-Instanz bereitstellen (kostenlose Stufe)
- Vorhandene Cloud SQL-Instanz mit SQL Connect (Blaze-Tarif) verknüpfen
Nutzer verwalten
SQL 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 zur Verwaltung von Datenbankberechtigungen, was die Sicherheitsverwaltung vereinfacht).
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-Konsole die entsprechenden vordefinierten Nutzerrollen aus.
Mit diesen Rollen werden Berechtigungen über 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 alle mit ihr verknüpften Berechtigungen. Weitere Informationen finden Sie unter:
- Übersicht über Firebase-IAM-Rollen
- Die detaillierte Liste der SQL Connect-Rollen
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.
| Befehlszeilenbefehl, anderer Workflow | Erforderliche Rolle(n) |
|---|---|
firebase init dataconnect
|
|
firebase deploy -–only dataconnect
|
|
firebase dataconnect:sql:diff
|
|
firebase dataconnect:sql:migrate
|
|
firebase dataconnect:sql:grant
|
|
Leistung des SQL Connect-Dienstes überwachen
Leistung des Diensts verstehen
Die Leistung des SQL Connect-Dienstes und des Cloud SQL-Dienstes für PostgreSQL kann sich auf Ihre Nutzererfahrung auswirken.
- Informationen zu Cloud SQL für den 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 pro Projekt und Region
Wenn Sie diese Kontingentlimits erreichen, wenden Sie sich bitte an den Firebase-Support, um das entsprechende Kontingent anpassen zu lassen.
Dienstleistung, Nutzung und Abrechnung überwachen
Sie können Anfragen, Fehler und Vorgangsraten sowohl global als auch pro Vorgang in der Firebase-Konsole überwachen.
Cloud SQL-Instanzen verwalten
Einschränkungen des kostenlosen Testzeitraums
Die folgenden Cloud SQL-Funktionen für PostgreSQL werden in den kostenlosen Spark- oder Blaze-Testversionen nicht unterstützt:
- Andere Maschinenklasse als db-f1-micro
- Ressourcen Ihrer Instanz ändern, z. B. Region, Speicher, Arbeitsspeicher, CPU
- PostgreSQL-Versionen außer 15.x
- Lesereplikate
- Private IP-Adresse der Instanz
- Hochverfügbarkeit (mehrere Zonen); es werden nur Instanzen mit einer einzelnen Zone unterstützt
- Enterprise Plus-Version
- Automatische Sicherungen
- Automatische Speichererweiterung
Einschränkungen temporärer Onboarding-Datenbanken
Wenn Sie SQL Connect zu Ihrem Firebase-Projekt 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 die PostgreSQL-Instanz dauert 5 bis 20 Minuten. Alle anfangs geladenen Daten werden automatisch in Ihre permanente PostgreSQL-Datenbank migriert, sobald sie bereitgestellt wird.
Diese temporäre Datenbank eignet sich hervorragend, um Ihr Schema und Ihre CRUD-Vorgänge zu testen.
Wenn Sie die temporäre Datenbank nicht verwenden möchten, warten Sie, bis Ihre Cloud SQL-Instanz bereitgestellt wird.
Die temporäre Datenbank ist keine PostgreSQL-Datenbank und bietet nicht alle PostgreSQL-Funktionen.
Wichtige Einschränkungen:
- Die Datenbankgröße muss kleiner als 1 MB sein.
- Die Anzahl der Zeilen pro Tabelle muss kleiner als 1.000 sein.
- Weniger als 1 Anfrage 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 über die Google Cloud-Konsole verwalten, um die folgenden Arbeitsabläufe 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-Beobachtbarkeitsfunktionen 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.
Informationen zu diesen und anderen Workflows finden Sie in der Cloud SQL-Dokumentation für PostgreSQL.
PostgreSQL-Nutzerrollen gewähren
SQL 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 zur Verwaltung 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 SQL Connect-verwalteten Cloud SQL-Datenbank herstellen, z. B. über Cloud Run, Cloud Functions oder GKE.
Damit solche Verbindungen möglich sind, müssen Sie SQL-Berechtigungen erteilen. Das geht so:
- Weisen Sie dem Nutzer oder Dienstkonto, das eine Verbindung zur Instanz herstellen muss, die IAM-Rolle
roles/cloudsql.cliententweder über die Google Cloud-Konsole oder mit der gcloud CLI zu. - Erforderliche PostgreSQL-Rolle mit der Firebase CLI gewähren
Weisen Sie die IAM-Rolle Cloud SQL zu.
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 zuweisen
Mit der Firebase-Befehlszeile können Sie Nutzern oder Dienstkonten, die mit Ihrem Projekt verknüpft sind, mit dem Befehl firebase dataconnect:sql:grant vordefinierte PostgreSQL-Rollen zuweisen.
Wenn Sie beispielsweise die Rolle „Autor“ zuweisen möchten, führen Sie diesen Befehl über die Firebase-CLI aus:
firebase dataconnect:sql:grant --role writerWeitere Informationen finden Sie im Referenzhandbuch für das Firebase-CLI.
Vorhandene Cloud SQL für PostgreSQL-Datenbanken einbinden
Beim Standardablauf für die Bereitstellung und Verwaltung von Datenbanken wird davon ausgegangen, dass in Ihrem Projekt neue Datenbanken (Greenfield) verwendet werden. Wenn Sie firebase deploy aufrufen, werden in SQL Connect die vorzunehmenden Änderungen am Datenbankschema angezeigt. Alle Migrationen werden ausgeführt, nachdem Sie sie genehmigt haben.
Bei vorhandenen (Brownfield-)Datenbanken haben Sie möglicherweise einen eigenen Workflow für die Verwaltung 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 und die Verwaltung von Clientverbindungen zu nutzen.
In diesem Abschnitt finden Sie Informationen zum zweiten Fall: der Integration vorhandener Datenbanken in SQL Connect.
Vorhandene Datenbank in ein SQL Connect-Projekt einbinden
Der Workflow für die Integration einer vorhandenen Datenbank umfasst in der Regel die folgenden Schritte:
Wählen Sie bei der Einrichtung des SQL Connect-Projekts in der Firebase-Konsole die Instanz und die Datenbank aus.
Führen Sie über die Firebase-Befehlszeile den Befehl
firebase dataconnect:sql:setupaus und lehnen Sie die Option ab, SQL Connect die SQL-Migrationen verarbeiten zu lassen.Damit Änderungen an Ihrem Datenbankschema, die nicht durch Ihre benutzerdefinierten Tools ausgelöst werden, verhindert werden, weist der Befehl
setupgeeignete Leser- und Schreiberrollen, aber nicht die Rolleownerzu. Weitere Informationen zum Befehlsetupund zu PostgreSQL-Rollen finden Sie im Referenzhandbuch für die Firebase-Befehlszeile.Schreiben Sie ein SQL Connect-GraphQL-Schema, das mit Ihrem Datenbankschema übereinstimmt.
Sie können Ihr GraphQL-Schema, Ihre Abfragen und Ihre Mutationen nur bereitstellen, wenn Ihr GraphQL-Schema mit Ihrem PostgreSQL-Schema kompatibel ist.
Um die Anpassung beider Schemas zu vereinfachen, stellen wir den Befehl
firebase dataconnect:sql:diffzur Verfügung. Er enthält die erforderlichen SQL-Anweisungen für die Migration Ihrer Datenbank. So können Sie Ihr GraphQL-Schema iterativ an Ihr vorhandenes Datenbankschema anpassen.Sie können Ihr GraphQL-Schema, Ihre Abfragen und Ihre Mutation in Ihrer lokalen Entwicklungsumgebung schnell durchlaufen. Wenn Sie zufrieden sind, können Sie mit
firebase dataconnect:sql:diffdie SQL-Migrationsanweisungen abrufen, die Sie mit Ihren benutzerdefinierten Tools und Abläufen auf PostgreSQL anwenden können.Alternativ können Sie auch 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 Schemaänderungen nicht unterstützt werden. Wenn Sie außerdem Änderungen bereitstellen, die Ihr PostgreSQL-Schema mit bereitgestellten Connector-Abfragen oder ‑Mutationen inkompatibel machen, funktionieren diese Connectors möglicherweise nicht mehr oder verhalten sich nicht wie erwartet.