Gérer les services et les bases de données Data Connect

Vos projets Data Connect se composent de deux éléments d'infrastructure principaux:

  • Une ou plusieurs instances de service Data Connect
  • Une ou plusieurs instances Cloud SQL pour PostgreSQL

Ce guide explique comment configurer et gérer vos instances de service Data Connect, et comment gérer vos instances Cloud SQL associées.

Configurer des régions pour Firebase Data Connect

Les projets qui utilisent Data Connect nécessitent un paramètre d'emplacement.

Lorsque vous créez une instance de service Data Connect, vous êtes invité à sélectionner l'emplacement du service.

Régions acceptées

Vous pouvez créer des services Data Connect dans les régions suivantes.

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1
  • asia-southeast2
  • 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 Data 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 service Data Connect.

Ces flux vous guident également dans les étapes suivantes:

  • Provisionner une nouvelle instance Cloud SQL (niveau sans frais)
  • Associer une instance Cloud SQL existante à Data Connect (plan Blaze)

Gérer les utilisateurs

Data Connect fournit des outils permettant de gérer l'accès des utilisateurs en suivant le principe du moindre privilège (accorder à chaque utilisateur ou compte de service les autorisations minimales nécessaires pour prendre en charge les fonctionnalités requises) et la notion de contrôle des accès basé sur les rôles (RBAC) (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 instances Data Connect de 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'IAM (Identity and Access Management). Un rôle est un ensemble d'autorisations. Lorsque vous attribuez un rôle à un membre d'un projet, vous lui accordez toutes les autorisations contenues dans ce rôle. Pour en savoir plus, consultez les ressources suivantes:

Choisir des rôles pour activer des workflows spécifiques

Les rôles IAM permettent aux workflows de la CLI Firebase de vous permettre de gérer vos projets Data Connect.

