Gestire i servizi e i database SQL Connect

I tuoi progetti SQL Connect sono costituiti da due elementi infrastrutturali principali:

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

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

Configura le regioni per Firebase SQL Connect

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

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

Paesi in cui è disponibile il servizio

I servizi SQL Connect 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

Gestisci le istanze del servizio SQL Connect

Crea servizi

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

Questi flussi ti guidano anche attraverso:

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

Gestisci utenti

SQL Connect fornisce strumenti per gestire l'accesso degli utenti in conformità con il principio del privilegio minimo (concedi a ogni utente o service account le autorizzazioni minime necessarie per supportare la funzionalità richiesta) e il concetto 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 le istanze SQL Connect 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 è una raccolta di autorizzazioni. Quando assegni un ruolo a un membro del progetto, gli concedi tutte le autorizzazioni incluse nel ruolo. Per maggiori informazioni, consulta:

Scegliere i ruoli per attivare workflow specifici

I ruoli IAM consentono ai flussi di lavoro dell'interfaccia a riga di comando Firebase di gestire i tuoi progetti SQL Connect.

Comando CLI, altro flusso di lavoro Ruolo/i richiesti
firebase init dataconnect
  • Nessuna autorizzazione (quando non viene collegata un'istanza Cloud SQL)
  • roles/cloudsql.admin (durante la creazione di 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

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

  • Per il servizio Cloud SQL per PostgreSQL, consulta le indicazioni generali nella documentazione relativa a quote e limiti.
  • Per il servizio SQL Connect, esiste una quota per le richieste GraphQL, che influisce sulla velocità con cui puoi chiamare ed eseguire query:

    • Una quota per progetto e per regione di 24.000 richieste GraphQL al minuto

    Se raggiungi questi limiti di quota, contatta l'assistenza Firebase per modificare la quota pertinente.

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

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

Gestisci 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 della macchina diverso da db-f1-micro
  • Modifica delle risorse dell'istanza, come regione, spazio di archiviazione, memoria, CPU
  • Versioni di PostgreSQL diverse dalla 15.x
  • Repliche di lettura
  • Indirizzo IP dell'istanza privata
  • Alta affidabilità (multizona); sono supportate solo 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 a prototipare il modello di dati e caricare subito i dati, poiché verranno archiviati in un database temporaneo. Tieni presente che il Cloud SQL permanente per l'istanza PostgreSQL richiederà da 5 a 20 minuti per il provisioning. I dati iniziali caricati verranno migrati automaticamente nel database PostgreSQL permanente una volta provisionato.

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 vector embedding
  • Nessun supporto per funzionalità SQL come @view, @col(dataType) o SQL nativo.

Amministrare le istanze Cloud SQL

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

  • Arrestare e riavviare le istanze Cloud SQL

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

  • Avvia istanze di database PostgreSQL con flag e utilizza una varietà di estensioni

  • Monitora il rendimento con le funzionalità di osservabilità di Cloud SQL nella console Google Cloud

  • Gestisci 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 Cloud SQL per la documentazione di PostgreSQL.

Concedi ruoli utente PostgreSQL

SQL Connect fornisce strumenti per gestire l'accesso degli utenti in conformità con il principio del privilegio minimo (concedi a ogni utente o service account le autorizzazioni minime necessarie per supportare la funzionalità richiesta) e il concetto 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 al database Cloud SQL gestito da SQL Connect direttamente tramite un client SQL a 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
  • Concessione del ruolo PostgreSQL necessario utilizzando la CLI Firebase

Assegna il ruolo IAM Cloud SQL

Per informazioni sull'utilizzo di Cloud SQL per PostgreSQL per assegnare il ruolo IAM roles/cloudsql.client, consulta Ruoli e autorizzazioni.

Concedere ruoli PostgreSQL

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

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

firebase dataconnect:sql:grant --role writer

Per maggiori dettagli, consulta la guida di riferimento della CLI Firebase.

Integrare i Cloud SQL esistenti per i database PostgreSQL

Il flusso predefinito di provisioning e gestione del database presuppone che il tuo progetto utilizzi nuovi database (greenfield) e, quando richiami firebase deploy, SQL Connect mostra le modifiche allo schema del database da apportare ed esegue 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 il web e il mobile, l'autorizzazione basata su query, la gestione delle connessioni client e altro ancora.

Questa sezione offre indicazioni sul secondo caso: l'integrazione di 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 i seguenti 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 lettura e scrittura appropriati, ma non il ruolo owner. Per saperne di più sul comando setup e sui ruoli PostgreSQL, consulta la guida di riferimento della CLI Firebase.

  3. Scrivi uno SQL Connect schema GraphQL che corrisponda allo schema del tuo 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 migliorare in modo iterativo lo schema GraphQL in modo che corrisponda allo schema del database esistente.

  4. In futuro, potrai iterare rapidamente su schema, query e mutazione GraphQL nel tuo ambiente di sviluppo locale. 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, puoi apportare modifiche direttamente al database PostgreSQL e poi provare a importarle nuovamente nello schema GraphQL. Ti consigliamo l'approccio GraphQL-first, poiché potrebbero verificarsi casi in cui le modifiche allo schema non sono supportate. Inoltre, se implementi modifiche che rendono lo schema PostgreSQL incompatibile con le query o le mutazioni del connettore implementate, questi connettori potrebbero smettere di funzionare o funzionare in modo anomalo.