本页介绍如何使用 Private Service Connect 连接到 AlloyDB for PostgreSQL 实例。
您可以使用 Private Service Connect 从属于不同群组、团队、项目或组织的多个 Virtual Private Cloud (VPC) 网络连接到 AlloyDB 主实例或其任何只读副本,也可以连接到 AlloyDB 次实例。
所需的角色
您必须向 VPC 网络中的用户授予以下所有角色,才能连接到 AlloyDB 实例。
角色 | 说明 |
---|---|
compute.networkAdmin |
授予对 VPC 网络的完整控制权限来启动与 AlloyDB 实例的连接。如果您使用 Private Service Connect 从多个 VPC 网络连接到 AlloyDB 实例,则每个网络都有自己的管理员。 |
dns.admin |
授予对 Cloud DNS 资源的完全控制权,包括 DNS 区域和记录。 |
alloydb.admin |
可以完全控制 AlloyDB 实例,并控制实例的整个生命周期。 |
alloydb.databaseUser (可选) |
提供对 AlloyDB 实例的访问权限。如果您通过 AlloyDB Auth 代理客户端进行连接,则必须具有 AlloyDB Client 角色。如果您直接连接,则不需要任何 Identity and Access Management (IAM) 角色和权限。 |
Custom AlloyDB role (可选) |
如果您使用的是自定义角色,除了授予 compute.networkAdmin 和 dns.admin 角色之外,还要授予以下权限:
|
创建 Private Service Connect 端点
Private Service Connect 端点是使用方 VPC 网络中的内部 IP 地址,该网络中的客户端可以直接访问这些地址。客户端可以使用这些端点连接到 AlloyDB 实例。
如需让 AlloyDB 自动创建 Private Service Connect 端点,请执行以下操作:
- 在 VPC 网络中,重复使用现有的服务连接政策或创建服务连接政策。借助此政策,您可以自动预配 Private Service Connect 端点。
- 创建 AlloyDB 集群和实例,并为该实例启用 Private Service Connect,然后将该实例配置为自动创建 Private Service Connect 端点。
- 检索实例的端点。这可让您使用端点连接到实例。
- (可选)更新现有的 AlloyDB 集群和实例,并启用 Private Service Connect 以自动生成端点。
您还可以手动创建 Private Service Connect 端点。如需了解详情,请参阅手动创建端点。
自动创建端点
接下来的几个部分将介绍如何配置实例,以便让 AlloyDB 自动创建 Private Service Connect 端点。
创建服务连接政策
您可以重复使用现有的服务连接政策,也可以使用 Google Cloud 控制台或 Google Cloud CLI 创建服务连接政策。
借助服务连接政策,您可以授权指定的服务类在使用方 VPC 网络中创建 Private Service Connect 端点。您可以使用服务连接政策让 AlloyDB 自动创建 Private Service Connect 端点。
控制台
在 Google Cloud 控制台中,前往 Private Service Connect 页面。
点击连接政策标签页。
点击 Create connection policy(创建连接政策)。
输入连接政策的名称。
通过执行以下操作指定服务类:
- 在 Source service class(来源服务类)字段中,选择 Google 服务。
- 从服务类菜单中选择
google-cloud-alloydb
,因为 AlloyDB 是连接政策的托管式服务。
在目标端点范围部分中,选择此政策适用的网络和区域。
在政策部分中,从子网菜单中选择一个或多个子网。子网用于为端点分配 IP 地址。
可选:为政策指定连接限制。此限制决定了 AlloyDB 可以为此连接政策创建的端点数量。如果您不指定连接限制,则不受限制。
点击创建政策。
gcloud
如需创建服务连接政策,请使用 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=LIST_OF_NODES
替换以下内容:
POLICY_NAME
:您的服务连接政策的名称。NETWORK
:应用此政策的网络。PROJECT_ID
:VPC 网络项目的 ID 或编号。对于共享 VPC 网络,您必须在宿主项目中部署服务连接政策,因为服务项目不支持这些政策。REGION
:此政策适用的区域。要自动执行服务连接的每个区域中必须存在相同的政策。SERVICE_CLASS
:提供方提供的服务类资源标识符。 对于 AlloyDB,服务类为google-cloud-alloydb
。SUBNETS
:用于为 Private Service Connect 端点分配 IP 地址的一个或多个常规使用方子网。在创建和删除托管式服务实例时,这些 IP 地址会自动分配并返回子网池。子网必须与服务连接政策位于同一区域。如果多个连接政策位于同一区域,则您可以在这些政策中重复使用同一子网。您可以在逗号分隔列表中输入多个子网。LIMIT
:可以使用此政策创建的端点数上限。如果您不指定限制,则不受限制。DESCRIPTION
:服务连接政策的可选说明。PRODUCER_INSTANCE_LOCATION
:指定政策是否自动连接到 AlloyDB 实例。您可以将此值设置为以下任一值:none
(默认):AlloyDB 实例与服务连接政策位于同一项目中(如果是共享 VPC,则位于关联的项目中)。custom-resource-hierarchy-levels
:要求您通过allowed-google-producers-resource-hierarchy-level
参数设置要自动建立连接的项目的 Resource Manager 位置路径。
LIST_OF_NODES
:如果您的生产者实例位置设置为custom-resource-hierarchy-levels
,请设置此参数。此参数是一个项目、文件夹和组织的列表,其中包含您要自动建立连接的实例。此列表采用projects/PROJECT_ID
、folders/FOLDER_ID
或organizations/ORGANIZATION_ID
格式。
例如,以下命令会为
google-cloud-alloydb
服务类创建服务连接政策,该政策从 managed-services
子网分配 IP 地址。使用此政策,您最多可以创建 10 个 Private Service Connect 端点。您必须在与代管式服务实例位于同一组织的项目中创建端点。 AlloyDB 实例位于 myproject
项目中。
gcloud network-connectivity service-connection-policies create alloydb-policy \ --network=default \ --project=my-project \ --region=us-central1 \ --service-class=google-cloud-alloydb \ --subnets=managed-service-subnet \ --psc-connection-limit=10 \ --producer-instance-location=custom-resource-hierarchy-levels \ --allowed-google-producers-resource-hierarchy-level=projects/myproject
创建 AlloyDB 实例
您可以创建实例并为该实例启用 Private Service Connect,然后使用控制台、gcloud CLI 或 Terraform 将该实例配置为自动创建端点。
控制台
在 Google Cloud 控制台中,前往集群页面。
点击创建集群。
在集群 ID 中,输入
my-cluster
。输入密码。请记下此密码,因为您将在本快速入门中使用它。
保留默认数据库版本。
选择
us-central1 (Iowa)
区域。保留默认实例 ID
my-cluster-primary
。在可用区级可用性部分,保留单个可用区作为所选选项。虽然我们不建议在生产环境中使用单个可用区实例,但您可以在本快速入门中使用单个可用区以尽可能降低成本。如需了解详情,请参阅使用基本实例降低成本。
选择
2 vCPU, 16 GB
机器类型。保留专用 IP 连接。
- 选择 Private Service Connect (PSC)。
- 点击添加端点。
- 选择要在其中创建端点的项目。
- 选择网络。
- 点击检查政策,查看服务连接政策信息。
保留网络安全下的默认设置。
请勿在显示高级选项中进行更改。
点击创建集群。AlloyDB 可能需要几分钟的时间来创建集群并将其显示在主集群概览页面上。
gcloud
如需创建集群,请使用 gcloud alloydb clusters
create
命令。
gcloud alloydb clusters create CLUSTER_ID \
--password=PASSWORD \
--region=REGION_ID \
--project=PROJECT_ID \
--enable-private-service-connect
替换以下内容:
CLUSTER_ID
:您所创建的集群的 ID。它必须以小写字母开头,可以包含小写字母、数字和连字符。PASSWORD
:要用于默认postgres
用户的密码。REGION_ID
:您要将集群放置在其中的区域。PROJECT_ID
:您要将集群放置在其中的项目的 ID。
此命令会启动一个长时间运行的操作,并返回操作 ID。
如需创建 AlloyDB 实例(主实例或读取池)以便使用 Private Service Connect ,请使用 gcloud alloydb instances create 命令。请务必添加 --allowed-psc-projects
参数,以指定哪些使用方项目可以创建端点来连接到此实例。
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--cpu-count=CPU_COUNT \
--availability-type=AVAILABILITY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--allowed-psc-projects=ALLOWED_PROJECT_LIST \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
--psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT
替换以下内容:
INSTANCE_ID
:您所创建的实例的 ID。必须以小写字母开头,可以包含小写字母、数字和连字符。CPU_COUNT
:您要为实例分配的 vCPU 数量。有效值包括:2
:2 个 vCPU,16 GB RAM4
:4 个 vCPU,32 GB RAM8
:8 个 vCPU,64 GB RAM16
:16 个 vCPU,128 GB RAM32
:32 个 vCPU,256 GB RAM64
:64 个 vCPU,512 GB RAM96
:96 个 vCPU,768 GB RAM128
:128 个 vCPU,864 GB RAM
AVAILABILITY
:表示相应实例是否应具有高可用性 (HA),即在多个可用区中具有节点。有效值包括:REGIONAL
:创建具有单独的活跃节点和备用节点的高可用性实例,并在这两个节点之间实现自动故障切换。这是默认值,适用于生产环境。ZONAL
:创建仅包含一个节点且不支持自动故障切换的基本实例。
REGION_ID
:您要将实例放置在其中的区域。CLUSTER_ID
:您之前创建的集群的 ID。ALLOWED_PROJECT_LIST
:您要允许访问实例的项目 ID 或项目编号的英文逗号分隔列表,例如my-project-1
,12345
,my-project-n
。NETWORK_ATTACHMENT_URI
(可选):您为出站连接创建的网络连接 URI 的完整资源名称。例如:projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID
。CONSUMER_NETWORK
:需要在其中创建 Private Service Connect 端点的 VPC 网络的路径。例如:projects/my-host-project/global/networks/default
。此选项适用于自动创建端点的情况。确保服务连接政策已创建。您可以在创建实例之前或之后创建政策。CONSUMER_PROJECT
:在其中创建 Private Service Connect 端点的项目。如果您使用的是共享 VPC 网络,则可以是宿主项目或服务项目。 您在自动连接参数中指定的任何项目都会自动添加到允许的项目中。(可选)对于您要在其中手动创建 Private Service Connect 端点的任何项目,您可以将这些项目添加到允许的项目列表中。
为启用了 Private Service Connect 的主集群创建的次要集群会自动继承 Private Service Connect 配置。如需了解详情,请参阅创建辅助集群。
Terraform
如需在数据库集群中创建实例,请使用 Terraform 资源。
resource "google_alloydb_instance" "default" {
cluster = google_alloydb_cluster.default.name
instance_id = "alloydb-instance"
instance_type = "PRIMARY"
machine_config {
cpu_count = 2
}
psc_instance_config {
allowed_consumer_projects = ["123456789"]
psc_interface_configs {
network_attachment_resource = google_compute_network_attachment.default.id
}
}
}
resource "google_compute_network" "default" {
name = "alloydb-network"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "default" {
name = "alloydb-subnetwork"
region = "us-central1"
network = google_compute_network.default.id
ip_cidr_range = "10.0.0.0/16"
}
resource "google_compute_network_attachment" "default" {
name = "alloydb-network-attachment"
region = "us-central1"
connection_preference = "ACCEPT_AUTOMATIC"
subnetworks = [
google_compute_subnetwork.default.self_link
]
}
data "google_project" "project" {}
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
检索端点
通过检索内部 IP 地址(即实例的 Private Service Connect 端点),您可以使用此端点连接到实例。
如需查看实例的相关信息(包括作为实例的 Private Service Connect 端点的 IP 地址),请使用 gcloud alloydb instances describe
命令:
gcloud alloydb instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'
进行以下替换:
- INSTANCE_NAME:AlloyDB 实例的名称。如果此实例启用了 Private Service Connect,则 VPC 网络中的 Private Service Connect 端点可以连接到此实例。
- PROJECT_ID:包含实例的 Google Cloud 项目的 ID 或项目编号。
在响应中,请记下 pscConfig:pscAutoConnections:ipAddress
字段旁边显示的值。此值是内部 IP 地址,也是实例的 Private Service Connect 端点。
更新实例以自动创建端点
如需更新实例以自动创建端点,请将 --psc-auto-connections
参数传递给 gcloud alloydb instances update 命令。
配置出站连接
如果您想为启用了 Private Service Connect 的 AlloyDB 实例启用出站连接,则必须为该实例设置网络连接 URI。如需了解详情,请参阅配置出站连接。
手动创建端点
接下来的几个部分将介绍如何手动创建 Private Service Connect 端点。
创建 AlloyDB 实例
您可以创建实例并为该实例启用 Private Service Connect,然后使用控制台、gcloud CLI 或 Terraform 将该实例配置为自动创建端点。
控制台
在 Google Cloud 控制台中,前往集群页面。
点击创建集群。
在集群 ID 中,输入
my-cluster
。输入密码。请记下此密码,因为您将在本快速入门中使用它。
保留默认数据库版本。
选择
us-central1 (Iowa)
区域。保留默认实例 ID
my-cluster-primary
。在可用区级可用性部分,保留单个可用区作为所选选项。虽然我们不建议在生产环境中使用单个可用区实例,但您可以在本快速入门中使用单个可用区以尽可能降低成本。如需了解详情,请参阅使用基本实例降低成本。
选择
2 vCPU, 16 GB
机器类型。保留专用 IP 连接。
- 选择 Private Service Connect(PSC)。
- 点击添加端点。
- 选择要在其中创建端点的项目。
- 选择网络。
- 点击检查政策,查看服务连接政策信息。
保留网络安全下的默认设置。
请勿在显示高级选项中进行更改。
点击创建集群。AlloyDB 可能需要几分钟的时间来创建集群并将其显示在主集群概览页面上。
gcloud
如需创建集群,请使用 gcloud alloydb clusters
create
命令。
gcloud alloydb clusters create CLUSTER_ID \
--password=PASSWORD \
--region=REGION_ID \
--project=PROJECT_ID \
--enable-private-service-connect
替换以下内容:
CLUSTER_ID
:您所创建的集群的 ID。它必须以小写字母开头,可以包含小写字母、数字和连字符。PASSWORD
:要用于默认postgres
用户的密码。REGION_ID
:您要将集群放置在其中的区域。PROJECT_ID
:您要将集群放置在其中的项目的 ID。
此命令会启动一个长时间运行的操作,并返回操作 ID。
如需创建主实例,请使用 gcloud alloydb instances create 命令。
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--cpu-count=CPU_COUNT \
--availability-type=AVAILABILITY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--allowed-psc-projects=ALLOWED_PROJECT_LIST \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
替换以下内容:
INSTANCE_ID
:您所创建的实例的 ID。必须以小写字母开头,可以包含小写字母、数字和连字符。CPU_COUNT
:您要为实例分配的 vCPU 数量。有效值包括:2
:2 个 vCPU,16 GB RAM4
:4 个 vCPU,32 GB RAM8
:8 个 vCPU,64 GB RAM16
:16 个 vCPU,128 GB RAM32
:32 个 vCPU,256 GB RAM64
:64 个 vCPU,512 GB RAM96
:96 个 vCPU,768 GB RAM128
:128 个 vCPU,864 GB RAM
AVAILABILITY
:表示相应实例是否应具有高可用性 (HA),即在多个可用区中具有节点。有效值包括:REGIONAL
:创建具有单独的活跃节点和备用节点的高可用性实例,并在这两个节点之间实现自动故障切换。这是默认值,适用于生产环境。ZONAL
:创建仅包含一个节点且不支持自动故障切换的基本实例。
REGION_ID
:您要将实例放置在其中的区域。CLUSTER_ID
:您之前创建的集群的 ID。ALLOWED_PROJECT_LIST
:您要允许访问实例的项目 ID 或项目编号的英文逗号分隔列表,例如my-project-1
,12345
,my-project-n
。NETWORK_ATTACHMENT_URI
(可选):您为出站连接创建的网络连接 URI 的完整资源名称。例如:projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID
。CONSUMER_NETWORK
:需要在其中创建 Private Service Connect 端点的 VPC 网络的路径。例如:projects/my-host-project/global/networks/default
。此选项适用于自动创建端点的情况。确保服务连接政策已创建。您可以在创建实例之前或之后创建政策。CONSUMER_PROJECT
:在其中创建 Private Service Connect 端点的项目。如果您使用的是共享 VPC 网络,则可以是宿主项目或服务项目。 您在自动连接参数中指定的任何项目都会自动添加到允许的项目中。(可选)对于您要在其中手动创建 Private Service Connect 端点的任何项目,您可以将这些项目添加到允许的项目列表中。
为启用了 Private Service Connect 的主集群创建的次要集群会自动继承 Private Service Connect 配置。如需了解详情,请参阅创建辅助集群。
Terraform
如需在数据库集群中创建实例,请使用 Terraform 资源。
resource "google_alloydb_instance" "default" {
cluster = google_alloydb_cluster.default.name
instance_id = "alloydb-instance"
instance_type = "PRIMARY"
machine_config {
cpu_count = 2
}
psc_instance_config {
allowed_consumer_projects = ["123456789"]
psc_interface_configs {
network_attachment_resource = google_compute_network_attachment.default.id
}
}
}
resource "google_compute_network" "default" {
name = "alloydb-network"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "default" {
name = "alloydb-subnetwork"
region = "us-central1"
network = google_compute_network.default.id
ip_cidr_range = "10.0.0.0/16"
}
resource "google_compute_network_attachment" "default" {
name = "alloydb-network-attachment"
region = "us-central1"
connection_preference = "ACCEPT_AUTOMATIC"
subnetworks = [
google_compute_subnetwork.default.self_link
]
}
data "google_project" "project" {}
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
获取服务连接
创建启用了 Private Service Connect 的 AlloyDB 实例后,获取服务连接网址并使用它来创建 Private Service Connect 端点。
使用 gcloud alloydb instances describe
命令可查看有关实例的详细信息。
gcloud alloydb instances describe INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID
替换以下内容:
INSTANCE_ID
:实例的 ID。CLUSTER_ID
:集群的 ID。REGION_ID
:部署 AlloyDB 集群的区域。
该命令的示例响应如下所示:
"pscInstanceConfig": {
"serviceAttachmentLink:": "https://www.googleapis.com/compute/v1/projects/my-project/regions/my-region/serviceAttachments/my-service-attachment-id"
"allowedConsumerProjects": {
"45678",
"12345",
"67890",
},
"pscDnsName": "11111111-1111-1111-1111-111111111111.22222222-2222-2222-2222-222222222222.alloydb-psc.goog."
}
serviceAttachmentLink
参数包含服务连接网址的值。
创建 Private Service Connect 端点
如需创建 Private Service Connect 端点,请传递服务连接网址以及唯一的端点名称。如需详细了解如何创建 Private Service Connect 端点,请参阅创建端点。
您还可以使用 gcloud compute addresses create
命令为 Private Service Connect 端点预留内部 IP 地址,然后在创建端点时使用预留的 IP 地址。
配置出站连接
如需启用出站连接,请在创建或更新 AlloyDB 实例时设置网络连接 URI。此 URI 可在迁移等出站操作期间实现项目与 AlloyDB 实例之间的安全连接。
创建网络连接
您可以创建一个可自动 (ACCEPT_AUTOMATIC
) 或手动 (ACCEPT_MANUAL
) 接受连接的网络连接。如需详细了解如何创建网络连接,请参阅创建和管理网络连接。
如果您选择创建自动接受连接的网络连接,则无需明确设置接受的项目列表。如需手动接受连接,您必须将 AlloyDB 实例所在项目的服务自有项目编号添加到接受的项目列表中。
如需查找服务自有项目的编号,请运行以下命令:
gcloud alpha alloydb clusters describe CLUSTER_ID --region=REGION_ID
以下是示例响应:
pscConfig:
pscEnabled: true
serviceOwnedProjectNumber: 123456789012
确定服务自有项目编号后,将该项目添加到接受的项目列表中,然后创建网络连接。
确保网络连接的区域与 AlloyDB 实例的区域相同。此外,用于创建网络连接的子网必须属于 RFC 1918 IP 范围,即 10.0.0.0/8
、172.16.0.0/12
和 192.168.0.0/16
。
更新实例以实现出站连接
如需为启用了 Private Service Connect 的现有 AlloyDB 实例启用出站连接,请将 --psc-network-attachment-uri
参数传递给 gcloud alloydb instances update
命令。
2025 年 3 月 1 日之前创建的 AlloyDB 实例无法更新以启用出站连接。作为替代方法,我们建议您使用以下任一选项:
- 创建启用了出站连接的主实例的区域级跨区域复制 (CRR) 副本。然后,执行切换以将副本实例指定为新的主实例。
- 备份现有 AlloyDB 集群和主实例。然后,创建新的 AlloyDB 集群和主实例,并启用出站连接。最后,将之前创建的备份恢复到新集群中。
停用出站连接
如需为现有 AlloyDB 实例停用出站连接,请将 --clear-psc-network-attachment-uri
参数传递给 gcloud alloydb instances update
命令。
连接到 AlloyDB 实例
您可以使用以下任一选项连接到启用了 Private Service Connect 的 AlloyDB 实例:
对于使用 DNS 记录的方法,您必须在相应 VPC 网络的专用 DNS 区域中创建该记录。创建 DNS 记录后,您可以使用该记录连接到启用了 Private Service Connect 的实例。
配置 DNS 代管式区域和 DNS 记录
如需在您的网络中配置 DNS 托管式区域和 DNS 记录,请按以下步骤操作:
如需查看有关 AlloyDB 实例的摘要信息(包括实例的 DNS 名称),请使用
gcloud alloydb instances describe
命令:gcloud alloydb instances describe INSTANCE_ID \ --cluster=CLUSTER_ID --region=REGION_ID
替换以下内容:
INSTANCE_ID
:实例的 ID。CLUSTER_ID
:集群的 ID。
在响应中,验证是否显示 DNS 名称。DNS 名称采用
INSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog.
格式。如需创建专用 DNS 区域,请使用
gcloud dns managed-zones create
命令。此区域与用于通过 Private Service Connect 端点连接到 AlloyDB 实例的 VPC 网络相关联。gcloud dns managed-zones create ZONE_NAME \ --project=PROJECT_ID \ --description=DESCRIPTION \ --dns-name=DNS_NAME \ --networks=NETWORK_NAME \ --visibility=private
替换以下内容:
ZONE_NAME
:DNS 区域的名称。PROJECT_ID
:包含区域的 Google Cloud 项目的 ID 或编号。DESCRIPTION
:区域的说明(例如 AlloyDB 实例的 DNS 区域)。DNS_NAME
:区域的 DNS 名称,例如INSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog.
。NETWORK_NAME
:VPC 网络的名称。 对于共享 VPC 网络,请设置为 VPC 网络的完全限定路径,例如projects/cymbal-project/global/networks/shared-vpc-network
。
创建 Private Service Connect 端点后,如需在区域中创建 DNS 记录,请使用 gcloud dns record-sets create 命令:
gcloud dns record-sets create DNS_NAME \ --project=PROJECT_ID \ --type=RRSET_TYPE \ --rrdatas=RR_DATA \ --zone=ZONE_NAME
替换以下内容:
DNS_NAME
:您先前在此过程中检索的 DNS 名称。RRSET_TYPE
:DNS 记录集的资源记录类型(例如 A)。RR_DATA
:为 Private Service Connect 端点分配的 IP 地址(例如 198.51.100.5)。您也可以输入多个值,例如 rrdata1 rrdata2 rrdata3(例如 10.1.2.3 10.2.3.4 10.3.4.5)。
使用 DNS 记录直接连接
创建 Private Service Connect 端点和 DNS 记录后,您可以使用 DNS 记录直接连接。
如需检索 Private Service Connect 端点的 DNS 记录,请使用
gcloud compute addresses describe
命令:gcloud compute addresses describe DNS_RECORD \ --project=PROJECT_ID \ --region=REGION_NAME
替换以下内容:
DNS_RECORD
:端点的 DNS 记录。PROJECT_ID
:包含端点的 Google Cloud 项目的 ID 或编号。REGION_NAME
:端点的区域名称。
如需连接到 AlloyDB 实例,请使用 DNS 记录。
psql -U USERNAME -h DNS_RECORD
替换以下内容:
USERNAME
:连接到实例的用户的名称。DNS_RECORD
:端点的 DNS 记录。
使用 AlloyDB Auth Proxy 连接
AlloyDB Auth Proxy 是一种连接器,可让您与 AlloyDB 数据库建立经过授权的加密连接。AlloyDB Auth Proxy 的工作原理是在本地环境中运行本地客户端。您的应用通过数据库使用的标准数据库协议与 AlloyDB Auth Proxy 进行通信。
在启动 Auth Proxy 客户端时设置 --psc
标志后,AlloyDB Auth Proxy 会使用您创建的 DNS 记录来连接到启用了 Private Service Connect 的实例。
请务必通过传递使用 gcloud alloydb instances list
命令检索到的实例 URI 来启动 Auth Proxy 客户端,并设置 --psc
标志。
如需详细了解如何使用 Auth Proxy 连接到实例,请参阅使用 Auth Proxy 连接。
使用 AlloyDB 语言连接器进行连接
AlloyDB 语言连接器是一些库,可在连接到 AlloyDB 实例时提供具有 TLS 1.3 和 Identity and Access Management (IAM) 授权的自动 mTLS。
语言连接器确定实例支持 Private Service Connect 后,会使用您创建的 DNS 记录连接到该实例。
Java
如果您使用 Private Service Connect 连接到 AlloyDB 实例,请添加以下内容:
config.addDataSourceProperty("alloydbIpType", "PSC");
如需详细了解如何在 Java 语言连接器中使用 Private Service Connect 端点,请参阅 GitHub 代码库。
Python (pg8000)
如果您使用 Private Service Connect 连接到 AlloyDB 实例,请添加以下内容:
def getconn() -> pg8000.dbapi.Connection:
conn: pg8000.dbapi.Connection = connector.connect(
inst_uri,
"pg8000",
user=user,
password=password,
db=db,
# use ip_type to specify PSC
ip_type=IPTypes.PSC,
)
return conn
如需详细了解如何在 Python 语言连接器中使用 Private Service Connect 端点,请参阅 GitHub 代码库。
Python (asyncpg)
如果您使用 Private Service Connect 连接到 AlloyDB 实例,请添加以下内容:
async def getconn() -> asyncpg.Connection:
conn: asyncpg.Connection = await connector.connect(
inst_uri,
"asyncpg",
user=user,
password=password,
db=db,
# use ip_type to specify PSC
ip_type=IPTypes.PSC,
)
return conn
如需详细了解如何在 Python 语言连接器中使用 Private Service Connect 端点,请参阅 GitHub 代码库。
Go (pgx)
如果您使用 Private Service Connect 连接到 AlloyDB 实例,请添加以下内容:
d.Dial(ctx, instURI, alloydbconn.WithPSC())
如需详细了解如何在 Go 语言连接器中使用 Private Service Connect 端点,请参阅 GitHub 代码库。
Go (database/sql)
如果您使用 Private Service Connect 连接到 AlloyDB 实例,请添加以下内容:
cleanup, err := pgxv5.RegisterDriver(
"alloydb",
alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC())
)
如需详细了解如何在 Go 语言连接器中使用 Private Service Connect 端点,请参阅 GitHub 代码库。
通过内部 IP 地址直接连接
创建 Private Service Connect 端点后,您可以使用配置的 IP 地址直接连接到 AlloyDB 实例。
如需检索 Private Service Connect 端点的 IP 地址,请使用
gcloud compute addresses describe
命令:gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
替换以下内容:
ADDRESS_NAME
:端点的 IP 地址的名称。PROJECT_ID
:包含端点的 Google Cloud 项目的 ID 或编号。REGION_NAME
:端点的区域名称。
如需连接到 AlloyDB 实例,请使用内部 IP 地址。
psql -U USERNAME -h IP_ADDRESS"
替换以下内容:
USERNAME
:连接到实例的用户的名称。IP_ADDRESS
:端点的 IP 地址。
限制
- 您最多可以设置 20 个 Private Service Connect 端点,这些端点连接到启用了 Private Service Connect 的 AlloyDB 实例的服务连接。
- 创建启用 Private Service Connect 的集群时,您无法使用
--network
标志,因为它与专用服务访问通道相关联。 - 您无法在现有实例上激活或停用 Private Service Connect。
- 您无法将启用了 Private Service Connect 的实例配置为使用专用服务访问通道。