Gestire i servizi e i database SQL Connect

I progetti SQL Connect sono costituiti da due elementi di infrastruttura principali:

  • Una o più istanze del servizio SQL Connect
  • Una o più Cloud SQL per istanze PostgreSQL

Questa guida spiega come configurare e gestire le istanze del servizio SQL Connect e introduce la gestione delle istanze associate Cloud SQL.

Configurare le regioni per Firebase SQL Connect

I progetti che utilizzano SQL Connect richiedono un'impostazione della località.

Quando crei una nuova istanza del servizio SQL Connect, ti viene chiesto di selezionare la località del servizio.

Località disponibili

SQL Connect servizi possono essere creati nelle seguenti regioni.

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1 (non disponibile per le prove del piano Spark)
  • asia-southeast2 (non disponibile per le prove del piano Spark)
  • 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

Gestire le istanze del servizio SQL Connect

Creare servizi

Per creare un nuovo servizio, utilizza la Firebase console o esegui l'inizializzazione del progetto locale utilizzando Firebase CLI. Questi flussi di lavoro creano un nuovo SQL Connect servizio.

Questi flussi ti guidano anche attraverso:

  • Provisioning di una nuova istanza Cloud SQL (livello senza costi)
  • Collegamento di un'istanza Cloud SQL esistente a SQL Connect (piano Blaze)

Gestire utenti

SQL Connect fornisce strumenti per gestire l'accesso degli utenti che seguono il il principio del privilegio minimo (concedi a ogni utente o account di servizio le autorizzazioni minime necessarie per supportare le funzionalità richieste) e la nozione di controllo degli accessi basato sui ruoli (RBAC) (con ruoli predefiniti per gestire le autorizzazioni del database, semplificando la gestione della sicurezza).

Per aggiungere membri del progetto come utenti che possono modificare SQL Connect istanze nel tuo progetto, utilizza la console Firebase per selezionare i ruoli utente predefiniti appropriati.

Questi ruoli concedono autorizzazioni utilizzando Identity and Access Management (IAM). Un ruolo è un insieme di autorizzazioni. Quando assegni un ruolo a un membro del progetto, gli concedi tutte le autorizzazioni contenute nel ruolo. Per ulteriori informazioni, consulta:

Scegliere i ruoli per abilitare flussi di lavoro specifici

I ruoli IAM consentono ai flussi di lavoro di Firebase CLI di gestire i SQL Connect progetti.

