Seus projetos 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 discute como configurar e gerenciar suas instâncias de serviço Data Connect e apresenta como gerenciar as instâncias do Cloud SQL associadas.
Configurar regiões para Firebase Data Connect
Os projetos que usam Data Connect exigem uma configuração de local.
Ao criar uma nova 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 Data Connect
Cria serviços
Para criar um novo 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:
- Provisionar uma nova instância do Cloud SQL (nível sem custo)
- 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 que segue o princípio do privilégio mínimo (concede 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 papéis predefinidos para gerenciar as permissões do banco de dados, simplificando o gerenciamento de segurança).
Para adicionar membros do projeto como usuários que podem modificar instâncias de Data Connect no projeto, use o console Firebase para selecionar as funções predefinidas de usuário adequadas.
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:
- Visão geral dos papéis do IAM do Firebase
- A lista detalhada de papéis 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 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
A performance do serviço Data 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 sobre cotas e limites.
Para o serviço Data Connect, há uma cota para solicitações do GraphQL, afetando a taxa em que você pode chamar e executar consultas:
- Uma cota geral por projeto de 6.000 solicitações por minuto dos conectores de apps clientes.
- 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ê encontrar 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 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 custo financeiro de três meses:
- Versões do PostgreSQL diferentes da 15.x
- Uso de instâncias do Cloud SQL para PostgreSQL
- Nível de máquina diferente de db-f1-micro
- Alterar recursos da sua 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 suas 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 (dentro de instâncias)
- Inicie instâncias de banco de dados PostgreSQL com flags e use uma variedade de extensões
- Monitore o desempenho 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 o IAM, o gerenciador de segredos, a criptografia de dados e o proxy de autenticação
- Adicione, exclua e administre 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 que segue o princípio do privilégio mínimo (concede 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 papéis predefinidos para gerenciar as permissões do banco de dados, simplificando o gerenciamento de segurança).
Em alguns casos, talvez seja necessário se conectar ao banco de dados do Cloud SQL gerenciado por Data Connect diretamente usando um cliente SQL de sua escolha, como Cloud Run, Cloud Functions ou GKE.
Para ativar essas conexões, você precisa conceder permissões do SQL:
- Atribuir o papel do IAM
roles/cloudsql.client
à conta de usuário ou de serviço que precisa se conectar à instância, no console Google Cloud ou usando o gcloud CLI. - Conceder o papel do PostgreSQL necessário usando a CLI Firebase
Atribuir o papel do IAM do Cloud SQL
Para informações sobre como usar o Cloud SQL para PostgreSQL para atribuir a função roles/cloudsql.client
do IAM, 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 projeto com o
comando firebase dataconnect:sql:grant
.
Por exemplo, para conceder o papel de redator, execute este comando na CLI:
firebase dataconnect:sql:grant --role writer
Para mais detalhes, consulte o guia de referência da CLI.
Integrar os bancos de dados do Cloud SQL para PostgreSQL
O fluxo de provisionamento e gerenciamento de banco de dados padrão pressupõe que seu projeto
use um novo banco de dados (greenfield). Quando você invoca firebase deploy
,
Data Connect mostra as mudanças de esquema do banco de dados a serem feitas e
executa todas as migrações após a aprovação.
Para bancos de dados existentes (brownfields), você pode ter seu próprio fluxo de trabalho para gerenciar esquemas e não pode usar as ferramentas Data Connect para migrações, mas gostaria de usar seu banco de dados em um projeto Data Connect para aproveitar a geração de SDKs para dispositivos móveis e Web, autorização baseada em consultas, gerenciamento de conexões de clientes e muito mais.
Esta seção oferece orientações sobre o último caso: integrar bancos de dados existentes com Data Connect.
.Integrar um banco de dados a um projeto do Data Connect
O fluxo de trabalho para integrar um banco de dados geralmente envolve estas etapas:
- Durante a configuração do projeto Data Connect no console do 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 para permitir que o Data Connect processe migrações SQL.Para evitar mudanças no esquema do banco de dados que não sejam orientadas pelas ferramentas personalizadas, o comando
setup
vai atribuir as funções de leitor e gravador adequadas, mas não a funçãoowner
. Mais informações sobre o comandosetup
e as funções do PostgreSQL estão disponíveis no guia de referência da CLI.Escreva um esquema do GraphQL Data Connect que corresponda ao esquema do seu banco de dados.
Só é possível implantar o esquema, as consultas e as mutações do GraphQL quando ele é compatível com o esquema do PostgreSQL.
Para simplificar o alinhamento de ambos os 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 o esquema do GraphQL para corresponder ao esquema do banco de dados.Em seguida, você pode iterar rapidamente no esquema, nas consultas e na mutação do GraphQL no ambiente de desenvolvimento local. Depois, quando estiver satisfeito, use
firebase dataconnect:sql:diff
para extrair 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 transferi-las de volta para o esquema do GraphQL. Recomendamos a abordagem de priorizar o GraphQL, 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 apresentar comportamento incorreto.