Como você se conecta ao MongoDB Atlas do Google Cloud Run ao usar VPC e rede de pares?
Estou tentando me conectar do Google Cloud Run ao MongoDB usando VPC e rede de mesmo nível, mas não consigo estabelecer uma conexão. O objetivo é ser capaz de se conectar do Cloud Run ao Atlas, permitindo apenas um determinado intervalo de IP.
Minha configuração é:
- MongoDB Atlas em execução no Google Cloud.
- Um contêiner do Google Cloud Run executando um servidor NodeJS na mesma região que o atlas MongoDB (embora isso não deva importar pelo que eu saiba).
Eu tomei as seguintes medidas:
Crie um VPC no lado do Google Cloud seguindo as instruções de https://cloud.google.com/vpc/docs/using-vpc.
Configure um peering de rede entre meu VPC e o MongoDB Atlas VPC: https://docs.atlas.mongodb.com/security-vpc-peering/
Configure o acesso VPC sem servidor usando um conector: https://cloud.google.com/vpc/docs/configure-serverless-vpc-access
Contêiner de execução em nuvem reimplantado usando o conector acima: https://cloud.google.com/run/docs/configuring/connecting-vpc
Adicionado o intervalo CIDR da etapa 3 à lista de permissões no atlas MongoDB e removido o intervalo aberto anterior 0.0.0.0/0.
Todas as etapas foram bem-sucedidas (pontos verdes, etc.), mas quando tento conectar após a etapa 5, a conexão falha. o que estou perdendo?
Respostas
Resolvi isso respondendo à minha própria pergunta. Acontece que a abordagem descrita na pergunta funciona. Eu estava faltando duas coisas:
Você precisa alterar a string de conexão MongoDB para a string de conexão privada. Você pode recuperá-lo clicando em "Conectar" em "Clusters" no painel do MongoDB. Até onde pude ver, isso não está documentado em nenhum lugar no guia de rede de pares do MongoDB.
Coloque na lista de permissões o intervalo CIDR do próprio VPC (etapa 1) e o intervalo CIDR do conector sem servidor (etapa 3) nas configurações de rede do MongoDB Atlas.