Verbindung zu einer Instanz über Private Service Connect herstellen

Auf dieser Seite wird beschrieben, wie Sie mit Private Service Connect eine Verbindung zu einer Cloud SQL-Instanz herstellen.

Sie können Private Service Connect verwenden, um eine Verbindung zu einer primären Cloud SQL-Instanz oder zu einem der Lesereplikate aus mehreren VPC-Netzwerken (Virtual Private Cloud) herzustellen, die zu verschiedenen Gruppen, Teams, Projekten oder Organisationen gehören.

Hinweise

Unterstützung für die Verwendung von Private Service Connect mit einer Cloud SQL-Instanz ist für gcloud CLI Version 416.0.0 und höher verfügbar.

Nutzerrollen

Die folgende Tabelle enthält Informationen zu den Rollen, die für die Verwendung von Private Service Connect mit einer Cloud SQL-Instanz erforderlich sind:

Rolle Beschreibung
compute.networkAdmin

Vollständige Kontrolle über das VPC-Netzwerk, das eine Verbindung zu einer Cloud SQL-Instanz initiiert. Sie können IP-Adressen, Firewallregeln, Richtlinien für Dienstverbindungen und Private Service Connect-Endpunkte erstellen und verwalten.

Wenn Sie mit Private Service Connect eine Verbindung zu einer Cloud SQL-Instanz von mehreren VPC-Netzwerken aus herstellen, hat jedes Netzwerk einen eigenen Administrator.

dns.admin Vollständige Kontrolle über Cloud DNS-Ressourcen, einschließlich DNS-Zonen und -Einträgen.
cloudsql.admin : Gewährt vollständige Kontrolle über eine Cloud SQL-Instanz und steuert die Instanz über ihren Lebenszyklus.
cloudsql.instanceUser : Gewährt Zugriff auf die Cloud SQL-Instanz. Wenn Sie die Verbindung über den Cloud SQL Auth-Proxyclient herstellen, benötigen Sie die Rolle Cloud SQL-Client. Wenn Sie direkt eine Verbindung herstellen, benötigen Sie keine IAM-Rollen und -Berechtigungen (Identity and Access Management).

Private Service Connect-Endpunkt erstellen

Private Service Connect-Endpunkte sind interne IP-Adressen in einem Nutzer-VPC-Netzwerk, auf die Clients in diesem Netzwerk direkt zugreifen können. Clients können diese Endpunkte verwenden, um eine Verbindung zu Cloud SQL-Instanzen herzustellen.

Sie können entweder Cloud SQL automatisch einen Private Service Connect-Endpunkt in Ihrer VPC erstellen lassen oder den Endpunkt manuell erstellen.

Endpunkt automatisch erstellen

Wenn Cloud SQL den Private Service Connect-Endpunkt automatisch erstellen soll, gehen Sie so vor:

  1. Richtlinie für Dienstverbindungen erstellen in Ihrem VPC-Netzwerk. Mit dieser Richtlinie können Sie Private Service Connect-Endpunkte automatisch bereitstellen.

  2. Erstellen Sie eine Cloud SQL-Instanz, für die Private Service Connect aktiviert ist, und konfigurieren Sie die Instanz so, dass Private Service Connect-Endpunkte automatisch erstellt werden.

  3. Rufen Sie den Endpunkt für die Instanz ab. So können Sie den Endpunkt verwenden, um eine Verbindung zur Instanz herzustellen.

Richtlinie für Dienstverbindungen erstellen

Mit einer Richtlinie für Dienstverbindungen können Sie eine bestimmte Dienstklasse autorisieren, einen Private Service Connect-Endpunkt in Ihrem VPC-Netzwerk des Nutzers zu erstellen. Mit der Richtlinie für Dienstverbindungen können Sie Cloud SQL anweisen, Private Service Connect-Endpunkte automatisch zu erstellen.

Sie können eine Dienstverbindungsrichtlinie über die Google Cloud Console, die gcloud CLI oder die API erstellen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.

    Zu Private Service Connect

  2. Klicken Sie auf den Tab Verbindungsrichtlinien.

  3. Klicken Sie auf Verbindungsrichtlinie erstellen.

  4. Geben Sie einen Namen für die Verbindungsrichtlinie ein.

  5. Geben Sie die Dienstklasse an, indem Sie Folgendes tun:

    1. Wählen Sie für Quell-Dienstklasse die Option Google-Dienste aus.
    2. Wählen Sie im Menü Dienstklasse die Option google-cloud-sql aus, da Cloud SQL der verwaltete Dienst für die Verbindungsrichtlinie ist.
  6. Wählen Sie im Bereich Bereich der Zielendpunkte ein Netzwerk und eine Region aus, für die diese Richtlinie gilt.

  7. Wählen Sie im Bereich Richtlinie ein oder mehrere Subnetze aus dem Menü Subnetzwerke aus. Die Subnetze werden verwendet, um Endpunkten IP-Adressen zuzuweisen.

  8. Optional: Geben Sie ein Verbindungslimit für die Richtlinie an. Das Limit bestimmt, wie viele Endpunkte über diese Verbindungsrichtlinie erstellt werden können. Wenn Sie kein Verbindungslimit angeben, gibt es kein Limit.

  9. Klicken Sie auf Richtlinie erstellen.

gcloud

Verwenden Sie zum Erstellen einer Richtlinie für Dienstverbindungen den Befehl service-connection-policies create.

gcloud network-connectivity service-connection-policies create POLICY_NAME \
    --network=NETWORK \
    --project=PROJECT_ID \
    --region=REGION \
    --service-class=SERVICE_CLASS \
    --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \
    --psc-connection-limit=LIMIT \
    --description="DESCRIPTION" \
    --producer-instance-location=PRODUCER_INSTANCE_LOCATION \
    --allowed-google-producers-resource-hierarchy-level=RESOURCE_HIERARCHY_LEVEL

Ersetzen Sie Folgendes:

  • POLICY_NAME: der Name Ihrer Dienstverbindungsrichtlinie.
  • NETWORK: das Netzwerk, für das diese Richtlinie gilt.
  • PROJECT_ID: die Projekt-ID oder Nummer des Projekts des VPC-Netzwerks. Für freigegebene VPC-Netzwerke müssen Sie Richtlinien für Dienstverbindungen im Hostprojekt bereitstellen, da diese Richtlinien in Dienstprojekten nicht unterstützt werden.
  • REGION: die Region, auf die diese Richtlinie angewendet wird. Für jede Region, in der Sie die Dienstverbindung automatisieren möchten, muss dieselbe Richtlinie vorhanden sein.
  • SERVICE_CLASS: vom Ersteller bereitgestellte Ressourcenkennzeichnung der Dienstklasse. Für Cloud SQL ist die Dienstklasse google-cloud-sql.
  • SUBNETS: ein oder mehrere reguläre Nutzersubnetze, die zum Zuweisen von IP-Adressen für Private Service Connect-Endpunkte verwendet werden. Diese IP-Adressen werden automatisch zugewiesen und an den Pool des Subnetzes zurückgegeben, wenn verwaltete Dienstinstanzen erstellt und gelöscht werden. Die Subnetze müssen sich in derselben Region wie die Richtlinie für Dienstverbindungen befinden. Wenn mehrere Verbindungsrichtlinien dieselbe Region verwenden, können Sie dasselbe Subnetzwerk in diesen Richtlinien wiederverwenden. Sie können mehrere Subnetze in einer durch Kommas getrennten Liste angeben.
  • LIMIT: die maximale Anzahl von Endpunkten, die Sie mit dieser Richtlinie erstellen können. Wenn Sie kein Limit angeben, gibt es kein Limit.
  • DESCRIPTION ist eine optionale Beschreibung der Richtlinie für Dienstverbindungen
  • PRODUCER_INSTANCE_LOCATION: Mit diesem optionalen Flag können Sie angeben, ob eine benutzerdefinierte Hierarchie der Standorte für eine Cloud SQL-Instanz autorisiert werden soll. Sie können für PRODUCER_INSTANCE_LOCATION nur einen der folgenden Werte festlegen:

    • custom-resource-hierarchy-levels: Die Instanz muss sich in einem der Projekte, Ordner oder Organisationen befinden, die Sie als Wert für den Parameter allowed-google-producers-resource-hierarchy-level angeben.
    • none: Die Instanz befindet sich im selben Projekt wie die Dienstverbindungsrichtlinie.
  • RESOURCE_HIERARCHY_LEVEL: Eine Liste der Projekte, Ordner oder Organisationen, in denen sich die Instanz befindet. Diese Liste hat das Format projects/PROJECT_ID, folders/FOLDER_ID oder organizations/ORGANIZATION_ID.

