Разрешение DNS из облачных функций в сети VPC

Разрешение DNS из облачных функций в сети VPC

Я развертываю Cloudfunction с сетью VPC следующим образом:

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_NAME.ZONE.c.PROJECT_ID.internal

Если указать только VM_NAME, для какой ZONE и PROJECT_ID должен быть разрешен запрос? Этот ответ также определяет, какой внутренний DNS-сервер следует запросить для ответа.

Чтобы избежать этой неоднозначности, Google Cloud DNS требует FQDN.

Внутренние DNS-имена и общий VPC

Связанный контент