Gerenciar serviços e bancos de dados do SQL Connect

Os seus projetos SQL Connect consistem em dois elementos principais de infraestrutura:

  • Uma ou mais instâncias de serviço SQL Connect
  • Uma ou mais instâncias do Cloud SQL para PostgreSQL

Este guia discute como configurar e gerenciar as instâncias de serviço SQL Connect e apresenta como gerenciar as instâncias associadas Cloud SQL.

Configurar regiões para o Firebase SQL Connect

Os projetos que usam SQL Connect exigem uma configuração de local.

Ao criar uma nova instância de serviço SQL Connect, você precisa selecionar o local do serviço.

Locais disponíveis

SQL Connect serviços podem ser criados nas seguintes regiões.

  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-southeast1 (indisponível para testes do plano Spark)
  • asia-southeast2 (indisponível para testes do plano 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
  • A integração do

Gerenciar instâncias de serviço SQL Connect

Cria serviços

Para criar um novo serviço, use o Firebase console ou execute a inicialização do projeto local usando a CLI Firebase. Esses fluxos de trabalho criam um novo SQL Connect serviço.

Esses fluxos também orientam você sobre:

  • Provisionamento de uma nova instância Cloud SQL (nível sem custos financeiros)
  • Vinculação de uma instância Cloud SQL ao SQL Connect (plano Blaze)

Gerenciar usuários

SQL Connect oferece ferramentas para gerenciar o acesso do usuário que seguem o o princípio do menor privilégio (conceder a cada usuário ou conta de serviço as permissões mínimas necessárias para oferecer suporte à funcionalidade necessária) e a noção de controle de acesso baseado em papéis (RBAC) (com papéis predefinidos para gerenciar permissões de banco de dados, simplificando o gerenciamento de segurança).

Para adicionar membros do projeto como usuários que podem modificar SQL Connect instâncias no projeto, use o Firebase console para selecionar os papéis de usuário predefinidos adequados.

Esses papéis concedem permissões usando o Identity and Access Management (IAM). Um papel é um conjunto de permissões. Ao atribuir um papel a um membro do projeto, você concede a esse membro todas as permissões que o papel contém. Confira mais informações em:

Escolher papéis para ativar fluxos de trabalho específicos

Os papéis do IAM permitem que os fluxos de trabalho da CLI Firebase gerenciem seus SQL Connect projetos.

Comando da CLI, outro fluxo de trabalho Papéis necessários
firebase init dataconnect
  • Sem permissões (quando não há vinculação de uma Cloud SQL instância)
  • roles/cloudsql.admin (ao criar uma instância 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 na instância de destino Cloud SQL
firebase dataconnect:sql:grant
  • roles/cloudsql.admin na instância de destino Cloud SQL

Monitorar a performance do serviço SQL Connect

Entenda o desempenho do serviço

A performance do serviço SQL Connect e do Cloud SQL para PostgreSQL pode afetar sua experiência.

  • Para o serviço do Cloud SQL para PostgreSQL, consulte as orientações gerais na documentação de cotas e limites.
  • Para o serviço SQL Connect, há uma cota para solicitações do GraphQL, que afeta a taxa em que você pode chamar e executar consultas:

    • Uma cota por projeto e por região de 24.000 solicitações do GraphQL por minuto

    Se você atingir esses limites de cota, entre em contato com o suporte do Firebase para ajustar a cota relevante.

Monitorar a performance, o uso e o faturamento do serviço

É possível monitorar solicitações, erros e taxas de operação, globalmente e por operação no Firebase console.

Gerenciar instâncias Cloud SQL

Limitações do teste sem custos financeiros

Os seguintes Cloud SQL para PostgreSQL não são compatíveis com os testes sem custos financeiros do Spark ou do Blaze:

  • Nível de máquina diferente de db-f1-micro
  • Alteração de recursos da instância, como região, armazenamento, memória, CPU
  • Versões do PostgreSQL diferentes de 15.x
  • Réplicas de leitura
  • Endereço IP da instância particular
  • Alta disponibilidade (multizona); apenas instâncias de zona única são compatíveis
  • Enterprise Plus Edition
  • Backups automáticos
  • Aumento automático de armazenamento.

Limitações de bancos de dados temporários de integração

Ao adicionar SQL Connect ao projeto do Firebase, você pode começar a criar um protótipo do modelo de dados e carregar dados imediatamente, já que os dados serão armazenados em um banco de dados temporário. A instância permanente Cloud SQL para PostgreSQL leva de 5 a 20 minutos para ser provisionada. Todos os dados iniciais carregados serão migrados automaticamente para o banco de dados PostgreSQL permanente assim que ele for provisionado.

Esse banco de dados temporário é ótimo para explorar seu esquema e operações CRUD.

Se você não quiser usar o banco de dados temporário, aguarde o provisionamento da sua Cloud SQL instância.

O banco de dados temporário não é um banco de dados PostgreSQL e não oferece todos os recursos do PostgreSQL.

As limitações significativas são:

  • O tamanho do banco de dados precisa ser menor que 1 MB
  • O número de linhas por tabela precisa ser menor que 1.000
  • Menos de uma consulta por segundo
  • Sem suporte à pesquisa de texto completo
  • Sem suporte à geração de embedding de vetor
  • Sem suporte a recursos SQL como @view, @col(dataType) ou SQL nativo.

Administrar instâncias Cloud SQL

Em geral, é possível gerenciar as instâncias Cloud SQL usando o Google Cloud console para executar os seguintes fluxos de trabalho.

  • Interromper e reiniciar instâncias Cloud SQL

  • Criar e excluir Cloud SQL bancos de dados (em instâncias)

  • Iniciar instâncias de banco de dados PostgreSQL com flags e usar uma variedade de extensões

  • Monitorar a performance com Cloud SQL recursos de observabilidade no Google Cloud console

  • Gerenciar o acesso e a segurança de Cloud SQL com recursos como IAM, gerenciador de secrets, criptografia de dados e proxy de autenticação

  • Adicionar, excluir e administrar usuários Cloud SQL.

Para esses e outros fluxos de trabalho, consulte a Cloud SQL para a documentação do PostgreSQL.

Conceder papéis de usuário do PostgreSQL

SQL Connect oferece ferramentas para gerenciar o acesso do usuário que seguem o o princípio do menor privilégio (conceder a cada usuário ou conta de serviço as permissões mínimas necessárias para oferecer suporte à funcionalidade necessária) e a noção de controle de acesso baseado em papéis (RBAC) (com papéis predefinidos para gerenciar permissões de banco de dados, simplificando o gerenciamento de segurança).

Em alguns casos, talvez você queira se conectar diretamente ao banco de dados SQL Connect-gerenciado Cloud SQL usando um cliente SQL de sua escolha, por exemplo, Cloud Run, Cloud Functions ou GKE.

Para ativar essas conexões, é necessário conceder permissões SQL:

  • Atribuir o papel do IAM roles/cloudsql.client ao usuário ou à conta de serviço que precisa se conectar à instância, no console Google Cloud ou usando a gcloud CLI
  • Conceder o papel necessário do PostgreSQL usando a CLI Firebase

Atribuir o papel do IAM Cloud SQL

Para informações sobre como trabalhar com Cloud SQL para PostgreSQL para atribuir papel do IAM roles/cloudsql.client, consulte Papéis e permissões.

Conceder papéis do PostgreSQL

Usando a CLI do Firebase, é possível conceder papéis predefinidos do PostgreSQL a usuários ou contas de serviço associadas ao projeto com o firebase dataconnect:sql:grant comando.

Por exemplo, para conceder o papel de gravador, execute este comando usando a Firebase CLI:

firebase dataconnect:sql:grant --role writer

Para mais detalhes, consulte o Firebase guia de referência da CLI.

Integrar bancos de dados Cloud SQL para PostgreSQL

O fluxo de provisionamento e gerenciamento de banco de dados padrão pressupõe que o projeto use bancos de dados novos (greenfield) e, quando você invoca firebase deploy, SQL Connect mostra as mudanças de esquema de banco de dados a serem feitas e executa todas as migrações após a aprovação.

Para bancos de dados atuais (brownfield), talvez você tenha seu próprio fluxo de trabalho para gerenciar esquemas e não possa usar as ferramentas do SQL Connect para migrações, mas gostaria de usar seu banco de dados em um projeto do SQL Connect para aproveitar a geração de SDK para dispositivos móveis e Web, autorização baseada em consultas, gerenciamento de conexão do cliente e muito mais.

Esta seção oferece orientações sobre o último caso: integrar bancos de dados atuais ao SQL Connect.

Integrar um banco de dados atual a um projeto SQL Connect

O fluxo de trabalho para integrar um banco de dados atual geralmente envolve estas etapas:

  1. Durante a configuração do projeto SQL Connect no console Firebase, selecione a instância e o banco de dados.

  2. Usando a CLI Firebase, execute o comando firebase dataconnect:sql:setup e recuse a opção de permitir que SQL Connect processe migrações SQL.

    Para evitar mudanças no esquema do banco de dados que não sejam impulsionadas por suas ferramentas personalizadas, o comando setup vai atribuir papéis de leitor e gravador adequados, mas não o papel owner. Mais informações sobre o comando setup e os papéis do PostgreSQL estão disponíveis no Firebase guia de referência da CLI.

  3. Escreva um esquema do GraphQL do SQL Connect que corresponda ao esquema do banco de dados.

    Só é possível implantar o esquema, as consultas e as mutações do GraphQL quando o esquema do GraphQL é compatível com o esquema do PostgreSQL.

    Para simplificar o alinhamento dos dois esquemas, fornecemos o comando firebase dataconnect:sql:diff, que fornece as instruções SQL necessárias para migrar o banco de dados. É possível usar isso para refinar iterativamente o esquema do GraphQL para corresponder ao esquema do banco de dados atual.

  4. A partir de agora, é possível iterar rapidamente no esquema, nas consultas e na mutação do GraphQL no ambiente de desenvolvimento local. Em seguida, quando estiver satisfeito, use firebase dataconnect:sql:diff para receber as instruções de migração SQL que podem ser aplicadas ao PostgreSQL usando suas ferramentas e fluxos personalizados.

  5. Como alternativa, você pode fazer mudanças diretamente no banco de dados PostgreSQL primeiro e tentar portá-las de volta para o esquema do GraphQL. Recomendamos a abordagem GraphQL-first, já que pode haver casos em que as mudanças de esquema não são compatíveis. Além disso, se você implantar mudanças que tornam o esquema do PostgreSQL incompatível com as consultas ou mutações do conector implantado, esses conectores poderão parar de funcionar ou se comportar mal.