Mit dem folgenden Befehl wird beispielsweise eine Richtlinie für Dienstverbindungen für die Dienstklasse
google-cloud-sql erstellt, die IP-Adressen aus dem Subnetz managed-services zuweist. Mit dieser Richtlinie können maximal 10 Private Service Connect-Endpunkte erstellt werden. Die Endpunkte müssen in Projekten erstellt werden, die sich in derselben Organisation wie die verwaltete Dienstinstanz befinden. Die Cloud SQL-Instanz befindet sich im Projekt myproject.

gcloud network-connectivity service-connection-policies create cloud-sql-policy \
    --network=default \
    --project=my-project \
    --region=us-central1 \
    --service-class=google-cloud-sql \
    --subnets=managed-service-subnet \
    --psc-connection-limit=10 \
    --producer-instance-location=custom-resource-hierarchy-levels \
    --allowed-google-producers-resource-hierarchy-level=projects/myproject

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die Projekt-ID.
  • REGION: die Region Ihrer Dienstverbindungsrichtlinie.
  • POLICY_NAME: der Name Ihrer Dienstverbindungsrichtlinie.
  • DESCRIPTION: eine optionale Beschreibung Ihrer Dienstverbindungsrichtlinie.
  • NETWORK: das Netzwerk Ihrer Dienstverbindungsrichtlinie.
  • LIMIT: die maximale Anzahl von Endpunkten, die Sie mit dieser Richtlinie erstellen können. Wenn Sie kein Limit angeben, gibt es kein Limit.
  • SUBNETS: ein oder mehrere reguläre Nutzersubnetze, die zum Zuweisen von IP-Adressen für Private Service Connect-Endpunkte verwendet werden. Diese IP-Adressen werden automatisch zugewiesen und an den Pool des Subnetzes zurückgegeben, wenn verwaltete Dienstinstanzen erstellt und gelöscht werden. Die Subnetze müssen sich in derselben Region wie die Richtlinie für Dienstverbindungen befinden. Wenn mehrere Verbindungsrichtlinien dieselbe Region verwenden, können Sie dasselbe Subnetzwerk in diesen Richtlinien wiederverwenden. Sie können mehrere Subnetze in einer durch Kommas getrennten Liste angeben.
  • SERVICE_CLASS: vom Ersteller bereitgestellte Ressourcenkennzeichnung der Dienstklasse.

HTTP-Methode und URL:

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies?serviceConnectionPolicyId=POLICY_NAME

JSON-Text anfordern:

