Verbindung zu Diensten, die in einer serverlosen Umgebung gehostet werden

Auf dieser Seite wird beschrieben, wie Sie Integration Connectors konfigurieren, um eine Verbindung zu Diensten herzustellen, die in serverlosen Umgebungen wie Cloud Run in Google Cloud gehostet werden.

Das folgende Bild zeigt die Einrichtung einer privaten Netzwerkverbindung von Integration Connectors zu einem Dienst, der in der Cloud Run-Umgebung in Google Cloud gehostet wird:

Auf dieser Seite wird davon ausgegangen, dass Sie mit den folgenden Konzepten vertraut sind:

Hinweise

Beachten Sie beim Erstellen eines PSC-Dienstanhangs die folgenden wichtigen Punkte:

  • Der PSC-Dienstanhang und der Load-Balancer werden in verschiedenen Subnetzen erstellt innerhalb derselben VPC. Der Dienstanhang wird immer in einem NAT-Subnetz erstellt.
  • Traffic vom Load Balancer und von der Systemdiagnoseprüfung muss an denselben Port gesendet werden.
  • Konfigurieren Sie die Firewallregeln so, dass der Trafficfluss erleichtert wird.

    Regeln für eingehenden Traffic

    Der Traffic aus dem Subnetz der PSC-Dienstanwendung muss Ihren Backend-Dienst erreichen.

    Regeln für ausgehenden Traffic

    Ausgehender Traffic ist in einem Google Cloud-Projekt standardmäßig aktiviert, sofern nicht speziell Ablehnungsregeln konfiguriert sind.

  • Alle Google Cloud-Komponenten wie der PSC-Dienstanhang und der Load-Balancer müssen sich in derselben Region befinden.

PSC-Dienstanhang erstellen

