DNS-Auflösung von Cloudfunctions im VPC-Netzwerk

DNS-Auflösung von Cloudfunctions im VPC-Netzwerk

Ich stelle eine Cloudfunktion mit VPC-Netzwerk wie folgt bereit:

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

Wenn meine Cloudfunktion nun die IP-Adresse von Rechenressourcen verwendet, kann ich problemlos darauf zugreifen. Wenn ich jedoch ihre Hostnamen verwende, werden die DNS nicht aufgelöst, was zu folgendem Ergebnis führt:

Error: getaddrinfo ENOTFOUND my-compute-resource

Was muss ich tun, um DNS für meine Compute-Instanzen verwenden zu können?

Antwort1

Um über einen Hostnamen auf eine Ressource zuzugreifen, müssen Sie den vollqualifizierten Domänennamen (FQDN) verwenden. Die Verwendung nur des Host-Teils schlägt fehl.

Eine Compute Engine-VM hat das folgende FQDN-Format:

VM_NAME.ZONE.c.PROJECT_ID.internal

Wenn Sie nur den VM_NAME angeben, für welche ZONE und PROJECT_ID soll die Anfrage dann aufgelöst werden? Diese Antwort bestimmt auch, welcher interne DNS-Server für die Antwort abgefragt werden soll.

Um diese Mehrdeutigkeit zu vermeiden, erfordert Google Cloud DNS einen FQDN.

Interne DNS-Namen und Shared VPC

verwandte Informationen