{
  "description": "DESCRIPTION",
  "network": "projects/PROJECT_ID/global/networks/NETWORK",
  "pscConfig": {
    "limit": "LIMIT",
    "subnetworks": [
      "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
    ]
  },
  "serviceClass": "SERVICE_CLASS"
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T16:59:29.236110917Z",
    "target": "projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Cloud SQL-Instanz erstellen

Sie können eine Instanz mit aktiviertem Private Service Connect für die Instanz erstellen und die Instanz so konfigurieren, dass Endpunkte automatisch erstellt werden, indem Sie gcloud CLI oder die API verwenden.

gcloud

Verwenden Sie den Befehl gcloud sql instances create, um eine Instanz mit aktiviertem Private Service Connect für die Instanz zu erstellen:

gcloud sql instances create INSTANCE_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--enable-private-service-connect \
--allowed-psc-projects=ALLOWED_PROJECTS \
--availability-type=AVAILABILITY_TYPE \
--no-assign-ip \
--tier=MACHINE_TYPE \
--database-version=DATABASE_VERSION \
--psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT

Ersetzen Sie die folgenden Werte:

  • INSTANCE_NAME: der Name der Instanz.
  • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält.
  • REGION_NAME: der Name der Region für die Instanz.
  • ALLOWED_PROJECTS: eine durch Kommas getrennte Liste zulässiger Projekt-IDs oder -Nummern, von denen aus Private Service Connect-Endpunkte eine Verbindung zu Cloud SQL-Instanzen herstellen können.

    Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie im Projekt keine Private Service Connect-Endpunkte erstellen, um eine Verbindung zur Instanz herzustellen.

  • AVAILABILITY_TYPE: Hochverfügbarkeit für die Instanz aktivieren. Geben Sie für diesen Parameter einen der folgenden Werte an:
    • REGIONAL: Hochverfügbarkeit aktivieren und für Instanzen in der Produktionsumgebung empfohlen Die Instanz führt ein Failover auf eine andere Zone in der ausgewählten Region durch.
    • ZONAL: keine Failover-Funktion bereitstellen Dies ist der Standardwert.

    Weitere Informationen zum Festlegen und Entfernen von Hochverfügbarkeit für Instanzen finden Sie unter Bestehende Instanz für Hochverfügbarkeit konfigurieren und Hochverfügbarkeit für eine Instanz deaktivieren.

  • MACHINE_TYPE: der gewünschte Maschinentyp für die Instanz.
  • DATABASE_VERSION: die Datenbankversion für die Instanz (z. B. POSTGRES_13).
  • CONSUMER_NETWORK: der Pfad zum VPC-Netzwerk, aus dem Private Service Connect-Endpunkte erstellt werden müssen. Beispiel:
    projects/my-host-project/global/networks/default.
  • CONSUMER_PROJECT: das Projekt, in dem der Private Service Connect-Endpunkt erstellt wird. Wenn Sie ein freigegebene VPC-Netzwerk verwenden, kann dies entweder das Hostprojekt oder das Dienstprojekt sein.

    Alle Projekte, die Sie in den Parametern für die automatische Verbindung angeben, werden automatisch Ihren zulässigen Projekten hinzugefügt. Optional können Sie Projekte, in denen Sie Private Service Connect-Endpunkte manuell erstellen möchten, der Liste der zulässigen Projekte hinzufügen.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält.
  • INSTANCE_NAME: der Name der Instanz.
  • REGION_NAME: der Name der Region für die Instanz.
  • AVAILABILITY_TYPE: Hochverfügbarkeit für die Instanz aktivieren. Geben Sie für diesen Parameter einen der folgenden Werte an:
    • REGIONAL: Hochverfügbarkeit aktivieren und für Instanzen in der Produktionsumgebung empfohlen Die Instanz führt ein Failover auf eine andere Zone in der ausgewählten Region durch.
    • ZONAL: keine Failover-Funktion bereitstellen Dies ist der Standardwert.

    Weitere Informationen zum Festlegen und Entfernen von Hochverfügbarkeit für Instanzen finden Sie unter Bestehende Instanz für Hochverfügbarkeit konfigurieren und Hochverfügbarkeit für eine Instanz deaktivieren.

  • ALLOWED_PROJECTS: eine durch Kommas getrennte Liste zulässiger Projekt-IDs oder -Nummern, von denen aus Private Service Connect-Endpunkte eine Verbindung zu Cloud SQL-Instanzen herstellen können.

    Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie im Projekt keine Private Service Connect-Endpunkte erstellen, um eine Verbindung zur Instanz herzustellen.

  • MACHINE_TYPE: der gewünschte Maschinentyp für die Instanz.
  • CONSUMER_NETWORK: das VPC-Netzwerk, in dem Sie die automatische Erstellung von Private Service Connect-Endpunkten zulassen möchten.
  • PARENT_PROJECT: Das Projekt, das das Netzwerk CONSUMER_NETWORK enthält. Wenn Sie in CONSUMER_PROJECT kein anderes Projekt angeben, werden Endpunkte automatisch in PARENT_PROJECT erstellt.
  • CONSUMER_PROJECT: Optional. Geben Sie dies nur an, wenn CONSUMER_NETWORK ein freigegebene VPC-Netzwerk ist und Sie die automatische Erstellung von Private Service Connect-Endpunkten in einem Dienstprojekt zulassen möchten.

    Alle Projekte, die Sie in den Parametern für die automatische Verbindung angeben, werden automatisch Ihren zulässigen Projekten hinzugefügt. Optional können Sie Projekte, in denen Sie Private Service Connect-Endpunkte manuell erstellen möchten, der Liste der zulässigen Projekte hinzufügen.

HTTP-Methode und URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

JSON-Text anfordern:

{
  "name": "INSTANCE_NAME",
  "project": PROJECT_ID",
  "region": "REGION_NAME",
  "databaseVersion": "POSTGRES_13",
  "kind": "sql#instance",
  "settings": {
    "availabilityType": "AVAILABILITY_TYPE",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscAutoConnections": [
          {
            "consumerProject":"CONSUMER_PROJECT",
            "consumerNetwork":"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK"
          }
        ],
        "pscEnabled": true
      }
    },
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "tier": "MACHINE_TYPE"
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
  "status": "RUNNING",
  "user": "[email protected]",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Endpunkt abrufen

