
Estoy implementando una función de nube con una red VPC de la siguiente manera:
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
Ahora, si mi Cloudfunction utiliza la dirección IP de los recursos informáticos, puedo acceder a ellos fácilmente. Sin embargo, cuando uso sus nombres de host, los DNS no se resuelven, lo que termina con:
Error: getaddrinfo ENOTFOUND my-compute-resource
¿Qué debo hacer para poder usar DNS para mis instancias informáticas?
Respuesta1
Para acceder a un recurso a través de un nombre de host, debe utilizar el nombre de dominio completo (FQDN). Solo fallará el uso de la parte del host.
Una VM de Compute Engine tiene el siguiente formato FQDN:
VM_NAME.ZONE.c.PROJECT_ID.internal
Si solo especifica VM_NAME, ¿para qué ZONA y PROJECT_ID debe resolverse la solicitud? Esa respuesta también determina a qué servidor DNS interno se debe consultar la respuesta.
Para evitar esa ambigüedad, Google Cloud DNS requiere FQDN.