Commande CLI, autre workflow Rôle(s) requis
firebase init dataconnect
  • Aucune autorisation (lorsque vous n'associez pas d'instance Cloud SQL)
  • roles/cloudsql.admin (lors de la création d'une instance 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
  • rôles/cloudsql.admin sur l'instance Cloud SQL cible
firebase dataconnect:sql:grant
  • rôles/cloudsql.admin sur l'instance Cloud SQL cible

Surveiller les performances du service Data Connect

Examen des performances des services

Les performances du service Data Connect et du service Cloud SQL pour PostgreSQL peuvent affecter votre expérience.

  • Pour le service Cloud SQL pour PostgreSQL, consultez les conseils généraux de la documentation sur les quotas et les limites.
  • Pour le service Data Connect, un quota est appliqué aux requêtes GraphQL, ce qui affecte la fréquence à laquelle vous pouvez appeler et exécuter des requêtes:

    • Un quota global par projet de 6 000 requêtes par minute à partir des connecteurs d'application client.
    • Quota global par projet de 6 000 requêtes par minute à partir de Firebase Admin SDK et de l'API REST.
    • Un quota par utilisateur de 1 200 requêtes par minute Ici, "par utilisateur" signifie que la limite s'applique aux requêtes initiées par une adresse IP, que ce soit à partir d'une application cliente, de Firebase Admin SDK ou de l'API REST.

    Si vous rencontrez 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 console Firebase.

Gérer des instances Cloud SQL

Limites de l'essai sans frais

Les fonctionnalités Cloud SQL pour PostgreSQL suivantes ne sont pas compatibles avec l'essai sans frais de trois mois:

  • Versions PostgreSQL autres que 15.x
  • Utilisation d'instances Cloud SQL pour PostgreSQL existantes
  • Niveau de machine différent de db-f1-micro
  • Modifier les ressources de votre instance, telles que l'espace de stockage, la mémoire et le processeur
  • Instances dupliquées avec accès en lecture
  • Adresse IP de l'instance privée
  • Haute disponibilité (multizone) ; seules les instances monozone sont compatibles
  • Édition Enterprise Plus
  • Sauvegardes automatiques
  • Augmentation automatique de l'espace de stockage.

Administrer des instances Cloud SQL

De manière générale, vous pouvez gérer vos instances Cloud SQL à l'aide de la console Google Cloud pour effectuer les workflows suivants.

  • 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 options et utiliser différentes extensions
  • Surveiller les performances avec les fonctionnalités d'observabilité Cloud SQL dans la console Google Cloud
  • Gérer l'accès et la sécurité de Cloud SQL grâce à des fonctionnalités telles que IAM, le Gestionnaire de secrets, le chiffrement des données et le proxy d'authentification
  • Ajoutez, supprimez et administrez des utilisateurs Cloud SQL.

Pour ces workflows et d'autres, consultez la documentation Cloud SQL pour PostgreSQL.

Accorder des rôles utilisateur PostgreSQL

Data Connect fournit des outils permettant de gérer l'accès des utilisateurs en suivant le principe du moindre privilège (accorder à chaque utilisateur ou compte de service les autorisations minimales nécessaires pour prendre en charge les fonctionnalités requises) et la notion de contrôle des accès basé sur les rôles (RBAC) (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 choisir de vous connecter directement à la base de données Cloud SQL gérée par Data Connect via un client SQL de votre choix, par exemple 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, à partir de la console Google Cloud ou à l'aide de gcloud CLI
  • Attribuer le rôle PostgreSQL nécessaire à l'aide de la CLI Firebase

Attribuer le rôle IAM Cloud SQL

Pour savoir comment utiliser Cloud SQL pour PostgreSQL pour attribuer le rôle IAM roles/cloudsql.client, consultez la section Rôles et autorisations.

Accorder des rôles PostgreSQL

À l'aide de la CLI Firebase, 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 commande firebase dataconnect:sql:grant.

Par exemple, pour accorder le rôle d'auteur, exécutez la commande suivante dans la CLI:

firebase dataconnect:sql:grant --role writer

Pour 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 une nouvelle base de données (terrain vierge). Lorsque vous appelez firebase deploy, Data Connect affiche les modifications du schéma de base de données à apporter et effectue les migrations une fois que vous avez approuvé.

Pour les bases de données existantes (brownfield), vous pouvez avoir votre propre workflow pour gérer les schémas et ne pas pouvoir utiliser les outils Data Connect pour les migrations, mais vous souhaitez utiliser votre base de données dans un projet Data Connect pour profiter de sa 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 le second cas: l'intégration de bases de données existantes avec Data Connect.

.

Intégrer une base de données existante dans un projet Data Connect

Le workflow d'intégration d'une base de données existante comprend généralement les étapes suivantes:

  1. Lors de la configuration du projet Data Connect dans la console Firebase, sélectionnez l'instance et la base de données.
  2. À l'aide de la CLI Firebase, exécutez la commande firebase dataconnect:sql:setup et refusez l'option permettant à Data Connect de gérer les migrations SQL.

    Pour éviter que le schéma de votre base de données ne soit modifié sans être piloté par vos outils personnalisés, la commande setup attribue les rôles de lecteur et d'écrivain appropriés, mais pas le rôle owner. Pour en savoir plus sur la commande setup et les rôles PostgreSQL, consultez le guide de référence de la CLI.

  3. Écrivez un schéma GraphQL Data Connect correspondant à votre schéma de base de données.

    Vous ne pouvez déployer votre schéma, vos requêtes et vos mutations GraphQL que si 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 fournira 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.

  4. À l'avenir, vous pourrez itérer rapidement sur votre schéma GraphQL, vos requêtes et vos mutations dans votre environnement de développement local. Ensuite, lorsque vous êtes satisfait, vous pouvez utiliser firebase dataconnect:sql:diff pour obtenir les instructions de migration SQL que vous pouvez appliquer à PostgreSQL à l'aide de vos outils et flux personnalisés.

  5. Vous pouvez également commencer par apporter des modifications directement à votre base de données PostgreSQL, puis essayer de les retranscrire dans votre schéma GraphQL. Nous vous recommandons d'utiliser l'approche GraphQL en premier, car il est possible que les modifications de schéma ne soient pas prises en charge. De plus, si vous déployez des modifications qui rendent votre schéma PostgreSQL incompatible avec les requêtes ou la mutation de connecteur déployées, ces connecteurs peuvent cesser de fonctionner ou se comporter de manière incorrecte.