
Estou implantando uma Cloudfunction com rede VPC da seguinte forma:
gcloud beta functions deploy my-function
--trigger-http
--region europe-west1
--memory 128MB
--runtime nodejs16
--entry-point entrypoint
--allow-unauthenticated
# needed to access compute instances
# https://console.cloud.google.com/networking/connectors/list
--vpc-connector cloud-function-connector
# vpc connector should be used only to access private network
--egress-settings private-ranges-only
Agora, se meu Cloudfunction usar endereços IP de recursos de computação, posso acessá-los facilmente. No entanto, quando uso seus nomes de host, o DNS não é resolvido, o que resulta em:
Error: getaddrinfo ENOTFOUND my-compute-resource
O que preciso fazer para poder usar o DNS em minhas instâncias de computação?
Responder1
Para acessar um recurso por meio de um nome de host, você deve usar o Nome de Domínio Totalmente Qualificado (FQDN). Usar apenas a parte do host falhará.
Uma VM do Compute Engine tem o seguinte formato FQDN:
VM_NAME.ZONE.c.PROJECT_ID.internal
Se você especificar apenas VM_NAME, para qual ZONE e PROJECT_ID a solicitação deverá ser resolvida? Essa resposta também determina qual servidor DNS interno deve ser consultado para obter a resposta.
Para evitar essa ambigüidade, o Google Cloud DNS exige FQDN.