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ù istanze Cloud SQL per PostgreSQL

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

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 service account 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 Ruolo/i richiesto/i
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 il rendimento del servizio SQL Connect

Informazioni sulle prestazioni dei servizi

Il rendimento sia del servizio SQL Connect sia del servizio Cloud SQL per PostgreSQL può influire sulla tua esperienza.

Monitorare il rendimento, l'utilizzo e la fatturazione dei servizi

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à di Cloud SQL per PostgreSQL non sono supportate nelle prove senza costi di Spark o Blaze:

  • Livello di 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
  • Versione Enterprise Plus
  • 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 creare prototipi del modello di dati e a 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'istanza Cloud SQL.

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 vettoriali
  • 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 database Cloud SQL (all'interno delle istanze)
  • Avviare le istanze del database PostgreSQL con i flag e utilizzare una serie di estensioni
  • Monitorare il rendimento con le funzionalità di osservabilità di Cloud SQL nella Google Cloud console
  • Gestire l'accesso e la sicurezza di Cloud SQL 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 documentazione di Cloud SQL per 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 service account 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 Cloud SQL gestito da SQL Connect-managed 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 al service account 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 ruolo roles/cloudsql.client, consulta Ruoli e autorizzazioni.

Concedere ruoli PostgreSQL

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

Ad esempio, per concedere il ruolo di writer, esegui questo comando nell'interfaccia a riga di comando:

firebase dataconnect:sql:grant --role writer

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

Integrare i database Cloud SQL per PostgreSQL esistenti

Il flusso di provisioning e gestione del database predefinito presuppone che il 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 Firebase CLI, 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 guida di riferimento di CLI.

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

    Puoi eseguire il deployment dello schema, delle query e delle mutazioni GraphQL solo se 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, delle query e delle mutazioni GraphQL nel tuo 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.