Seus projetos do Data Connect consistem em dois elementos principais de infraestrutura:
- Uma ou mais instâncias de serviço Data Connect
- Uma ou mais instâncias do Cloud SQL para PostgreSQL
Este guia mostra como configurar e gerenciar as instâncias de serviço do Data Connect e apresenta como gerenciar as instâncias associadas do Cloud SQL.
Configurar regiões para Firebase Data Connect
Os projetos que usam Data Connect exigem uma configuração de local.
Ao criar uma instância de serviço Data Connect, você precisa selecionar o local do serviço.
Locais disponíveis
Os serviços Data Connect podem ser criados nas seguintes regiões.
- 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
Gerenciar instâncias de serviço do Data Connect
Cria serviços
Para criar um serviço, use o console Firebase ou execute a inicialização do projeto local usando a CLI Firebase. Esses fluxos de trabalho criam um novo serviço Data Connect.
Esses fluxos também orientam você sobre como:
- Provisionar uma nova instância do Cloud SQL (nível sem custos financeiros)
- Como vincular uma instância do Cloud SQL a Data Connect (plano Blaze)
Gerenciar usuários
O Data Connect oferece ferramentas para gerenciar o acesso do usuário de acordo com o princípio do privilégio mínimo (conceda 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 função (RBAC) (com funções predefinidas 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 instâncias do Data Connect no seu projeto, use o console do Firebase para selecionar 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 de um projeto, você concede a ele todas as permissões contidas no papel. Confira mais informações em:
- A visão geral dos papéis do IAM do Firebase
- A lista detalhada de papéis do Data Connect
Escolher funções para ativar fluxos de trabalho específicos
Os papéis do IAM permitem que os fluxos de trabalho da CLI Firebase gerenciem seus projetos do Data Connect.
Comando da CLI, outro fluxo de trabalho | Funções necessárias |
---|---|
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 Data Connect
Entenda o desempenho do serviço
O desempenho do serviço Data Connect e do Cloud SQL para PostgreSQL pode afetar sua experiência.
- Para o serviço Cloud SQL para PostgreSQL, consulte as orientações gerais na documentação de cotas e limites.
Para o serviço Data Connect, há uma cota para solicitações do GraphQL, que afeta a taxa em que você pode chamar e executar consultas:
- Uma cota geral por projeto de 6.000 solicitações por minuto de conectores de apps cliente.
- Uma cota geral por projeto de 6.000 solicitações por minuto da Firebase Admin SDK e da API REST.
- Uma cota por usuário de 1.200 solicitações por minuto. Aqui, "por usuário" significa que o limite se aplica a solicitações iniciadas por um endereço IP, seja de um app cliente, do Firebase Admin SDK ou da API REST.
Se você atingir esses limites, 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, tanto globalmente quanto por operação no console do Firebase.
Gerenciar instâncias do Cloud SQL
Limitações do teste sem custo financeiro
Os seguintes recursos do Cloud SQL para PostgreSQL não são compatíveis com o teste sem custos financeiros por três meses:
- Versões do PostgreSQL diferentes de 15.x
- Uso de instâncias atuais do Cloud SQL para PostgreSQL
- Um nível de máquina diferente de db-f1-micro
- Mudar os recursos da instância, como armazenamento, memória e CPU
- Réplicas de leitura
- Endereço IP da instância particular
- Alta disponibilidade (várias zonas); somente instâncias de zona única são compatíveis
- Edição Enterprise Plus
- Backups automáticos
- Aumento automático de armazenamento.
Administrar instâncias do Cloud SQL
Em geral, é possível gerenciar as instâncias do Cloud SQL usando o console Google Cloud para realizar os seguintes fluxos de trabalho.
- Interromper e reiniciar instâncias do Cloud SQL
- Criar e excluir bancos de dados do Cloud SQL (em instâncias)
- Inicie instâncias de banco de dados PostgreSQL com flags e use uma variedade de extensões
- Monitore a performance com os recursos de observabilidade do Cloud SQL no console Google Cloud
- Gerenciar o acesso e a segurança do Cloud SQL com recursos como IAM, Secret Manager, criptografia de dados e proxy de autenticação
- Adicionar, excluir e administrar usuários do Cloud SQL.
Para esses e outros fluxos de trabalho, consulte a documentação do Cloud SQL para PostgreSQL.
Conceder papéis de usuário do PostgreSQL
O Data Connect oferece ferramentas para gerenciar o acesso do usuário de acordo com o princípio do privilégio mínimo (conceda 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 função (RBAC) (com funções predefinidas para gerenciar permissões de banco de dados, simplificando o gerenciamento de segurança).
Em alguns casos, talvez seja necessário se conectar diretamente ao banco de dados do Cloud SQL gerenciado por Data Connect usando um cliente SQL de sua escolha, por exemplo, Cloud Run, Cloud Functions ou GKE.
Para ativar essas conexões, conceda permissões de SQL fazendo o seguinte:
- Atribuir o papel do IAM
roles/cloudsql.client
ao usuário ou à conta de serviço que precisa se conectar à instância, seja no console Google Cloud ou usando o gcloud CLI - Conceder o papel necessário do PostgreSQL usando a CLI Firebase
Atribuir o papel do IAM do Cloud SQL
Para informações sobre como trabalhar com o Cloud SQL para PostgreSQL e atribuir a função do IAM roles/cloudsql.client
, consulte Funções e permissões.
Conceder papéis do PostgreSQL
Usando a CLI Firebase, é possível conceder papéis predefinidos do PostgreSQL a usuários
ou contas de serviço associadas ao seu projeto com o
comando firebase dataconnect:sql:grant
.
Por exemplo, para conceder o papel de gravador, execute este comando na CLI:
firebase dataconnect:sql:grant --role writer
Para mais detalhes, consulte o guia de referência da CLI.
Integrar bancos de dados do Cloud SQL para PostgreSQL
O fluxo padrão de provisionamento e gerenciamento de banco de dados pressupõe que seu projeto use bancos de dados novos (greenfield). Ao invocar firebase deploy
, o Data Connect vai mostrar as mudanças no esquema do banco de dados que precisam ser feitas e realizar as migrações depois que você aprovar.
Para bancos de dados legados (brownfield), talvez você tenha seu próprio fluxo de trabalho para gerenciar esquemas e não possa usar as ferramentas do Data Connect para migrações. No entanto, talvez você queira usar seu banco de dados em um projeto do Data Connect para aproveitar a geração de SDKs para dispositivos móveis e Web, a autorização baseada em consultas, o gerenciamento de conexões de clientes e muito mais.
Esta seção oferece orientações sobre o último caso: integrar bancos de dados atuais com o Data Connect.
.Integrar um banco de dados a um projeto do Data Connect
O fluxo de trabalho para integrar um banco de dados existente geralmente envolve estas etapas:
- Durante a configuração do projeto Data Connect no console Firebase, selecione a instância e o banco de dados.
Usando a CLI Firebase, execute o comando
firebase dataconnect:sql:setup
e recuse a opção de permitir que o Data Connect processe migrações de 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 papelowner
. Saiba mais sobre o comandosetup
e os papéis do PostgreSQL no guia de referência da CLI.Escreva um esquema do GraphQL Data Connect que corresponda ao esquema do banco de dados.
Só é possível implantar seu esquema, consultas e mutações do GraphQL quando ele é compatível com o esquema do PostgreSQL.
Para simplificar o alinhamento dos dois esquemas, fornecemos o comando
firebase dataconnect:sql:diff
, que oferece as instruções SQL necessárias para migrar seu banco de dados. Você pode usar isso para refinar de forma iterativa seu esquema GraphQL e corresponder ao esquema de banco de dados atual.Daqui em diante, você pode iterar rapidamente no esquema, nas consultas e na mutação do GraphQL no seu ambiente de desenvolvimento local. Em seguida, quando estiver satisfeito, use
firebase dataconnect:sql:diff
para receber as instruções de migração de 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 GraphQL. Recomendamos a abordagem GraphQL primeiro, 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 tornem seu esquema do PostgreSQL incompatível com consultas ou mutações de conector implantadas, esses conectores poderão parar de funcionar ou ter um comportamento inadequado.