Gestire i servizi e i database Data Connect

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

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

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

Configurare le regioni per Firebase Data Connect

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

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

Paesi in cui è disponibile il servizio

Data 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 Data 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 Data 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 Data Connect (piano Blaze)

Gestire utenti

Data Connect fornisce strumenti per gestire l'accesso degli utenti che seguono il il principio del privilegio minimo (concedere 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 Data Connect istanze nel tuo progetto, utilizza la console Firebase per selezionare i ruoli utente predefiniti appropriati.

Questi ruoli concedono le autorizzazioni utilizzando Identity and Access Management (IAM). Un ruolo è una raccolta di autorizzazioni. Quando assegni un ruolo a un membro del progetto, gli concedi tutte le autorizzazioni incluse 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 tuoi Data 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 Data Connect

Informazioni sulle prestazioni dei servizi

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

Monitorare le prestazioni, 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
  • Enterprise Plus Edition
  • Backup automatici
  • Aumento automatico dello spazio di archiviazione.

Limitazioni dei database di onboarding temporanei

Quando aggiungi Data 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.

Data Connect
  • Avviare 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 le prestazioni con le funzionalità di osservabilità di Cloud SQL nella console Google Cloud
  • 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 i ruoli utente di PostgreSQL

Data Connect fornisce strumenti per gestire l'accesso degli utenti che seguono il il principio del privilegio minimo (concedere 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 Data Connect 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 i 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 della CLI.

Integrare i database Cloud SQL per PostgreSQL esistenti

Il flusso predefinito di provisioning e gestione dei database presuppone che il tuo progetto utilizzi nuovi database (greenfield) e, quando richiami firebase deploy, Data 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 Data Connect per le migrazioni, ma vorresti utilizzare il tuo database in un progetto Data 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 Data Connect.

Integrare un database esistente in un progetto Data Connect

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

  1. Durante la configurazione del progetto Data 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 Data 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 della CLI.

  3. Scrivi uno schema GraphQL Data 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 eseguire la migrazione del 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.