在 VPC 网络中通过 Cloudfunctions 进行 DNS 解析

在 VPC 网络中通过 Cloudfunctions 进行 DNS 解析

我正在使用 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 用于我的计算实例?

答案1

要通过主机名访问资源,您必须使用完全限定域名 (FQDN)。仅使用主机部分将失败。

Compute Engine VM 具有以下 FQDN 格式:

VM_NAME.ZONE.c.PROJECT_ID.internal

如果仅指定 VM_NAME,请求应解析为哪个 ZONE 和 PROJECT_ID?该答案还决定应​​查询哪个内部 DNS 服务器以获取答案。

为了防止这种歧义,Google Cloud DNS 需要 FQDN。

内部 DNS 名称和共享 VPC

相关内容