AlloyDB 语言连接器是一些库,可简化与集群建立安全连接的过程,具体方法如下:
- 自动 mTLS 连接
- 基于 Identity and Access Management (IAM) 的授权支持
- 自动 IAM 身份验证
如果尚无网络路径,AlloyDB 语言连接器无法提供 AlloyDB 集群的网络路径。
如需详细了解 AlloyDB 语言连接器,请参阅 AlloyDB 语言连接器概览。
本页介绍了以下 AlloyDB 语言连接器:
- AlloyDB Java 连接器
- AlloyDB Go Connector
- AlloyDB Python 连接器
准备工作
启用 AlloyDB Admin API。
创建 AlloyDB 实例并配置默认用户。
如需详细了解如何创建实例,请参阅创建主实例。
如需详细了解用户角色,请参阅 AlloyDB 预定义 IAM 角色。
配置连接到 AlloyDB 实例所需的以下角色和权限:
roles/alloydb.client
roles/serviceusage.serviceUsageConsumer
如需详细了解所需的角色和权限,请参阅管理 IAM 身份验证。
安装 AlloyDB 语言连接器
Java
AlloyDB Java 连接器是在连接到 AlloyDB 实例时提供基于 IAM 的授权和加密的库。
安装
对于 Maven,您可以通过向项目的 pom.xml
添加以下内容来安装 AlloyDB Java 连接器:
<!-- Add the connector with the latest version -->
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>alloydb-jdbc-connector</artifactId>
<version>0.4.0</version>
</dependency>
<!-- Add the driver with the latest version -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>46.6.0<</version>
</dependency>
<!-- Add HikariCP with the latest version -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.1.0</version>
</dependency>
对于 Gradle,您可以在项目的 gradle.build
中添加以下内容,以安装 AlloyDB Java 连接器:
// Add connector with the latest version
implementation group: 'com.google.cloud.alloydb', name: 'alloydb-jdbc-connector', version: '0.4.0'
// Add driver with the latest version
implementation group: 'org.postgresql', name: 'postgresql', version: '46.6.0'
// Add HikariCP with the latest version
implementation group: 'com.zaxxer', name: 'HikariCP', version: '5.1.0'
Python (pg8000)
AlloyDB Python 连接器是一个库,可与数据库驱动程序结合使用,以允许具有足够权限的用户连接到 AlloyDB 数据库,而无需手动将 IP 列入许可名单。
安装
您可以使用 pip install
安装 AlloyDB Python 连接器库。
如果您使用的是 pg8000,请运行以下命令:
pip install "google-cloud-alloydb-connector[pg8000]" sqlalchemy
Python (asyncpg)
AlloyDB Python 连接器是一个库,可与数据库驱动程序结合使用,以允许具有足够权限的用户连接到 AlloyDB 数据库,而无需手动将 IP 列入许可名单。
安装
您可以使用 pip install
安装 AlloyDB Python 连接器库。
如果您使用的是 asyncpg,请运行以下命令:
对于 asyncpg,请使用:
pip install "google-cloud-alloydb-connector[asyncpg]" "sqlalchemy[asyncio]"
如需详细了解异步驱动程序用法,请参阅异步驱动程序用法。
Go (pgx)
AlloyDB Go 连接器是专为与 Go 语言搭配使用而设计的 AlloyDB 连接器。
安装
您可以使用 go get
安装 AlloyDB Go Connector。
如果您使用的是 pgx,请运行以下命令:
go get github.com/jackc/pgx/v5
go get cloud.google.com/go/alloydbconn
Go(数据库/SQL)
AlloyDB Go 连接器是专为与 Go 语言搭配使用而设计的 AlloyDB 连接器。
安装
您可以使用 go get
安装 AlloyDB Go Connector。
如果您使用的是 database/sql,请运行以下命令:
go get cloud.google.com/go/alloydbconn
配置 AlloyDB 语言连接器
Java
如需使用 AlloyDB Java 连接器连接到 AlloyDB 集群,请按照以下步骤进行配置。
如需在 Web 应用环境中使用此代码段,请查看 GitHub 上的 README。
使用公共 IP
如果您使用公共 IP 连接到 AlloyDB 集群,请添加以下内容:
config.addDataSourceProperty("alloydbIpType", "PUBLIC");
使用 Private Service Connect
如果您使用 Private Service Connect 连接到 AlloyDB 实例,请添加以下内容:
config.addDataSourceProperty("alloydbIpType", "PSC");
自动 IAM 身份验证
默认情况下,AlloyDB 语言连接器使用内置身份验证。您可以将自动 IAM 身份验证与 AlloyDB Java 连接器搭配使用。如需启用,请添加以下内容:
config.addDataSourceProperty("alloydbEnableIAMAuth", "true");
Python (pg8000)
如需使用 AlloyDB Python 连接器连接到 AlloyDB 集群,请按照以下步骤配置连接器(如果您使用的是 pg8000
)。
如需在 Web 应用环境中使用此代码段,请查看 GitHub 上的 README。
使用公共 IP
如果您使用公共 IP 连接到 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 public IP
ip_type=IPTypes.PUBLIC,
)
return conn
使用 Private Service Connect
如果您使用 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
自动 IAM 身份验证
默认情况下,AlloyDB 语言连接器使用内置身份验证。您可以将 自动 IAM 身份验证与 AlloyDB Python 连接器搭配使用。如需启用,请将连接函数替换为以下代码:
def getconn() -> pg8000.dbapi.Connection:
conn: pg8000.dbapi.Connection = connector.connect(
inst_uri,
"pg8000",
user=user,
password=password,
db=db,
# use enable_iam_auth to enable IAM authentication
enable_iam_auth=True,
)
return conn
Python (asyncpg)
如需使用 AlloyDB Python 连接器连接到 AlloyDB 集群,请按照以下步骤配置连接器(如果您使用的是 async
)。
如需在 Web 应用环境中使用此代码段,请查看 GitHub 上的 README。
使用公共 IP
如果您使用公共 IP 连接到 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 public IP
ip_type=IPTypes.PUBLIC,
)
return conn
使用 Private Service Connect
如果您使用 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
自动 IAM 身份验证
默认情况下,AlloyDB 语言连接器使用内置身份验证。您可以将 自动 IAM 身份验证与 AlloyDB Python 连接器搭配使用。如需启用,请将连接函数替换为以下代码:
async def getconn() -> asyncpg.Connection:
conn: asyncpg.Connection = await connector.connect(
inst_uri,
"asyncpg",
user=user,
password=password,
db=db,
# use enable_iam_auth to enable IAM authentication
enable_iam_auth=True,
)
return conn
Go (pgx)
如需使用 AlloyDB Go Connector 连接到 AlloyDB 集群,请按照以下步骤配置连接器(如果您使用的是 pgx
)。
如需在 Web 应用环境中使用此代码段,请查看 GitHub 上的 README。
使用公共 IP
如果您使用公共 IP 连接到 AlloyDB 集群,请将 d.Dial
函数替换为以下内容:
d.Dial(ctx, instURI, alloydbconn.WithPublicIP())
使用 Private Service Connect
如果您使用 Private Service Connect 连接到 AlloyDB 实例,请添加以下内容:
d.Dial(ctx, instURI, alloydbconn.WithPSC())
自动 IAM 身份验证
默认情况下,AlloyDB 语言连接器使用内置身份验证。您可以将自动 IAM 身份验证与 AlloyDB Go 连接器搭配使用。如需启用,请将 alloydbconn.NewDialer
函数替换为以下代码:
d, err := alloydbconn.NewDialer(ctx, alloydbconn.WithIAMAuthN())
Go(数据库/SQL)
如需使用 AlloyDB Go 连接器连接到 AlloyDB 集群,请按照以下步骤配置连接器(如果您使用的是 database/sql
)。
如需在 Web 应用环境中使用此代码段,请查看 GitHub 上的 README。
使用公共 IP
如果您使用公共 IP 连接到 AlloyDB 集群,请将 RegisterDriver
函数替换为以下内容:
cleanup, err := pgxv5.RegisterDriver(
"alloydb",
alloydbconn.WithDefaultDialOptions(alloydbconn.WithPublicIP())
)
使用 Private Service Connect
如果您使用 Private Service Connect 连接到 AlloyDB 实例,请添加以下内容:
cleanup, err := pgxv5.RegisterDriver(
"alloydb",
alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC())
)
自动 IAM 身份验证
默认情况下,AlloyDB 语言连接器使用内置身份验证。您可以将自动 IAM 身份验证与 AlloyDB Go 连接器搭配使用。如需启用,请将 RegisterDriver
函数替换为以下代码:
cleanup, err := pgxv4.RegisterDriver(
"alloydb",
alloydbconn.WithIAMAuthN()
)