Damit eine private Verbindung über Integration Connectors hergestellt werden kann, muss Ihr Dienst mithilfe eines PSC-Dienstanhangs für Integration Connectors verfügbar sein. Ein Dienstanhang verwendet immer einen Load-Balancer. Wenn Ihr Dienst also nicht hinter einem Load Balancer ausgeführt wird, muss ein Load Balancer konfiguriert werden.

  1. Erstellen Sie ein Lastenausgleichsmodul. Wenn Sie bereits einen Load Balancer haben, überspringen Sie diesen Schritt.

    Folgen Sie der Anleitung unter Regionalen internen Application Load Balancer mit Cloud Run einrichten, um einen Application Load Balancer mit einer serverlosen NEG als Backend zu erstellen.

  2. Dienstanhang erstellen
    1. Erstellen Sie ein Subnetz für PSC NAT. Mit dem folgenden Befehl wird ein Subnetz mit dem Namen psc-nat-subnet1 und dem Zweck PRIVATE_SERVICE_CONNECT erstellt.
      gcloud compute networks subnets create psc-nat-subnet1 \
                --network=VPC_NETWORK --range=SUBNET_RANGE_1 \
                --purpose=PRIVATE_SERVICE_CONNECT
    2. Erstellen Sie eine Firewallregel, um Traffic von der PSC-NAT zum Load-Balancer zuzulassen.
      gcloud compute network-firewall-policies rules create PRIORITY --firewall-policy FIREWALL_POLICY_NAME_SA \
          --direction=INGRESS  --network=VPC_NETWORK \
          --action=allow --allow=tcp:BACKEND_SERVER_PORT --src-ip-ranges=SUBNET_RANGE_1
    3. Erstellen Sie einen Dienstanhang mit expliziter Genehmigung.
      gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME --producer-forwarding-rule=FORWARDING_RULE_NAME  --connection-preference=ACCEPT_MANUAL --consumer-accept-list=SERVICE_DIRECTORY_PROJECT_ID=LIMIT --nat-subnets=psc-nat-subnet1

      In diesem Befehl ist LIMIT das Verbindungslimit für das Projekt. Das Verbindungslimit gibt die Anzahl der PSC-Endpunkte an, die eine Verbindung zu diesem Dienst herstellen können. Führen Sie den folgenden Schritt aus, um das SERVICE_DIRECTORY_PROJECT_ID abzurufen:

      • Sie können den PSC-Dienstanhang so erstellen, dass nur Anfragen von den angegebenen Google Cloud-Projekten akzeptiert werden. Dazu benötigen Sie jedoch die Projekt-ID des Dienstverzeichnisses, das mit Ihrem Google Cloud-Projekt verknüpft ist. Um die Projekt-ID des Dienstverzeichnisses abzurufen, können Sie die List Connections API verwenden, wie im folgenden Beispiel gezeigt.

        Syntax

        curl -X GET \
            -H "authorization: Bearer $(gcloud auth print-access-token)" \
            -H "Content-Type: application/json" \
            "https://connectors.googleapis.com/v1/projects/CONNECTORS_PROJECT_ID/locations/-/connections"

        Ersetzen Sie Folgendes:

        • CONNECTORS_PROJECT_ID: Die ID des Google Cloud-Projekts, in dem Sie die Verbindung erstellt haben.

        Beispiel

        In diesem Beispiel wird die Projekt-ID des Dienstverzeichnisses für das Google Cloud-Projekt connectors-test abgerufen.

        curl -X GET \
            -H "authorization: Bearer $(gcloud auth print-access-token)" \
            -H "Content-Type: application/json" \
            "https://connectors.googleapis.com/v1/projects/connectors-test/locations/-/connections"

        Wenn Sie diesen Befehl im Terminal ausführen, wird eine Ausgabe wie die folgende angezeigt:

        .....
        {
          "connections": [
            {
              "name": "projects/connectors-test/locations/asia-northeast1/connections/big-query-iam-invalid-sa",
              "createTime": "2022-10-07T09:02:31.905048520Z",
              "updateTime": "2022-10-07T09:22:39.993778690Z",
              "connectorVersion": "projects/connectors-test/locations/global/providers/gcp/connectors/bigquery/versions/1",
              "status": {
                "state": "ACTIVE"
              },
              "configVariables": [
                {
                  "key": "project_id",
                  "stringValue": "connectors-test"
                },
                {
                  "key": "dataset_id",
                  "stringValue": "testDataset"
                }
              ],
              "authConfig": {},
              "serviceAccount": "564332356444-compute@developer.gserviceaccount.com",
              "serviceDirectory": "projects/abcdefghijk-tp/locations/asia-northeast1/namespaces/connectors/services/runtime",
              "nodeConfig": {
                "minNodeCount": 2,
                "maxNodeCount": 50
              }
            },
        ....
        

        In der Beispielausgabe für das Google Cloud-Projekt connectors-test ist die Projekt-ID des Service Directory ist abcdefghijk-tp.

Endpunktanhang zum Verwenden des PSC-Dienstanhangs erstellen

Endpunktanhang als IP-Adresse

Eine Anleitung zum Erstellen eines Endpunktanhangs als IP-Adresse finden Sie unter Endpunktanhang als IP-Adresse erstellen.

Endpunktanhang als Hostname

In bestimmten Fällen, z. B. bei TLS-fähigen Back-Ends, müssen Sie für das Ziel Folgendes verwenden: statt privater IP-Adressen verwenden, um die TLS-Validierung durchzuführen. Wenn anstelle einer IP-Adresse für das Hostziel ein privates DNS verwendet wird, müssen Sie nicht nur einen Endpunkt-Anhang als IP-Adresse erstellen, sondern auch verwaltete Zonen konfigurieren. Anweisungen für einen Endpunktanhang als Hostnamen, Siehe Endpunktanhang als Hostnamen erstellen.

Wenn Sie Ihre Verbindung später so konfigurieren, dass der Endpunktanhang verwendet wird, können Sie diesen auswählen.

Verbindung für die Verwendung des Endpunktanhangs konfigurieren

Nachdem Sie nun einen Endpunktanhang erstellt haben, verwenden Sie den Endpunktanhang in Ihrer Verbindung. Wenn Sie eine neue Verbindung erstellen oder eine vorhandene Verbindung aktualisieren, wählen Sie im Abschnitt „Ziele“ die Option Endpunktanhang als Zieltyp aus. Wählen Sie dann den von Ihnen erstellten Endpunktanhang aus der Liste Endpunktanhang aus.

Wenn Sie eine verwaltete Zone erstellt haben, wählen Sie Hostadresse als Zieltyp aus und verwenden Sie den A-Eintrag, den Sie beim Erstellen der verwalteten Zone erstellt haben.

Tipps zur Fehlerbehebung

Halten Sie sich an die in diesem Abschnitt aufgeführten Richtlinien, um häufige Probleme zu vermeiden: