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

Я развертываю облачную функцию с сетью 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

Теперь, если моя облачная функция использует 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 требует полного доменного имени.

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

Другие вопросы по тегам