Vos projets SQL Connect se composent de deux éléments d'infrastructure principaux :
- Une ou plusieurs instances de service SQL Connect
- Une ou plusieurs instances Cloud SQL pour PostgreSQL
Ce guide explique comment configurer et gérer vos instances de service SQL Connect, et comment gérer vos instances Cloud SQL associées.
Configurer des régions pour Firebase SQL Connect
Les projets qui utilisent SQL Connect nécessitent un paramètre d'emplacement.
Lorsque vous créez une nouvelle instance de service SQL Connect, vous êtes invité à sélectionner l'emplacement du service.
Régions acceptées
SQL Connect services peuvent être créés dans les régions suivantes.
- asia-east1
- asia-east2
- asia-northeast1
- asia-northeast2
- asia-northeast3
- asia-south1
- asia-southeast1 (non disponible pour les essais du forfait Spark)
- asia-southeast2 (non disponible pour les essais du forfait 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
Gérer les instances de service SQL Connect
Elle crée des services
Pour créer un service, utilisez la console Firebase ou exécutez l'initialisation du projet local à l'aide de la CLI Firebase. Ces workflows créent un nouveau SQL Connect service.
Ces flux vous guident également dans les opérations suivantes :
- Provisionnement d'une instance Cloud SQL (niveau sans frais)
- Liaison d'une instance Cloud SQL existante à SQL Connect (forfait Blaze)
Gérer les utilisateurs
SQL Connect fournit des outils permettant de gérer l'accès des utilisateurs conformément au principe du moindre privilège (accordez à chaque utilisateur ou compte de service les autorisations minimales nécessaires pour prendre en charge les fonctionnalités requises) et au concept de contrôle d'accès basé sur les rôles (RBAC, Role-Based Access Control) (avec des rôles prédéfinis pour gérer les autorisations de base de données, ce qui simplifie la gestion de la sécurité).
Pour ajouter des membres du projet en tant qu'utilisateurs pouvant modifier les SQL Connect instances dans votre projet, utilisez la console Firebase pour sélectionner les rôles utilisateur prédéfinis appropriés.
Ces rôles accordent des autorisations à l'aide d'Identity and Access Management (IAM). Un rôle est un ensemble d'autorisations. Lorsque vous attribuez un rôle à un membre du projet, vous lui accordez toutes les autorisations que contient ce rôle. Pour en savoir plus, consultez les ressources suivantes :
- La présentation des rôles IAM Firebase
- Liste détaillée des SQL Connect rôles
Choisir des rôles pour activer des workflows spécifiques
Les rôles IAM permettent aux workflows de la CLI Firebase de gérer vos projets SQL Connect.
| Commande CLI, autre workflow | Rôle(s) requis |
|---|---|
firebase init dataconnect
|
|
firebase deploy -–only dataconnect
|
|
firebase dataconnect:sql:diff
|
|
firebase dataconnect:sql:migrate
|
|
firebase dataconnect:sql:grant
|
|
Surveiller les performances du service SQL Connect
Examen des performances des services
Les performances du service SQL Connect et du service Cloud SQL pour PostgreSQL peuvent avoir une incidence sur votre expérience.
- Pour le service Cloud SQL pour PostgreSQL, consultez les conseils généraux de la documentation Quotas et limites.
Pour le service SQL Connect, il existe un quota pour les requêtes GraphQL, qui affecte la fréquence à laquelle vous pouvez appeler et exécuter des requêtes :
- Un quota de 24 000 requêtes GraphQL par minute et par projet et par région
Si vous atteignez ces limites de quota, veuillez contacter l'assistance Firebase pour ajuster le quota concerné.
Surveiller les performances, l'utilisation et la facturation du service
Vous pouvez surveiller les requêtes, les erreurs et les taux d'opération, à la fois globalement et par opération dans la Firebase console.
Gérer les instances Cloud SQL
Limites de l'essai sans frais
Les fonctionnalités Cloud SQL pour PostgreSQL suivantes ne sont pas compatibles avec les essais sans frais des forfaits Spark ou Blaze :
- Niveau de machine différent de db-f1-micro
- Modification des ressources de votre instance, telles que la région, l'espace de stockage, la mémoire et le processeur
- Versions de PostgreSQL autres que 15.x
- Instances dupliquées avec accès en lecture
- Adresse IP privée de l'instance
- Haute disponibilité (multizone) : seules les instances monozones sont compatibles
- Édition Enterprise Plus
- Sauvegardes automatiques
- Augmentation automatique de l'espace de stockage
Limites des bases de données d'intégration temporaires
Lorsque vous ajoutez SQL Connect à votre projet Firebase, vous pouvez commencer à prototyper votre modèle de données et à charger des données immédiatement, car les données seront stockées dans une base de données temporaire. Notez que le provisionnement de votre instance Cloud SQL pour PostgreSQL permanente prendra entre 5 et 20 minutes. Toutes les données initiales que vous chargez seront automatiquement migrées vers votre base de données PostgreSQL permanente une fois qu'elle sera provisionnée.
Cette base de données temporaire est idéale pour explorer votre schéma et vos opérations CRUD.
Si vous ne souhaitez pas utiliser la base de données temporaire, attendez que votre instance Cloud SQL soit provisionnée.
La base de données temporaire n'est pas une base de données PostgreSQL et ne fournit pas toutes les fonctionnalités PostgreSQL.
Les limites importantes sont les suivantes :
- La taille de la base de données doit être inférieure à 1 Mo.
- Le nombre de lignes par table doit être inférieur à 1 000.
- Moins d'une requête par seconde
- Aucune prise en charge de la recherche en texte intégral
- Aucune prise en charge de la génération d'embeddings vectoriels
- Aucune prise en charge des fonctionnalités SQL telles que
@view,@col(dataType), ou SQL natif.
Administrer les instances Cloud SQL
En général, vous pouvez gérer vos instances Cloud SQL à l'aide de la Google Cloud console pour effectuer les workflows suivants.
SQL Connect- Arrêter et redémarrer des instances Cloud SQL
- Créer et supprimer des bases de données Cloud SQL (dans des instances)
- Démarrer des instances de base de données PostgreSQL avec des indicateurs et utiliser une variété d'extensions
- Surveiller les performances grâce aux fonctionnalités d'observabilité Cloud SQL dans la Google Cloud console
- Gérer l'accès et la sécurité Cloud SQL avec des fonctionnalités telles qu'IAM, Secret Manager, le chiffrement des données et le proxy d'authentification
- Ajouter, supprimer et administrer des utilisateurs Cloud SQL
Pour ces workflows et d'autres, consultez la documentation Cloud SQL pour PostgreSQL.
Accorder des rôles utilisateur PostgreSQL
SQL Connect fournit des outils permettant de gérer l'accès des utilisateurs conformément au principe du moindre privilège (accordez à chaque utilisateur ou compte de service les autorisations minimales nécessaires pour prendre en charge les fonctionnalités requises) et au concept de contrôle d'accès basé sur les rôles (RBAC, Role-Based Access Control) (avec des rôles prédéfinis pour gérer les autorisations de base de données, ce qui simplifie la gestion de la sécurité).
Dans certains cas, vous pouvez vous connecter directement à la base de données Cloud SQL gérée par SQL Connect via un client SQL de votre choix, par exemple à l'aide de Cloud Run, Cloud Functions ou GKE.
Pour activer ces connexions, vous devez accorder des autorisations SQL en procédant comme suit :
- Attribuer le rôle IAM
roles/cloudsql.clientà l'utilisateur ou au compte de service qui doit se connecter à l'instance, soit à partir de la console Google Cloud soit à l'aide de la gcloud CLI - Accorder le rôle PostgreSQL nécessaire à l'aide de la Firebase CLI
Attribuer le rôle IAM Cloud SQL
Pour en savoir plus sur l'utilisation de Cloud SQL pour PostgreSQL afin d'attribuer le rôle IAM
roles/cloudsql.client, consultez Rôles et autorisations.
Accorder des rôles PostgreSQL
À l'aide de la Firebase CLI, vous pouvez accorder des rôles PostgreSQL prédéfinis aux utilisateurs
ou aux comptes de service associés à votre projet à l'aide de la
firebase dataconnect:sql:grant commande.
Par exemple, pour accorder le rôle de rédacteur, exécutez la commande suivante dans la CLI :
firebase dataconnect:sql:grant --role writerPour en savoir plus, consultez le guide de référence de la CLI.
Intégrer des bases de données Cloud SQL pour PostgreSQL existantes
Le flux de provisionnement et de gestion de base de données par défaut suppose que votre projet
utilise de nouvelles bases de données (greenfield). Lorsque vous appelez firebase deploy,
SQL Connect affiche les modifications de schéma de base de données à apporter et
effectue toutes les migrations après votre approbation.
Pour les bases de données existantes (brownfield), vous pouvez avoir votre propre workflow de gestion des schémas et ne pas pouvoir utiliser les outils SQL Connect pour les migrations. Toutefois, vous pouvez utiliser votre base de données dans un projet SQL Connect pour profiter de la génération de SDK pour mobile et Web, de l'autorisation basée sur les requêtes, de la gestion des connexions client, etc.
Cette section fournit des conseils sur ce dernier cas : l'intégration de bases de données existantes avec SQL Connect.
Intégrer une base de données existante dans un projet SQL Connect
Le workflow d'intégration d'une base de données existante comprend généralement les étapes suivantes :
- Lors de la configuration du projet SQL Connect dans la console Firebase, sélectionnez l'instance et la base de données.
À l'aide de la CLI Firebase, exécutez la commande
firebase dataconnect:sql:setupet refusez l'option permettant à SQL Connect de gérer les migrations SQL.Pour éviter que des modifications ne soient apportées à votre schéma de base de données par votre outil personnalisé, la commande
setupattribue les rôles de lecteur et de rédacteur appropriés, mais pas le rôleowner. Pour en savoir plus sur la commandesetupet les rôles PostgreSQL, consultez le guide de référence de la CLI.Écrivez un schéma GraphQL SQL Connect qui correspond à votre schéma de base de données.
Vous ne pouvez déployer votre schéma, vos requêtes et vos mutations GraphQL que lorsque votre schéma GraphQL est compatible avec votre schéma PostgreSQL.
Pour simplifier l'alignement des deux schémas, nous fournissons la commande
firebase dataconnect:sql:diff, qui vous fournit les instructions SQL requises pour migrer votre base de données. Vous pouvez l'utiliser pour affiner de manière itérative votre schéma GraphQL afin qu'il corresponde à votre schéma de base de données existant.Vous pouvez ensuite itérer rapidement sur votre schéma, vos requêtes et vos mutations GraphQL dans votre environnement de développement local. Une fois que vous êtes satisfait, vous pouvez utiliser
firebase dataconnect:sql:diffpour obtenir les instructions de migration SQL que vous pouvez appliquer à PostgreSQL à l'aide de vos outils et flux personnalisés.Vous pouvez également apporter des modifications directement à votre base de données PostgreSQL, puis essayer de les reporter dans votre schéma GraphQL. Nous vous recommandons d'adopter l'approche GraphQL en premier, car il peut arriver que les modifications de schéma ne soient pas compatibles. De plus, si vous déployez des modifications qui rendent votre schéma PostgreSQL incompatible avec les requêtes ou les mutations de connecteur déployées, ces connecteurs peuvent cesser de fonctionner ou se comporter de manière anormale.