我正在使用 VPC 网络部署 Cloudfunction,如下所示:
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
现在,如果我的 Cloudfunction 使用计算资源的 IP 地址,我可以轻松访问它们。但是,当我使用他们的主机名时,DNS 无法解析,最终结果为:
Error: getaddrinfo ENOTFOUND my-compute-resource
我需要做什么才能将 DNS 用于我的计算实例?
要通过主机名访问资源,您必须使用完全限定域名 (FQDN)。仅使用主机部分将失败。
Compute Engine 虚拟机具有以下 FQDN 格式:
如果您只指定 VM_NAME,请求应解析到哪个 ZONE 和 PROJECT_ID?该答案还确定应向哪个内部 DNS 服务器查询答案。
为了防止这种歧义,Google Cloud DNS 需要 FQDN。
内部 DNS 名称和共享 VPC