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:
- La panoramica dei ruoli IAM di Firebase
- L'elenco dettagliato dei SQL Connect ruoli
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
|
|
firebase deploy -–only dataconnect
|
|
firebase dataconnect:sql:diff
|
|
firebase dataconnect:sql:migrate
|
|
firebase dataconnect:sql:grant
|
|
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.
- Per il servizio Cloud SQL per PostgreSQL, consulta le indicazioni generali nella documentazione Quote e limiti.
Per il servizio SQL Connect, esiste una quota per le richieste GraphQL, che influisce sulla frequenza con cui puoi chiamare ed eseguire query:
- Una quota di 24.000 richieste GraphQL al minuto per progetto per regione
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.clientall'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 writerPer 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:
Durante la configurazione del progetto SQL Connect nella console Firebase, seleziona l'istanza e il database.
Utilizzando la CLI Firebase, esegui il comando
firebase dataconnect:sql:setupe 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
setupassegnerà i ruoli di lettore e scrittore appropriati, ma non il ruoloowner. Ulteriori informazioni sul comandosetupe sui ruoli PostgreSQL sono disponibili nella Firebase guida di riferimento di CLI.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.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:diffper ottenere le istruzioni di migrazione SQL che puoi applicare a PostgreSQL utilizzando i tuoi strumenti e flussi personalizzati.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.