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:
- A visão geral dos papéis do IAM do Firebase
- A lista detalhada de SQL Connect papéis
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
|
|
firebase deploy -–only dataconnect
|
|
firebase dataconnect:sql:diff
|
|
firebase dataconnect:sql:migrate
|
|
firebase dataconnect:sql:grant
|
|
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.clientao 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 writerPara 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:
Durante a configuração do projeto SQL Connect no console Firebase, selecione a instância e o banco de dados.
Usando a CLI Firebase, execute o comando
firebase dataconnect:sql:setupe 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
setupvai atribuir papéis de leitor e gravador adequados, mas não o papelowner. Mais informações sobre o comandosetupe os papéis do PostgreSQL estão disponíveis no Firebase guia de referência da CLI.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.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:diffpara receber as instruções de migração SQL que podem ser aplicadas ao PostgreSQL usando suas ferramentas e fluxos personalizados.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.