Google-Cloud-Platform

從 VPC 網路中的 Cloudfunctions 解析 DNS

  • April 8, 2022

我正在使用 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.c.PROJECT_ID.internal

如果您只指定 VM_NAME,請求應解析到哪個 ZONE 和 PROJECT_ID?該答案還確定應向哪個內部 DNS 伺服器查詢答案。

為了防止這種歧義,Google Cloud DNS 需要 FQDN。

內部 DNS 名稱和共享 VPC

引用自:https://serverfault.com/questions/1097452