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 VPC-Netzwerk eines Nutzers, auf die Clients in diesem Netzwerk direkt zugreifen können. Clients können über diese Endpunkte eine Verbindung zu Cloud SQL-Instanzen herstellen.
Sie können entweder Cloud SQL anweisen, einen Private Service Connect-Endpunkt automatisch in Ihrem VPC zu erstellen, oder den Endpunkt manuell erstellen.
So lassen Sie den Private Service Connect-Endpunkt automatisch von Cloud SQL erstellen:
- Erstellen Sie eine Richtlinie für Dienstverbindungen in Ihren VPC-Netzwerken. Mit dieser Richtlinie können Sie Private Service Connect-Endpunkte automatisch bereitstellen.
- 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.
- Rufen Sie den Endpunkt für die Instanz ab. So können Sie über den Endpunkt eine Verbindung zur Instanz herstellen.
So erstellen Sie den Private Service Connect-Endpunkt manuell:
- Erstellen Sie eine Cloud SQL-Instanz, für die Private Service Connect aktiviert ist.
- Rufen Sie den URI des Dienstanhangs ab. Verwenden Sie diesen URI, um den Private Service Connect-Endpunkt zu erstellen.
- Reservieren Sie eine interne IP-Adresse für den Private Service Connect-Endpunkt und erstellen Sie einen Endpunkt mit dieser Adresse.
Endpunkt automatisch erstellen
In den folgenden Abschnitten wird beschrieben, wie Sie Ihre Instanz so konfigurieren, dass Cloud SQL den Private Service Connect-Endpunkt automatisch erstellt.
Richtlinie für Dienstverbindungen erstellen
Mit einer Richtlinie für Dienstverbindungen können Sie eine bestimmte Dienstklasse zum Erstellen eines Private Service Connect-Endpunkts in Ihrem VPC-Netzwerk autorisieren. Mit der Richtlinie für Dienstverbindungen können Sie festlegen, dass Cloud SQL automatisch Private Service Connect-Endpunkte erstellt.
Sie können eine Richtlinie für Dienstverbindungen mit der Google Cloud Console, der gcloud CLI oder der API erstellen.
Console
Rufen Sie in der Google Cloud Console die Seite Private Service Connect auf.
Klicken Sie auf den Tab Verbindungsrichtlinien.
Klicken Sie auf Verbindungsrichtlinie erstellen.
Geben Sie einen Namen für die Verbindungsrichtlinie ein.
So geben Sie die Dienstklasse an:
- Wählen Sie für Source service class (Klasse des Quelldiensts) die Option Google-Dienste aus.
- Wählen Sie im Menü Dienstklasse die Option
google-cloud-sql
aus, da Cloud SQL der verwaltete Dienst für die Verbindungsrichtlinie ist.
Wählen Sie im Bereich Bereich der Zielendpunkte ein Netzwerk und eine Region aus, für die diese Richtlinie gilt.
Wählen Sie im Bereich Richtlinie ein oder mehrere Subnetze aus dem Menü Subnetzwerke aus. Die Subnetze werden verwendet, um Endpunkten IP-Adressen zuzuweisen.
Optional: Geben Sie für die Richtlinie ein Verbindungslimit an. Das Limit bestimmt, wie viele Endpunkte über diese Verbindungsrichtlinie erstellt werden können. Wenn Sie kein Verbindungslimit angeben, gibt es keine Begrenzung.
Klicken Sie auf Richtlinie erstellen.
gcloud
Verwenden Sie den Befehl service-connection-policies create
, um eine Richtlinie für Dienstverbindungen zu erstellen.
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, auf das diese Richtlinie angewendet wird.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. Bei Cloud SQL ist die Dienstklassegoogle-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 mithilfe dieser Richtlinie erstellen können. Wenn Sie kein Limit angeben, gibt es keine Begrenzung.DESCRIPTION
ist eine optionale Beschreibung der Richtlinie für DienstverbindungenPRODUCER_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. FürPRODUCER_INSTANCE_LOCATION
kann nur einer der folgenden Werte festgelegt werden:custom-resource-hierarchy-levels
: Die Instanz muss sich in einem der Projekte, Ordner oder Organisationen befinden, die Sie als Wert für den Parameterallowed-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 die Formprojects/PROJECT_ID
,folders/FOLDER_ID
oderorganizations/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 mithilfe dieser Richtlinie erstellen können. Wenn Sie kein Limit angeben, gibt es keine Begrenzung.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 in etwa folgende JSON-Antwort 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 erstellen und die Instanz so konfigurieren, dass Endpunkte automatisch erstellt werden. Verwenden Sie dazu die gcloud CLI oder die API.
gcloud
Verwenden Sie den Befehl gcloud sql instances create
, um eine Instanz mit aktiviertem Private Service Connect 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=VPC_NETWORK,project=SERVICE_PROJECT \ --enable-bin-log
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: Aktiviert die Hochverfügbarkeit für die Instanz. Geben Sie für diesen Parameter einen der folgenden Werte an:
REGIONAL
: Aktiviert die Hochverfügbarkeit und wird für Produktionsinstanzen 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.
MYSQL_8_0
). - VPC_NETWORK: der Pfad zum VPC-Netzwerk, in dem Private Service Connect-Endpunkte erstellt werden müssen. Beispiel:
projects/my-host-project/global/networks/default
. SERVICE_PROJECT: das Projekt, in dem der Private Service Connect-Endpunkt erstellt wird. Wenn das VPC-Netzwerk keine freigegebene VPC ist, kann dies nur das Hostprojekt für das Netzwerk sein. Bei einer freigegebenen VPC kann dies entweder das Hostprojekt oder das Dienstprojekt sein.
Alle Projekte, die Sie in den Parametern für die automatische Verbindung angeben, werden automatisch zu den zulässigen Projekten hinzugefügt. Optional können Sie Projekte, für die 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: Aktiviert die Hochverfügbarkeit für die Instanz. Geben Sie für diesen Parameter einen der folgenden Werte an:
REGIONAL
: Aktiviert die Hochverfügbarkeit und wird für Produktionsinstanzen 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.
- VPC_NETWORK: der Pfad zum VPC-Netzwerk, in dem Private Service Connect-Endpunkte erstellt werden müssen.
SERVICE_PROJECT: das Projekt, in dem der Private Service Connect-Endpunkt erstellt wird. Wenn das VPC-Netzwerk keine freigegebene VPC ist, kann dies nur das Hostprojekt für das Netzwerk sein. Bei einer freigegebenen VPC kann dies entweder das Hostprojekt oder das Dienstprojekt sein.
Alle Projekte, die Sie in den Parametern für die automatische Verbindung angeben, werden automatisch zu den zulässigen Projekten hinzugefügt. Optional können Sie Projekte, für die 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": "MYSQL_8_0", "kind": "sql#instance", "settings": { "availabilityType": "AVAILABILITY_TYPE", "backupConfiguration": { "binaryLogEnabled": true, "enabled": true, "kind": "sql#backupConfiguration", "startTime": "00:00" }, "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ "ALLOWED_PROJECTS" ], "pscAutoConnections": [ { "consumerProject":"SERVICE_PROJECT", "consumerNetwork":"projects/SERVICE_PROJECT/global/networks/VPC_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 in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "RUNNING", "user": "user@example.com", "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, also den Private Service Connect-Endpunkt für eine Instanz, 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:
- INSTANCE_NAME: Der Name der Cloud SQL-Instanz. Wenn für diese Instanz Private Service Connect aktiviert ist, können Private Service Connect-Endpunkte in VPC-Netzwerken eine Verbindung zu ihr herstellen.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält.
Notieren Sie sich in der Antwort den Wert neben dem Feld pscConfig:pscAutoConnections:ipAddress
. 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:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält.
- INSTANCE_NAME: Der Name der Cloud SQL-Instanz. Wenn für diese Instanz Private Service Connect aktiviert ist, können Private Service Connect-Endpunkte in VPC-Netzwerken eine Verbindung zu ihr herstellen.
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": "MYSQL_8_0", "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/SERVICE_PROJECT/global/networks/VPC_NETWORK", consumerNetworkStatus:"CONSUMER_NETWORK_STATUS", consumerProject:"SERVICE_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 Richtlinie für die Dienstverbindung 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
In den folgenden Abschnitten wird erläutert, wie Sie einen Private Service Connect-Endpunkt manuell erstellen.
Cloud SQL-Instanz erstellen
Sie können eine Instanz mit aktiviertem Private Service Connect erstellen, indem Sie gcloud CLI, Terraform oder die API verwenden.
gcloud
Verwenden Sie den Befehl gcloud sql instances create
, um eine Instanz mit aktiviertem Private Service Connect 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 \ --enable-bin-log
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 darin 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
: Aktiviert die Hochverfügbarkeit und wird für Produktionsinstanzen 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.
MYSQL_8_0
).
Terraform
Verwenden Sie die google_sql_database_instance
Terraform-Ressource, um eine Instanz mit aktiviertem Private Service Connect zu erstellen.
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Google Cloud-Standardprojekt 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).
-
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 alsmain.tf
bezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
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.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
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
-
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.
-
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.
- Ö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: Aktiviert die Hochverfügbarkeit für die Instanz. Geben Sie für diesen Parameter einen der folgenden Werte an:
REGIONAL
: Aktiviert die Hochverfügbarkeit und wird für Produktionsinstanzen 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 darin 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": "MYSQL_8_0", "kind": "sql#instance", "settings": { "availabilityType": "AVAILABILITY_TYPE", "backupConfiguration": { "binaryLogEnabled": true, "enabled": true, "kind": "sql#backupConfiguration", "startTime": "00:00" }, "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": "user@example.com", "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
Terraform
Verwenden Sie zum Abrufen des URI des Dienstanhangs die Terraform-Ressource google_compute_address
.
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Google Cloud-Standardprojekt 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).
-
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 alsmain.tf
bezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
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.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
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
-
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.
-
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.
- Ö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: Name 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:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ ... pscServiceAttachmentLink: "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME" }
Das Feld pscServiceAttachmentLink
zeigt den URI an, der auf den Dienstanhang der Instanz verweist.
Private Service Connect-Endpunkt erstellen
Sie können eine interne IP-Adresse für den Private Service Connect-Endpunkt reservieren und einen Endpunkt mit dieser Adresse erstellen. Zum Erstellen des Endpunkts benötigen Sie den URI des Dienstanhangs und die Projekte, die für die Instanz zulässig sind.
gcloud
Verwenden Sie den Befehl
gcloud compute addresses create
, um eine interne IP-Adresse für den Private Service Connect-Endpunkt zu reservieren:gcloud compute addresses create ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --subnet=SUBNET_NAME \ --addresses=INTERNAL_IP_ADDRESS
Ersetzen Sie die folgenden Werte:
- ADDRESS_NAME: der Name der internen IP-Adresse.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts für den Endpunkt.
- REGION_NAME: der Name der Region für den Endpunkt.
- SUBNET_NAME: der Subnetzname für die IP-Adresse.
- INTERNAL_IP_ADDRESS: Die zu reservierende IP-Adresse. Diese IP-Adresse muss sich innerhalb des primären IP-Bereichs des Subnetzes befinden. Die IP-Adresse kann eine RFC 1918-Adresse oder ein Subnetz mit Nicht-RFC-Bereichen sein.
Prüfen Sie mit dem Befehl
gcloud compute addresses list
, ob die IP-Adresse reserviert ist:gcloud compute addresses list ADDRESS_NAME \ --project=PROJECT_ID
Prüfen Sie in der Antwort, ob für die IP-Adresse der Status
RESERVED
angezeigt wird.Verwenden Sie den Befehl
gcloud compute forwarding-rules create
, um den Private Service Connect-Endpunkt zu erstellen und auf den Cloud SQL-Dienstanhang zu verweisen:gcloud compute forwarding-rules create ENDPOINT_NAME \ --address=ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --network=NETWORK_NAME \ --target-service-attachment=SERVICE_ATTACHMENT_URI \ --allow-psc-global-access
Ersetzen Sie die folgenden Werte:
- ENDPOINT_NAME: der Name des Endpunkts.
- NETWORK_NAME: der Name des VPC-Netzwerks für den Endpunkt.
- SERVICE_ATTACHMENT_URI ist der URI des Dienstanhangs.
Prüfen Sie mit dem Befehl
gcloud compute forwarding-rules describe
, ob der Dienstanhang den Endpunkt akzeptiert:gcloud compute forwarding-rules describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
Prüfen Sie in der Antwort, ob für das Feld
pscConnectionStatus
der StatusACCEPTED
angezeigt wird. Der Endpunkt kann eine Verbindung zum Dienstanhang herstellen.
Terraform
Verwenden Sie die google_sql_database_instance
Terraform-Ressource, um einen Private Service Connect-Endpunkt zu erstellen.
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Google Cloud-Standardprojekt 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).
-
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 alsmain.tf
bezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
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.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
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
-
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.
-
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.
- Ö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
Reservieren Sie eine interne IP-Adresse für den Private Service Connect-Endpunkt.
Prüfen Sie, ob die IP-Adresse reserviert ist.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das den Private Service Connect-Endpunkt enthält
- REGION_NAME: der Name der Region
- ADDRESS_NAME ist der Name der IP-Adresse.
HTTP-Methode und URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "compute#address", "id": "ADDRESS_ID", "creationTimestamp": "2024-05-09T11:20:50.114-07:00", "name": "ADDRESS_NAME", "description": "This is the name of the internal IP address.", "address": "IP_ADDRESS", "status": "RESERVED", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME", "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "addressType": "EXTERNAL" }
Prüfen Sie in der Antwort, ob für die IP-Adresse der Status
RESERVED
angezeigt wird.Erstellen Sie den Private Service Connect-Endpunkt und verweisen Sie auf den Cloud SQL-Dienstanhang.
Prüfen Sie, ob der Dienstanhang den Endpunkt akzeptiert.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das den Private Service Connect-Endpunkt enthält
- REGION_NAME: der Name der Region
- ENDPOINT_NAME: der Name des Endpunkts.
HTTP-Methode und URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "compute#forwardingRule", "id": "ENDPOINT_ID", "creationTimestamp": "2024-05-09T12:03:21.383-07:00", "name": "ENDPOINT_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "CONNECTION_ID", "pscConnectionStatus": "ACCEPTED", "allowPscGlobalAccess": true }
Prüfen Sie in der Antwort, ob für das Feld
pscConnectionStatus
der StatusACCEPTED
angezeigt wird. Der Endpunkt kann eine Verbindung zum Dienstanhang herstellen.
Verbindung mit einer Cloud SQL-Instanz herstellen
Sie können eine Verbindung zu einer Cloud SQL-Instanz mit aktiviertem Private Service Connect über eine interne IP-Adresse, einen DNS-Eintrag, den Cloud SQL Auth-Proxy, die Cloud SQL Language Connectors oder andere Google Cloud-Anwendungen herstellen.
Verwaltete DNS-Zone und DNS-Eintrag konfigurieren
Cloud SQL erstellt DNS-Einträge nicht automatisch. Stattdessen wird in der Antwort der API-Antwort für die Instanzsuche ein DNS-Name vorgeschlagen. Wir empfehlen, den DNS-Eintrag in einer privaten DNS-Zone im entsprechenden VPC-Netzwerk zu erstellen. Dies bietet eine konsistente Methode zur Verwendung des Cloud SQL Auth-Proxys, um eine Verbindung aus verschiedenen Netzwerken herzustellen.
gcloud
Verwenden Sie den Befehl
gcloud sql instances describe
, um zusammenfassende Informationen zu einer Cloud SQL-Instanz einschließlich des DNS-Namens der Instanz aufzurufen:gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Ersetzen Sie die folgenden Werte:
- INSTANCE_NAME: Der Name der Cloud SQL-Instanz.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
Prüfen Sie in der Antwort, ob der DNS-Name angezeigt wird. Dieser Name hat das folgende Muster:
INSTANCE_UID.PROJECT_DNS_LABEL.REGION_NAME.sql.goog.
. Beispiel:1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog.
Verwenden Sie zum Erstellen einer privaten DNS-Zone den Befehl
gcloud dns managed-zones create
. Diese Zone ist dem VPC-Netzwerk zugeordnet, das für die Verbindung mit der Cloud SQL-Instanz über den Private Service Connect-Endpunkt verwendet wird.gcloud dns managed-zones create ZONE_NAME \ --project=PROJECT_ID \ --description=DESCRIPTION \ --dns-name=DNS_NAME \ --networks=NETWORK_NAME \ --visibility=private
Ersetzen Sie die folgenden Werte:
- ZONE_NAME: der Name der DNS-Zone
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Zone enthält
- DESCRIPTION durch eine Beschreibung der Zone (z. B. eine DNS-Zone für die Cloud SQL-Instanz)
- DNS_NAME: der Name des DNS-Suffixs für die Zone, z. B.
REGION_NAME.sql.goog.
(wobei REGION_NAME der Name der Region für die Zone ist) - NETWORK_NAME: Der Name des VPC-Netzwerks
Nachdem Sie den Private Service Connect-Endpunkt erstellt haben, verwenden Sie den Befehl
gcloud dns record-sets create
, um einen DNS-Eintrag in der Zone zu erstellen:gcloud dns record-sets create DNS_RECORD \ --project=PROJECT_ID \ --type=RRSET_TYPE \ --rrdatas=RR_DATA \ --zone=ZONE_NAME
Ersetzen Sie die folgenden Werte:
- DNS_RECORD: der Name des DNS-Eintrags. Dieser Eintrag wird auf den DNS-Namen festgelegt, den Sie zuvor von der Cloud SQL-Instanz abgerufen haben (z. B.
1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog.
). - RRSET_TYPE durch den Ressourceneintragstyp des DNS-Eintragssatzes (z. B.
A
). - RR_DATAdie IP-Adresse, die dem Private Service Connect-Endpunkt zugewiesen ist (z. B.
198.51.100.5
) Sie können auch mehrere Werte eingeben, z. B.rrdata1 rrdata2 rrdata3
(Beispiel:10.1.2.3 10.2.3.4 10.3.4.5
)
- DNS_RECORD: der Name des DNS-Eintrags. Dieser Eintrag wird auf den DNS-Namen festgelegt, den Sie zuvor von der Cloud SQL-Instanz abgerufen haben (z. B.
REST
- Rufen Sie den DNS-Namen einer Cloud SQL-Instanz ab.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- INSTANCE_NAME: Name der Instanz
- Erstellen Sie eine private DNS-Zone: Diese Zone ist dem VPC-Netzwerk zugeordnet, das für die Verbindung mit der Cloud SQL-Instanz über den Private Service Connect-Endpunkt verwendet wird.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die DNS-Zone enthält
- ZONE_NAME: der Name der Zone.
- DESCRIPTION durch eine Beschreibung der Zone (z. B. eine DNS-Zone für die Cloud SQL-Instanz)
- DNS_NAME: der Name des DNS-Suffixs für die Zone, z. B.
REGION_NAME.sql.goog.
(wobei REGION_NAME der Name der Region für die Zone ist) - NETWORK_NAME: Der Name des VPC-Netzwerks
- Nachdem Sie den Private Service Connect-Endpunkt erstellt haben, erstellen Sie in der Zone einen DNS-Eintrag.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die DNS-Zone enthält.
- ZONE_NAME: der Name der Zone.
- DNS_RECORD: der Name des DNS-Eintrags. Dieser Eintrag wird auf den DNS-Namen festgelegt, den Sie zuvor von der Cloud SQL-Instanz abgerufen haben (z. B.
1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog.
). - RRSET_TYPE: Der Typ des Eintrags, z. B.
A
. - TTL ist die Gültigkeitsdauer (TTL) für den Datensatz in Sekunden, z. B.
300
- RR_DATAdie IP-Adresse, die dem Private Service Connect-Endpunkt zugewiesen ist (z. B.
198.51.100.5
) Sie können auch mehrere Werte eingeben, z. B.rrdata1 rrdata2 rrdata3
(Beispiel:10.1.2.3 10.2.3.4 10.3.4.5
)
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
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:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ ... "dnsName": "INSTANCE_ID.PROJECT_DNS_LABEL.REGION_NAME.sql.goog." }
Im Feld dnsName
wird der DNS-Name der Cloud SQL-Instanz angezeigt. DNS-Namen enden immer mit einem Punkt (.
).
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
HTTP-Methode und URL:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
JSON-Text anfordern:
{ "name": "ZONE_NAME", "description": "DESCRIPTION", "dnsName": "DNS_NAME", "visibility": "private", "privateVisibilityConfig": { "kind": "dns#managedZonePrivateVisibilityConfig", "networks": [ { "kind": "dns#managedZonePrivateVisibilityConfigNetwork", "networkUrl": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME" } ] } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "ZONE_NAME", "dnsName": "DNS_NAME", "description": "DESCRIPTION", "id": "ID", "nameServers": [ "ns-gcp-private.googledomains.com." ], "creationTime": "2024-05-10T17:05:34.607Z", "visibility": "private", "privateVisibilityConfig": { "networks": [ { "networkUrl": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME", "kind": "dns#managedZonePrivateVisibilityConfigNetwork" } ], "gkeClusters": [], "kind": "dns#managedZonePrivateVisibilityConfig" }, "cloudLoggingConfig": { "kind": "dns#managedZoneCloudLoggingConfig" }, "kind": "dns#managedZone" }
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
HTTP-Methode und URL:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/ZONE_NAME
JSON-Text anfordern:
{ "deletions": [] "additions": [ { "name": "DNS_RECORD", "type": "RRSET_TYPE", "ttl": TTL, "rrdatas": [ "RR_DATA" ] } ] }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "additions": [ { "name": "DNS_RECORD", "type": "RRSET_TYPE", "ttl": TTL, "rrdatas": [ "RR_DATA" ], "signatureRrdatas": [], "kind": "dns#resourceRecordSet" } ], "deletions": [], "startTime": "2024-05-10T17:29:44.375Z", "id": "CHANGE_ID", "status": "pending", "kind": "dns#change" }
Verbindung direkt über einen DNS-Eintrag herstellen
Führen Sie die folgenden Schritte aus, bevor Sie mithilfe eines DNS-Eintrags eine Verbindung zu einer Cloud SQL-Instanz herstellen:
- Private Service Connect-Endpunkt erstellen
- Prüfen Sie, ob der Dienstanhang der Instanz den Endpunkt akzeptiert. Prüfen Sie den Status, um festzustellen, ob der Status des Endpunkts
ACCEPTED
lautet. - Konfigurieren Sie eine verwaltete DNS-Zone und einen DNS-Eintrag.
Wenn Sie diese Bedingungen erfüllen, stellen Sie mit dem DNS-Eintrag eine Verbindung zur Instanz von jedem VPC-Netzwerk aus, in dem Sie den Endpunkt erstellt haben, her.
mysql --host=DNS_RECORD --user=USERNAME -p
Ersetzen Sie die folgenden Werte:
- DNS_RECORD: der DNS-Eintrag des Endpunkts
- USERNAME ist der Name des Nutzers, der eine Verbindung zur Instanz herstellt.
Direkte Verbindung über eine interne IP-Adresse
Führen Sie die folgenden Aktionen aus, bevor Sie eine Verbindung zu einer Cloud SQL-Instanz mit aktiviertem Private Service Connect herstellen:
- Private Service Connect-Endpunkt erstellen
- Prüfen Sie, ob der Dienstanhang der Instanz den Endpunkt akzeptiert. Prüfen Sie den Status, um festzustellen, ob der Status des Endpunkts
ACCEPTED
lautet.
Wenn diese Bedingungen erfüllt sind, verwenden Sie die IP-Adresse des Endpunkts, um von jedem VPC-Netzwerk, in dem Sie den Endpunkt erstellt haben, auf die Instanz zuzugreifen.
Rufen Sie die interne IP-Adresse des Private Service Connect-Endpunkts mit dem Namen der IP-Adresse des Endpunkts ab.
gcloud
Verwenden Sie den Befehl
gcloud compute addresses describe
, um die IP-Adresse abzurufen:gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
Ersetzen Sie die folgenden Werte:
- ADDRESS_NAME: der Name der IP-Adresse des Endpunkts
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das den Endpunkt enthält
- REGION_NAME: der Name der Region für den Endpunkt.
Prüfen Sie in der Antwort, ob für das Feld
address
eine IP-Adresse angezeigt wird. Dies ist die interne IP-Adresse.REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das den Endpunkt enthält
- REGION_NAME: der Name der Region für den Endpunkt.
- ADDRESS_NAME: der Name der IP-Adresse des Endpunkts
HTTP-Methode und URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "compute#address", "id": "ADDRESS_ID", "creationTimestamp": "2024-05-09T11:20:50.114-07:00", "name": "ADDRESS_NAME", "description": "This is the name of the internal IP address.", "address": "IP_ADDRESS", "status": "RESERVED", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/addresses/ADDRESS_NAME", "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "addressType": "EXTERNAL" }
Die interne IP-Adresse ist der Wert, der dem Feld
address
zugeordnet ist.Alternativ können Sie die interne IP-Adresse des Private Service Connect-Endpunkts über den Dienstanhang der Cloud SQL-Instanz abrufen.
gcloud
Verwenden Sie den Befehl
gcloud compute forwarding-rules list
, um die IP-Adresse abzurufen:gcloud compute forwarding-rules list \ --filter="TARGET:REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME" \ --project=PROJECT_ID
Ersetzen Sie die folgenden Werte:
- REGION_NAME: der Name der Region für den Endpunkt.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das den Endpunkt enthält
- SERVICE_ATTACHMENT_NAME: der Name der Dienstverknüpfung für die Cloud SQL-Instanz
Prüfen Sie in der Antwort, ob eine IP-Adresse angezeigt wird. Dies ist die interne IP-Adresse.
Hier ist eine Beispielantwort:
NAME
REGION
IP_ADDRESS
TARGET
myInstance
us-central1
10.10.10.10
us-central1/serviceAttachments/a-123456789e0a-psc-service-attachment-abc123d4e5f67gh8
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das den Endpunkt enthält
- REGION_NAME: der Name der Region für den Endpunkt.
- SERVICE_ATTACHMENT_PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Dienstanhänge enthält
- SERVICE_ATTACHMENT_NAME: der Name der Dienstverknüpfung für die Cloud SQL-Instanz
HTTP-Methode und URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules?target="https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME"
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "compute#forwardingRuleList", "id": "projects/PROJECT_ID/regions/REGION_NAME/forwardingRules", "items": [ { "kind": "compute#forwardingRule", "id": "FORWARDING_RULE_ID", "creationTimestamp": "2023-10-31T13:04:37.168-07:00", "name": "FORWARDING_RULE_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/SERVICE_ATTACHMENT_PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/FORWARDING_RULE_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "PSC_CONNECTION_ID", "pscConnectionStatus": "CLOSED", "allowPscGlobalAccess": true } ], "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules" }
Die interne IP-Adresse ist der Wert, der dem Feld
IPAddress
zugeordnet ist.-
Verwenden Sie die interne IP-Adresse, um eine Verbindung zur Cloud SQL-Instanz herzustellen.
mysql --host=IP_ADDRESS --user=USERNAME -p
Ersetzen Sie die folgenden Werte:
- IP_ADDRESS: die IP-Adresse des Endpunkts
- USERNAME ist der Name des Nutzers, der eine Verbindung zur Instanz herstellt.
Verbindung über den Cloud SQL Auth-Proxy herstellen
Der Cloud SQL-Authentifizierungsproxy ist ein Connector, der einen sicheren Zugriff auf eine Instanz mit aktiviertem Private Service Connect ermöglicht, ohne dass autorisierte Netzwerke erforderlich sind oder SSL konfiguriert werden muss.
Richten Sie einen DNS-Eintrag ein, der dem empfohlenen DNS-Namen für die Instanz entspricht, um Cloud SQL Auth-Proxy-Clientverbindungen zuzulassen. Der DNS-Eintrag ist eine Zuordnung zwischen einer DNS-Ressource und einem Domainnamen.
Wenn Sie die Verbindung über Private Service Connect herstellen, ist die Cloud SQL Auth-Proxy-Version v2.5.0 oder höher erforderlich.
Cloud SQL Auth-Proxy herunterladen und installieren
Wenn Sie eine Verbindung zu Instanzen mit aktiviertem Private Service Connect herstellen möchten, müssen Sie die Binärdatei für den Cloud SQL Auth-Proxy herunterladen und installieren. Welches Binärprogramm Sie herunterladen müssen, hängt davon ab, welches Betriebssystem Sie nutzen und ob darin ein 32-Bit- oder ein 64-Bit-Kernel verwendet wird. Auf neuerer Hardware wird meistens ein 64-Bit-Kernel verwendet.
Wenn Sie sich nicht sicher sind, ob auf Ihrem Computer ein 32-Bit- oder 64-Bit-Kernel ausgeführt wird, verwenden Sie den Befehl uname -a
für Linux oder macOS. Für Windows finden Sie entsprechende Informationen in der Windows-Dokumentation.
Cloud SQL Auth-Proxy starten
Der Cloud SQL Auth-Proxy unterstützt Verbindungen zu Instanzen, auf denen Private Service Connect aktiviert ist. Weitere Informationen finden Sie unter Cloud SQL Auth-Proxy starten.
- Zusammenfassende Informationen zu einer Cloud SQL-Instanz einschließlich des Verbindungsnamens der Instanz anzeigen.
gcloud
Verwenden Sie den Befehl
gcloud sql instances describe
, um zusammenfassende Informationen zu einer Cloud SQL-Instanz aufzurufen.gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='value(connectionName)'
Ersetzen Sie die folgenden Werte:
- INSTANCE_NAME: Der Name der Cloud SQL-Instanz.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
Dieser Verbindungsname hat das Format
PROJECT_ID:REGION_NAME:INSTANCE_NAME
.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: Name 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:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ ... "connectionName": "PROJECT_ID:REGION_NAME:INSTANCE_NAME" }
Dieser Verbindungsname hat das Format
PROJECT_ID:REGION_NAME:INSTANCE_NAME
. - Kopieren Sie den Namen der Instanzverbindung.
Starten Sie den Cloud SQL Auth-Proxy:
./cloud-sql-proxy INSTANCE_CONNECTION_NAME --psc
Ersetzen Sie INSTANCE_CONNECTION_NAME durch den Namen der Instanzverbindung, den Sie im vorherigen Schritt kopiert haben.
Verbindung über die Cloud SQL Language Connectors herstellen
Die Cloud SQL Language Connectors sind Bibliotheken, die einen sicheren Zugriff auf eine Cloud SQL-Instanz mit aktiviertem Private Service Connect ermöglichen, ohne dass autorisierte Netzwerke erforderlich sind oder SSL konfiguriert werden muss.
Um Verbindungen mit Cloud SQL Language Connectors zuzulassen, richten Sie einen DNS-Eintrag ein, der dem empfohlenen DNS-Namen für die Instanz entspricht. Der DNS-Eintrag ist eine Zuordnung zwischen einer DNS-Ressource und einem Domainnamen.
Die Cloud SQL Language Connectors unterstützen Private Service Connect-Verbindungen über den IP-Typ PSC
in den entsprechenden Bibliotheken.
- Cloud SQL Python-Connector (Version 1.3.0 oder höher)
- Cloud SQL Go-Connector (Version 1.4.0 oder höher)
- Cloud SQL Java-Connector (Version 1.13.0 oder höher)
- Cloud SQL Node.js-Connector (Version 0.5.0 oder höher)
Verbindung über App Engine Standard, Cloud Run oder Cloud Run-Funktionen herstellen
Um eine Verbindung zu Cloud SQL-Instanzen mit aktiviertem Private Service Connect herzustellen, können Sie App Engine Standard, Cloud Run oder Cloud Run-Funktionen verwenden.
In diesen unterstützten serverlosen Umgebungen werden sowohl die Cloud SQL Language Connectors als auch direkte TCP-Verbindungen über eine IP-Adresse und eine Portnummer unterstützt. Bei direkten TCP-Verbindungen ist dies die IP-Adresse, die Sie beim Erstellen des Private Service Connect-Endpunkts reservieren. Sie können die IP-Adresse als Adresse für den Datenbankhost angeben.
Wenn Sie für den Endpunkt einen DNS-Eintrag erstellen, können Sie diesen Eintrag für den Host angeben.
Von BigQuery aus verbinden
Verwenden Sie den Parameter --enable-google-private-path
, um auf Daten in Cloud SQL zuzugreifen und diese über eine interne IP-Verbindung abzufragen . Dieser Parameter ist nur in folgenden Fällen gültig:
- Sie verwenden den Parameter
--no-assign-ip
. - Sie geben mit dem Parameter
--network
den Namen des VPC-Netzwerks an, das Sie zum Erstellen einer internen Verbindung verwenden möchten.
Verbindung testen
Legen Sie die IP-Adresse des Private Service Connect-Endpunkts als Ziel-IP-Adresse fest, um die eingehende Verbindung zu einer Cloud SQL-Instanz mit aktiviertem Private Service Connect zu testen.
gcloud
Verwenden Sie den gcloud network-management connectivity-tests create
, um einen Konnektivitätstest für eine Cloud SQL-Instanz mit aktiviertem Private Service Connect zu erstellen:
gcloud network-management connectivity-tests create CONNECTIVITY_TEST_NAME \ --source-instance=SOURCE_INSTANCE \ --destination-cloud-sql-instance=DESTINATION_CLOUD_SQL_INSTANCE \ --destination-network=DESTINATION_NETWORK \ --destination-port=DESTINATION_PORT \ --protocol=tcp
Ersetzen Sie die folgenden Werte:
- CONNECTIVITY_TEST_NAME: der Name des Konnektivitätstests.
- SOURCE_INSTANCE: der URI für die Compute Engine-Instanz, in der sich die Quell-IP-Adresse befindet, z. B.
projects/myproject/zones/myzone/instances/myinstance
. - DESTINATION_CLOUD_SQL_INSTANCE: die URL für die Cloud SQL-Instanz, z. B.
projects/myproject/instances/myinstance
. - DESTINATION_NETWORK: der URI für das VPC-Netzwerk, in dem sich die Ziel-IP-Adresse befindet, z. B.
projects/myproject/global/networks/mynetwork
. - DESTINATION_PORT: die Portnummer, die für die Instanz reserviert ist. Bei Cloud SQL for MySQL-Instanzen ist die Portnummer
3306
.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält.
- CONNECTIVITY_TEST_NAME: der Name des Konnektivitätstests.
- SOURCE_IP_ADDRESS: die IP-Adresse der Compute Engine-Quellinstanz.
- SOURCE_INSTANCE: der URI für die Compute Engine-Instanz, in der sich die Quell-IP-Adresse befindet, z. B.
projects/myproject/zones/myzone/instances/myinstance
. - SOURCE_NETWORK: der URI für das VPC-Netzwerk, in dem sich die Quell-IP-Adresse befindet, z. B.
projects/myproject/global/networks/mynetwork
- DESTINATION_IP_ADDRESS: die IP-Adresse der Cloud SQL-Zielinstanz.
- DESTINATION_PORT: die Portnummer, die für die Instanz reserviert ist. Bei Cloud SQL for MySQL-Instanzen ist die Portnummer
3306
. - DESTINATION_NETWORK: der URI für das VPC-Netzwerk, in dem sich die Ziel-IP-Adresse befindet, z. B.
projects/myproject/global/networks/mynetwork
.
HTTP-Methode und URL:
POST https://networkmanagement.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/connectivityTests?testId=CONNECTIVITY_TEST_NAME
JSON-Text anfordern:
{ "source": { "ipAddress": "SOURCE_IP_ADDRESS", "instance": "SOURCE_INSTANCE", "network": "SOURCE_NETWORK" }, "destination": { "ipAddress": "DESTINATION_IP_ADDRESS", "port": DESTINATION_PORT, "network": "DESTINATION_NETWORK", "projectId": "PROJECT_ID" }, "protocol": "TCP" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/PROJECT_ID/locations/global/operations/operation-OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.networkmanagement.v1.OperationMetadata", "createTime": "2024-05-23T16:43:49.313981473Z", "target": "projects/PROJECT_ID/locations/global/connectivityTests/CONNECTIVITY_TEST_NAME", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
Beschränkungen
- Sie können bis zu 20 Private Service Connect-Endpunkte einrichten, die eine Verbindung zum Dienstanhang einer Cloud SQL-Instanz herstellen, auf der Private Service Connect aktiviert ist.
- Sie können keine Private Service Connect-Backends für Instanzen verwenden, für die Private Service Connect aktiviert ist.
- Die folgenden Flags sind ungültig oder beeinträchtigt:
--no-assign-ip:
verwenden dieses Flag, da Instanzen mit aktiviertem Private Service Connect keine anderen Verbindungstypen wie externe IP-Verbindungen verwenden können--authorized-networks:
Sie können dieses Flag nicht verwenden, um autorisierte Netzwerke hinzuzufügen.--network:
Sie können dieses Flag nicht verwenden, da es dem Zugriff auf private Dienste zugeordnet ist.--allocated-ip-range-name:
Sie können dieses Flag nicht verwenden, da zulässige IP-Bereichsnamen nicht unterstützt werden
- Sie können kein externes Replikat einer Instanz mit aktiviertem Private Service Connect erstellen.
- Sie können eine Instanz, für die Private Service Connect aktiviert ist, nicht für die Verwendung des Zugriffs auf private Dienste oder für externe IP-Verbindungen konfigurieren.
- Sie können keine externen IP-Verbindungen für eine Instanz mit aktiviertem Private Service Connect aktivieren.
- Sie können keinen Zugriff auf private Dienste aktivieren und der Instanz keine autorisierten Netzwerke hinzufügen.
- Sie können den Verbindungstyp der Instanz nicht ändern.
- Sie können den Befehl
gcloud sql connect
, Cloud Shell, Cloud Build, Database Migration Service oder Datastream nicht verwenden, um eine Verbindung zu Cloud SQL-Instanzen mit aktiviertem Private Service Connect herzustellen. - Beim Testen der Verbindung zu einer Cloud SQL-Instanz mit aktiviertem Private Service Connect können Sie die folgenden Elemente nicht festlegen:
- Die interne IP-Adresse oder der DNS-Name der Instanz direkt als Ziel
- Die Instanz als Quelle
- Die IP-Adresse des Private Service Connect-Endpunkts als Quelle
- IP-basierte Zulassungslisten mithilfe autorisierter Netzwerke werden nicht unterstützt.
- Wenn Ihr Netzwerkprojekt Instanzen enthält, die die alte Cloud SQL-Netzwerkarchitektur verwenden, können Sie keine Private Service Connect-Instanz erstellen. Cloud SQL bietet Tools, mit denen Sie Ihre Instanzen von der alten Netzwerkarchitektur auf die neue Netzwerkarchitektur aktualisieren können. Für weitere Informationen oder zum Prüfen der Netzwerkarchitektur der Cloud SQL-Instanzen in Ihrem Projekt und um alle erforderlichen Upgrades auszuführen, siehe Upgrade einer Instanz auf die neue Netzwerkarchitektur ausführen
Fehlerbehebung
Dieser Abschnitt enthält Informationen zu Problemen im Zusammenhang mit Cloud SQL-Instanzen mit aktiviertem Private Service Connect sowie Schritte zur Fehlerbehebung.
Problem Fehlerbehebung Der Dienstanhang der Instanz akzeptiert den Private Service Connect-Endpunkt nicht. - Prüfen Sie den Status des Endpunkts.
gcloud
Verwenden Sie zum Prüfen des Status den Befehl
gcloud compute forwarding-rules describe
.gcloud compute forwarding-rules describe ENDPOINT_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ | grep pscConnectionStatus
Ersetzen Sie die folgenden Werte:
- ENDPOINT_NAME: der Name des Endpunkts.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das den Endpunkt enthält
- REGION_NAME: der Name der Region für den Endpunkt.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das den Private Service Connect-Endpunkt enthält
- REGION_NAME: der Name der Region
- ENDPOINT_NAME: der Name des Endpunkts.
HTTP-Methode und URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "compute#forwardingRule", "id": "ENDPOINT_ID", "creationTimestamp": "2024-05-09T12:03:21.383-07:00", "name": "ENDPOINT_NAME", "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME", "IPAddress": "IP_ADDRESS", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_NAME", "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/forwardingRules/ENDPOINT_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default", "serviceDirectoryRegistrations": [ { "namespace": "goog-psc-default" } ], "networkTier": "PREMIUM", "labelFingerprint": "LABEL_FINGERPRINT_ID", "fingerprint": "FINGERPRINT_ID", "pscConnectionId": "CONNECTION_ID", "pscConnectionStatus": "ACCEPTED", "allowPscGlobalAccess": true }
- Prüfen Sie, ob der Status des Endpunkts
ACCEPTED
lautet. Wenn der StatusPENDING
lautet, lässt die Instanz das Google Cloud-Projekt, das den Endpunkt enthält, nicht zu. Achten Sie darauf, dass das Netzwerkprojekt, in dem der Endpunkt erstellt wird, zugelassen wird. Weitere Informationen finden Sie unter Instanz mit aktiviertem Private Service Connect bearbeiten.
Nächste Schritte
- Weitere Informationen zu privaten IP-Adressen
- Weitere Informationen zu Private Service Connect.
- Lesereplikat einer Instanz mit aktiviertem Private Service Connect erstellen
- Weitere Informationen zum Klonen einer Instanz mit aktiviertem Private Service Connect.
- Weitere Informationen zum Aufrufen zusammengefasster Informationen zu Instanzen, auf denen Private Service Connect aktiviert ist.
- Weitere Informationen zum Festlegen und Entfernen von Hochverfügbarkeit für eine Instanz mit aktiviertem Private Service Connect.
- Weitere Informationen zum Bearbeiten und Löschen einer Instanz mit aktiviertem Private Service Connect.