Comando CLI, altro flusso di lavoro Ruoli richiesti
firebase init dataconnect
  • Nessuna autorizzazione (quando non si collega un'istanza Cloud SQL)
  • roles/cloudsql.admin (quando si crea un'istanza Cloud SQL)
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 sull'istanza Cloud SQL di destinazione
firebase dataconnect:sql:grant
  • roles/cloudsql.admin sull'istanza Cloud SQL di destinazione

Monitorare le prestazioni del servizio SQL Connect

Informazioni sulle prestazioni dei servizi

Le prestazioni sia del servizio SQL Connect sia del Cloud SQL per PostgreSQL possono influire sulla tua esperienza.

Monitorare le prestazioni, l'utilizzo e la fatturazione del servizio

Puoi monitorare le richieste, gli errori e le frequenze delle operazioni, sia a livello globale sia per operazione nella Firebase console.

Gestire le istanze Cloud SQL

Limitazioni della prova senza costi

Le seguenti funzionalità Cloud SQL per PostgreSQL non sono supportate nelle prove senza costi di Spark o Blaze:

  • Livello della macchina diverso da db-f1-micro
  • Modifica delle risorse dell'istanza, come regione, spazio di archiviazione, memoria, CPU
  • Versioni di PostgreSQL diverse da 15.x
  • Repliche di lettura
  • Indirizzo IP privato dell'istanza
  • Alta disponibilità (multizona); sono supportate solo le istanze a zona singola
  • Enterprise Plus Edition
  • Backup automatici
  • Aumento automatico dello spazio di archiviazione.

Limitazioni dei database di onboarding temporanei

Quando aggiungi SQL Connect al tuo progetto Firebase, puoi iniziare subito a prototipare il modello di dati e caricare i dati, poiché questi verranno archiviati in un database temporaneo. Tieni presente che il provisioning dell'istanza Cloud SQL per PostgreSQL permanente richiede da 5 a 20 minuti. Tutti i dati iniziali caricati verranno migrati automaticamente al database PostgreSQL permanente una volta eseguito il provisioning.

Questo database temporaneo è ideale per esplorare lo schema e le operazioni CRUD.

Se non vuoi utilizzare il database temporaneo, attendi il provisioning dell' Cloud SQL istanza.

Il database temporaneo non è un database PostgreSQL e non fornisce tutte le funzionalità di PostgreSQL.

Le limitazioni significative sono:

  • Le dimensioni del database devono essere inferiori a 1 MB
  • Il numero di righe per tabella deve essere inferiore a 1000
  • Meno di 1 query al secondo
  • Nessun supporto per la ricerca a testo intero
  • Nessun supporto per la generazione di incorporamenti di vettori
  • Nessun supporto per le funzionalità SQL come @view, @col(dataType) o SQL nativo.

Amministrare le istanze Cloud SQL

In generale, puoi gestire le istanze Cloud SQL utilizzando la Google Cloud console per eseguire i seguenti flussi di lavoro.

  • Arrestare e riavviare le istanze Cloud SQL

  • Creare ed eliminare Cloud SQL database (all'interno delle istanze)

  • Avviare le istanze del database PostgreSQL con i flag e utilizzare una varietà di estensioni

  • Monitorare le prestazioni con Cloud SQL funzionalità di osservabilità nella Google Cloud console

  • Gestire l'Cloud SQL accesso e la sicurezza con funzionalità come IAM, Secret Manager, crittografia dei dati e proxy di autenticazione

  • Aggiungere, eliminare e amministrare gli utenti Cloud SQL.

Per questi e altri flussi di lavoro, consulta la Cloud SQL per la documentazione di PostgreSQL.

Concedere ruoli utente PostgreSQL

SQL Connect fornisce strumenti per gestire l'accesso degli utenti che seguono il il principio del privilegio minimo (concedi a ogni utente o account di servizio le autorizzazioni minime necessarie per supportare le funzionalità richieste) e la nozione di controllo degli accessi basato sui ruoli (RBAC) (con ruoli predefiniti per gestire le autorizzazioni del database, semplificando la gestione della sicurezza).

In alcuni casi, potresti voler connetterti direttamente al database gestito da SQL Connect Cloud SQL tramite un client SQL di tua scelta utilizzando, ad esempio, Cloud Run, Cloud Functions o GKE.

Per abilitare queste connessioni, devi concedere le autorizzazioni SQL:

  • Assegnando il ruolo IAM roles/cloudsql.client all'utente o all'account di servizio che deve connettersi all'istanza, dalla console Google Cloud o utilizzando gcloud CLI
  • Concedendo il ruolo PostgreSQL necessario utilizzando il Firebase CLI

Assegnare il ruolo IAM Cloud SQL

Per informazioni su come utilizzare Cloud SQL per PostgreSQL per assegnare il ruolo IAM roles/cloudsql.client, consulta Ruoli e autorizzazioni.

Concedere ruoli PostgreSQL

Utilizzando la Firebase CLI, puoi concedere ruoli PostgreSQL predefiniti agli utenti o agli account di servizio associati al tuo progetto con il firebase dataconnect:sql:grant comando.

Ad esempio, per concedere il ruolo di scrittore, esegui questo comando utilizzando la Firebase CLI:

firebase dataconnect:sql:grant --role writer

Per i dettagli, consulta la Firebase guida di riferimento di CLI.

Integrare i database Cloud SQL per PostgreSQL esistenti

Il flusso predefinito di provisioning e gestione dei database presuppone che il tuo progetto utilizzi un nuovo database (greenfield) e, quando richiami firebase deploy, SQL Connect visualizzerà le modifiche dello schema del database da apportare ed eseguirà le migrazioni dopo la tua approvazione.

Per i database esistenti (brownfield), potresti avere un tuo flusso di lavoro per la gestione degli schemi e non puoi utilizzare gli strumenti SQL Connect per le migrazioni, ma vorresti utilizzare il tuo database in un progetto SQL Connect per sfruttare la generazione di SDK per dispositivi mobili e web, l'autorizzazione basata su query, la gestione delle connessioni client e altro ancora.

Questa sezione offre indicazioni sul secondo caso: l'integrazione dei database esistenti con SQL Connect.

Integrare un database esistente in un progetto SQL Connect

Il flusso di lavoro per l'integrazione di un database esistente in genere prevede questi passaggi:

  1. Durante la configurazione del progetto SQL Connect nella console Firebase, seleziona l'istanza e il database.

  2. Utilizzando la CLI Firebase, esegui il comando firebase dataconnect:sql:setup e rifiuta l'opzione per consentire a SQL Connect di gestire le migrazioni SQL.

    Per impedire modifiche allo schema del database non guidate dai tuoi strumenti personalizzati, il comando setup assegnerà i ruoli di lettore e scrittore appropriati, ma non il ruolo owner. Ulteriori informazioni sul comando setup e sui ruoli PostgreSQL sono disponibili nella Firebase guida di riferimento di CLI.

  3. Scrivi uno schema GraphQL SQL Connect che corrisponda allo schema del database.

    Puoi eseguire il deployment dello schema GraphQL, delle query e delle mutazioni solo quando lo schema GraphQL è compatibile con lo schema PostgreSQL.

    Per semplificare l'allineamento di entrambi gli schemi, forniamo il comando firebase dataconnect:sql:diff, che ti fornirà le istruzioni SQL necessarie per migrare il database. Puoi utilizzarlo per perfezionare in modo iterativo lo schema GraphQL in modo che corrisponda allo schema del database esistente.

  4. In futuro, puoi eseguire rapidamente l'iterazione dello schema GraphQL, delle query e delle mutazioni nell'ambiente di sviluppo locale. Poi, quando sei soddisfatto, puoi utilizzare firebase dataconnect:sql:diff per ottenere le istruzioni di migrazione SQL che puoi applicare a PostgreSQL utilizzando i tuoi strumenti e flussi personalizzati.

  5. In alternativa, potresti apportare prima le modifiche direttamente al database PostgreSQL, quindi provare a riportarle nello schema GraphQL. Ti consigliamo l'approccio GraphQL-first, poiché potrebbero verificarsi casi in cui le modifiche dello schema non sono supportate. Inoltre, se esegui il deployment di modifiche che rendono lo schema PostgreSQL incompatibile con le query o le mutazioni del connettore di cui è stato eseguito il deployment, questi connettori potrebbero smettere di funzionare o comportarsi in modo anomalo.