Wenn Sie die interne IP-Adresse abrufen, die der Private Service Connect-Endpunkt für eine Instanz ist, können Sie diesen Endpunkt verwenden, um eine Verbindung zur Instanz herzustellen.

gcloud

Verwenden Sie den Befehl gcloud sql instances describe, um Informationen zu einer Instanz aufzurufen, einschließlich der IP-Adresse, die der Private Service Connect-Endpunkt für die Instanz ist:

gcloud sql instances describe INSTANCE_NAME \
--project=PROJECT_ID \
--format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'

Ersetzen Sie die folgenden Werte:

Notieren Sie sich in der Antwort den Wert, der neben dem Feld pscConfig:pscAutoConnections:ipAddress angezeigt wird. Dieser Wert ist die interne IP-Adresse, die auch der Private Service Connect-Endpunkt für die Instanz ist.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "POSTGRES_13",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-custom-2-7680",
    "kind": "sql#settings",
    "availabilityType": "REGIONAL",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
      "pscAutoConnections": {
        consumerNetwork:"projects/PARENT_PROJECT/global/networks/CONSUMER_NETWORK",
        consumerNetworkStatus:"CONSUMER_NETWORK_STATUS",
        consumerProject:"CONSUMER_PROJECT",
        ipAddress:"IP_ADDRESS",
        status:"STATUS"
        },
        "pscEnabled": true
      },
      "ipv4Enabled": false
    },
}

Die folgenden Felder sind für Instanzen vorhanden, für die Private Service Connect aktiviert ist:

  • allowedConsumerProjects: eine Liste der zulässigen Projekte für die Instanz. Sie können Private Service Connect-Endpunkte aus allen VPC-Netzwerken in diesen Projekten für den Dienstanhang der Instanz erstellen.
  • pscAutoConnections: das zulässige VPC-Netzwerk, der Status der Dienstverbindungsrichtlinie und der Status der IP-Adresse, die der Endpunkt für die Instanz ist.
  • pscEnabled: Gibt an, ob für eine Instanz Private Service Connect aktiviert ist.

