Beispiel: Private Verbindung für einen Atlas-Cluster

Auf dieser Seite wird erläutert, wie Sie die Konnektivität von Integration Connectors zu Ihrem MongoDB Atlas-Cluster aktivieren, der in einem privaten Netzwerk in Google Cloud ausgeführt wird.

Private Verbindung für einen Atlas-Cluster konfigurieren

So konfigurieren Sie eine private Verbindung für einen Atlas-Cluster:

  1. Melden Sie sich in der Atlas-Verwaltungskonsole an.
  2. Öffnen Sie das Atlas-Projekt, für das Sie die Netzwerkverbindung herstellen müssen.
  3. Öffnen Sie die Seite Netzwerkzugriff des Projekts und wählen Sie Privater Endpunkt aus.
  4. Wählen Sie Dedizierter Cluster aus und klicken Sie dann auf Privaten Endpunkt hinzufügen.

    Daraufhin wird das Dialogfeld zur Auswahl eines Cloud-Anbieters geöffnet.

  5. Wählen Sie Google Cloud aus und klicken Sie dann auf Weiter.
  6. Wählen Sie eine Atlas-Region aus und klicken Sie auf Weiter.

    Dies ist die Google Cloud-Region, in der Ihr Atlas-Cluster erstellt wird. Sie sollte mit der Region des Google Cloud-Projekts übereinstimmen, in dem Sie die Verbindungen erstellen. Eine Liste aller unterstützten Integration Connector-Regionen finden Sie unter Standorte.

  7. Geben Sie die Google Cloud-Projekt-ID ein. Dies ist die Projekt-ID des Dienstverzeichnisses aus der Integration Connectors-Laufzeit. Weitere Informationen finden Sie unter Projekt-ID des Dienstverzeichnisses abrufen.
  8. Geben Sie im Feld VPC-Name default ein.
  9. Geben Sie im Feld Subnetzname den Wert default ein.
  10. Geben Sie im Feld Präfix für Private Service Connect-Endpunkt ein Präfix ein.

    Diesem Text wird allen Endpunktnamen vorangestellt. Er kann verwendet werden, um die von Ihnen erstellten privaten Endpunkte zu identifizieren.

  11. Installieren Sie die gcloud-Befehlszeile (Befehlszeile). Weitere Informationen finden Sie unter gcloud CLI installieren.
  12. Kopieren und speichern Sie das folgende Shell-Skript als setup_psc.sh auf Ihrem lokalen System.

    Legen Sie entsprechende Werte für die folgenden Variablen im Skript fest:

    • PROJECT_ID
    • REGION
    • AUSWÄHLEN
    • SERVICE_ATTACHMENT_ID_PREFIX
    #!/bin/bash
    
    alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)"'
    
    # Set PROJECT_ID to the ID of the Google Cloud project where you create your connections.
    export PROJECT_ID=PROJECT_ID
    
    # Set REGION to the Google Cloud region where Atlas cluster is installed.
    export REGION=REGION
    
    export HOSTNAME=https://connectors.googleapis.com/v1
    
    # Set ENDPOINT_PREFIX to the prefix value that you entered for the
    # "Private service connect endpoint prefix" field (in step 10).
    export PREFIX=ENDPOINT_PREFIX
    
    # Set SERVICE_ATTACHMENT_ID_PREFIX to the prefix of the service attachments
    # created by Atlas. The service attachments are present in the script
    # displayed on the Atlas UI and have the following naming format:
    # projects/{google-cloud-project-id-of-atlas-cluster}/regions/{region}/serviceAttachment/{prefix}-{index}
    # For example, if the service attachment is
    # "projects/p-ditnerelrvndieqhe3kh9pop/regions/us-west1/serviceAttachments/sa-us-west1-37204mg5wr0j6-$i",
    # you must set the value of SERVICE_ATTACHMENT_ID_PREFIX to
    # "projects/p-ditnerelrvndieqhe3kh9pop/regions/us-west1/serviceAttachments/sa-us-west1-37204mg5wr0j6"
    export SERVICE_ATTACHMENT_ID_PREFIX=SERVICE_ATTACHMENT_ID_PREFIX
    
    function poll_operation() {
      OPERATION_ID="$1"
      INDEX="$2"
      RESULT=''
    
      while [[ "$RESULT" != *"true"* ]];
      do
        RESULT=$(gcurl -s -X GET "${HOSTNAME}/${OPERATION_ID}" | grep '"done"')
        sleep 5
      done
    
      echo "${PREFIX}-${INDEX} created"
    }
    
    echo "Creating Endpoint Attachments..."
    for i in {0..49}
    do
      export ENDPOINT=${HOSTNAME}/projects/${PROJECT_ID}/locations/${REGION}/endpointAttachments?endpointAttachmentId=${PREFIX}-$i
      OPERATION_ID=$(gcurl -s -X POST -H "Content-Type: application/json" -d '{"name": "'"projects/${PROJECT_ID}/locations/${REGION}/endpointAttachments/${PREFIX}-$i"'","serviceAttachment": "'"${SERVICE_ATTACHMENT_ID_PREFIX}-$i"'"}' "${ENDPOINT}" | sed 's/  //' | grep -E '"name"' | sed -E 's/"name": "//' | sed 's/",//')
      poll_operation "$OPERATION_ID" "$i" &
    done
    
    wait
    echo "All endpoint attachments created."
    
    echo "[" > atlasEndpoints-${PREFIX}.json
    
    echo "Fetching IP Addresses..."
    for i in {0..49}
    do
      ENDPOINT=${HOSTNAME}/projects/${PROJECT_ID}/locations/${REGION}/endpointAttachments/${PREFIX}-$i
      gcurl -s -X GET "${ENDPOINT}" | sed 's/  //g' | grep -E 'name|endpointIp' | sed 's/"endpointIp"/"IPAddress"/g' | sed -E 's/"name": "projects\/.+\/locations\/.+\/endpointAttachments\//"name": "/g' | sed '1 s/"/{"/1' | sed '2 s/"/"},/4' >> atlasEndpoints-${PREFIX}.json
    done
    
    sed -i '$s/,/]/' atlasEndpoints-${PREFIX}.json
    
    echo "Created atlasEndpoints-${PREFIX}.json"
  13. Führen Sie das Shell-Skript aus. Rufen Sie das Verzeichnis auf, in dem Sie das Skript gespeichert haben, und führen Sie den folgenden Befehl aus, um das Shell-Skript auszuführen:
    sh setup_psc.sh

    Dieses Skript generiert eine JSON-Datei mit der Liste der IP-Adressen und der entsprechenden PSC-Endpunktnamen. Die JSON-Datei wird in dem Verzeichnis gespeichert, in dem das Shell-Skript ausgeführt wird.

  14. Klicken Sie in der Atlas-Verwaltungskonsole auf Weiter.
  15. Klicken Sie auf JSON-Datei hochladen und laden Sie dann die JSON-Datei hoch, die in Schritt 13 erstellt wurde.
  16. Klicken Sie auf Erstellen.

    Die Einrichtung des Endpunkts kann bis zu 25 Minuten dauern. Wenn die Einrichtung erfolgreich ist, hat der Endpunkt den Status Available.

  17. Prüfen Sie Ihre private Verbindung. Weitere Informationen finden Sie unter Private Verbindung prüfen.

Projekt-ID des Dienstverzeichnisses abrufen

Die Projekt-ID des Dienstverzeichnisses können Sie mit der List Connections API abrufen, 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 Ihres 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 in etwa folgende Ausgabe 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 lautet die Projekt-ID des Dienstverzeichnisses für das Google Cloud-Projekt connectors-test abcdefghijk-tp.

Private Verbindung prüfen

So überprüfen Sie die private Verbindung zu Ihren Atlas-Clustern:

  1. Öffnen Sie in der Atlas-Verwaltungskonsole die Seite Datenbank-Deployments.
  2. Scrollen Sie zum erforderlichen Cluster und klicken Sie auf Verbinden. Dadurch wird das Dialogfeld Mit <CLUSTER_NAME> verbinden geöffnet.
  3. Klicken Sie als Verbindungstyp auf Privater Endpunkt.
  4. Wählen Sie in der Drop-down-Liste Privaten Endpunkt auswählen das Präfix des privaten Endpunkts aus, das Sie in der Atlas-Benutzeroberfläche eingegeben haben.
  5. Klicken Sie auf Verbindungsmethode auswählen.
  6. Klicken Sie im Abschnitt Verbindung zu Ihrer Anwendung herstellen auf Treiber. Mit diesem Schritt wird der Verbindungsstring srv abgerufen.
  7. Kopieren Sie den Verbindungsstring srv aus dem Abschnitt Verbindungsstring in Ihren Anwendungscode hinzufügen.

    Format des srv-Strings: mongodb+srv://{cluster-name}-pl-{index}.{unique-pin}.mongodb.net.

  8. Erstellen Sie eine MongoDB-Verbindung. Verwenden Sie dazu diesen srv-String als Hostnamen. Weitere Informationen finden Sie unter MongoDB-Connector konfigurieren.

    Die Verbindung sollte erfolgreich erstellt werden.