Informationen zum Erstellen der zugrunde liegenden REST API-Anfrage für diese Aufgabe finden Sie auf der Seite instances:get.

Endpunkt manuell erstellen

So erstellen Sie den Private Service Connect-Endpunkt manuell:

  1. Cloud SQL-Instanz erstellen, für die Private Service Connect aktiviert ist.

  2. URI des Dienstanhangs abrufen Sie verwenden diesen URI, um den Private Service Connect-Endpunkt zu erstellen.

  3. Reservieren Sie eine interne IP-Adresse für den Private Service Connect-Endpunkt und erstellen Sie einen Endpunkt mit dieser Adresse.

Cloud SQL-Instanz erstellen

Sie können eine Instanz mit aktiviertem Private Service Connect für die Instanz erstellen, indem Sie die gcloud CLI, Terraform oder die API verwenden.

gcloud

Verwenden Sie den Befehl gcloud sql instances create, um eine Instanz mit aktiviertem Private Service Connect für die Instanz zu erstellen:

gcloud sql instances create INSTANCE_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--enable-private-service-connect \
--allowed-psc-projects=ALLOWED_PROJECTS \
--availability-type=AVAILABILITY_TYPE \
--no-assign-ip \
--tier=MACHINE_TYPE \
--database-version=DATABASE_VERSION

Ersetzen Sie die folgenden Werte:

  • INSTANCE_NAME: der Name der Instanz.
  • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält.
  • REGION_NAME: der Name der Region für die Instanz.
  • ALLOWED_PROJECTS: eine durch Kommas getrennte Liste zulässiger Projekt-IDs oder -Nummern, von denen aus Private Service Connect-Endpunkte eine Verbindung zu Cloud SQL-Instanzen herstellen können.

    Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie im Projekt keine Private Service Connect-Endpunkte erstellen, um eine Verbindung zur Instanz herzustellen.

  • AVAILABILITY_TYPE: Hochverfügbarkeit für die hochgestufte Instanz aktivieren Geben Sie für diesen Parameter einen der folgenden Werte an:
    • REGIONAL: Hochverfügbarkeit aktivieren und für Instanzen in der Produktionsumgebung empfohlen Die Instanz führt ein Failover auf eine andere Zone in der ausgewählten Region durch.
    • ZONAL: keine Failover-Funktion bereitstellen Dies ist der Standardwert.

    Weitere Informationen zum Festlegen und Entfernen von Hochverfügbarkeit für Instanzen finden Sie unter Bestehende Instanz für Hochverfügbarkeit konfigurieren und Hochverfügbarkeit für eine Instanz deaktivieren.

  • MACHINE_TYPE: der gewünschte Maschinentyp für die Instanz.
  • DATABASE_VERSION: die Datenbankversion für die Instanz (z. B. POSTGRES_13).

Terraform

Verwenden Sie die google_sql_database_instanceTerraform-Ressource, um eine Instanz mit aktiviertem Private Service Connect für die Instanz zu erstellen.

resource "google_sql_database_instance" "default" {
  name             = "postgres-instance"
  region           = "us-central1"
  database_version = "POSTGRES_14"
  settings {
    tier              = "db-custom-2-7680"
    availability_type = "REGIONAL"
    backup_configuration {
      enabled = true
    }
    ip_configuration {
      psc_config {
        psc_enabled               = true
        allowed_consumer_projects = []
      }
      ipv4_enabled = false
    }
  }
}

Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud -Projekt anzuwenden.

Cloud Shell vorbereiten

  1. Rufen Sie Cloud Shell auf.
  2. Legen Sie das Standardprojekt Google Cloud fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.

    Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.

Verzeichnis vorbereiten

Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).

  1. Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung .tf haben, z. B. main.tf. In dieser Anleitung wird die Datei als main.tf bezeichnet.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.

    Kopieren Sie den Beispielcode in das neu erstellte main.tf.

    Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.

  3. Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
  4. Speichern Sie die Änderungen.
  5. Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
    terraform init

    Fügen Sie optional die Option -upgrade ein, um die neueste Google-Anbieterversion zu verwenden:

    terraform init -upgrade

Änderungen anwenden

  1. Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
    terraform plan

    Korrigieren Sie die Konfiguration nach Bedarf.

  2. Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply

    Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.

  3. Öffnen Sie Ihr Google Cloud Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält.
  • INSTANCE_NAME: der Name der Instanz.
  • REGION_NAME: der Name der Region für die Instanz.
  • AVAILABILITY_TYPE: Hochverfügbarkeit für die Instanz aktivieren. Geben Sie für diesen Parameter einen der folgenden Werte an:
    • REGIONAL: Hochverfügbarkeit aktivieren und für Instanzen in der Produktionsumgebung empfohlen Die Instanz führt ein Failover auf eine andere Zone in der ausgewählten Region durch.
    • ZONAL: keine Failover-Funktion bereitstellen Dies ist der Standardwert.

    Weitere Informationen zum Festlegen und Entfernen von Hochverfügbarkeit für Instanzen finden Sie unter Bestehende Instanz für Hochverfügbarkeit konfigurieren und Hochverfügbarkeit für eine Instanz deaktivieren.

  • ALLOWED_PROJECTS: eine durch Kommas getrennte Liste zulässiger Projekt-IDs oder -Nummern, von denen aus Private Service Connect-Endpunkte eine Verbindung zu Cloud SQL-Instanzen herstellen können.

    Wenn ein Projekt nicht in dieser Liste enthalten ist, können Sie im Projekt keine Private Service Connect-Endpunkte erstellen, um eine Verbindung zur Instanz herzustellen.

  • MACHINE_TYPE: der gewünschte Maschinentyp für die Instanz.

HTTP-Methode und URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

JSON-Text anfordern:

{
  "name": "INSTANCE_NAME",
  "project": PROJECT_ID",
  "region": "REGION_NAME",
  "databaseVersion": "POSTGRES_13",
  "kind": "sql#instance",
  "settings": {
    "availabilityType": "AVAILABILITY_TYPE",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscEnabled": true
      }
    },
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "tier": "MACHINE_TYPE"
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
  "status": "RUNNING",
  "user": "[email protected]",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Dienstanhang abrufen

Nachdem Sie eine Cloud SQL-Instanz mit aktiviertem Private Service Connect erstellt haben, rufen Sie den URI des Dienstanhangs ab und verwenden Sie ihn, um den Private Service Connect-Endpunkt zu erstellen.

gcloud

Verwenden Sie den Befehl gcloud sql instances describe, um zusammenfassende Informationen zu einer Instanz mit aktiviertem Private Service Connect aufzurufen, z. B. das Feld pscServiceAttachmentLink, das den URI anzeigt, der auf den Dienstanhang der Instanz verweist:

gcloud sql instances describe INSTANCE_NAME \
--project=PROJECT_ID

Ersetzen Sie die folgenden Werte:

  • INSTANCE_NAME: der Name der Cloud SQL-Instanz, zu der Private Service Connect-Endpunkte in VPC-Netzwerken eine Verbindung herstellen können
  • PROJECT_ID: die ID oder Projektnummer des Google Cloud Projekts, das die Instanz enthält

Das folgende Beispiel zeigt eine Beispielausgabe für diesen Befehl.

gcloud sql instances describe myinstance \
--project=12345

...
pscServiceAttachmentLink: projects/45678/regions/myregion/serviceAttachments/myserviceattachment

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die ID oder Projektnummer des Google Cloud Projekts, das die Instanz enthält
  • INSTANCE_NAME den Namen der Instanz

HTTP-Methode und URL:

GET https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen: