Mit den AlloyDB Language Connectors können Sie sichere Verbindungen von Ihrer Anwendung zu einem AlloyDB for PostgreSQL-Cluster einfacher herstellen. Diese Clientbibliotheken bieten die folgenden Funktionen:
- Automatisierte mTLS-Verbindungen
- Unterstützung für die Autorisierung über Identity and Access Management (IAM)
- Automatisierte IAM-Authentifizierung
AlloyDB Language Connectors können keinen Netzwerkpfad zu einem AlloyDB-Cluster bereitstellen, wenn noch kein Netzwerkpfad vorhanden ist.
Weitere Informationen zu AlloyDB Language Connectors finden Sie unter AlloyDB Language Connectors – Übersicht.
Auf dieser Seite werden die folgenden AlloyDB Language Connectors erläutert:
- Der AlloyDB-Java-Connector
- AlloyDB Go Connector
- AlloyDB Python Connector
Hinweis
Aktivieren Sie die AlloyDB API.
AlloyDB-Instanz erstellen und den Standardnutzer konfigurieren
Weitere Informationen zum Erstellen einer Instanz finden Sie unter Primäre Instanz erstellen.
Weitere Informationen zu Nutzerrollen finden Sie unter Vordefinierte AlloyDB-IAM-Rollen.
Konfigurieren Sie die folgenden IAM-Rollen, die zum Herstellen einer Verbindung zu einer AlloyDB-Instanz erforderlich sind:
- AlloyDB-Client (
roles/alloydb.client) Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)Weitere Informationen zu den erforderlichen Rollen und Berechtigungen finden Sie unter IAM-Authentifizierung verwalten.
- AlloyDB-Client (
AlloyDB Language Connectors installieren
Java
Der AlloyDB-Java-Connector ist eine Bibliothek, die IAM-basierte Autorisierung und Verschlüsselung bietet, wenn eine Verbindung zu einer AlloyDB-Instanz hergestellt wird. Wenn Sie Spring Boot verwenden, lesen Sie den Spring Boot AlloyDB-Starter.
Installation
Wenn Sie Maven verwenden, können Sie den AlloyDB-Java-Connector installieren, indem Sie der Datei pom.xml Ihres Projekts Folgendes hinzufügen:
<!-- Add the connector with the latest version -->
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>alloydb-jdbc-connector</artifactId>
<version>1.12.1</version>
</dependency>
<!-- Add the driver with the latest version -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.5</version>
</dependency>
<!-- Add HikariCP with the latest version -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.1.0</version>
</dependency>
Wenn Sie Gradle verwenden, können Sie den AlloyDB-Java-Connector installieren, indem Sie Folgendes in die build.gradle-Datei Ihres Projekts einfügen:
// Add connector with the latest version
implementation group: 'com.google.cloud.alloydb', name: 'alloydb-jdbc-connector', version: '1.12.1'
// Add driver with the latest version
implementation group: 'org.postgresql', name: 'postgresql', version: '42.7.5'
// Add HikariCP with the latest version
implementation group: 'com.zaxxer', name: 'HikariCP', version: '5.1.0'
Python (pg8000)
Der AlloyDB-Python-Connector funktioniert mit den Datenbanktreibern pg8000 (synchron) und asyncpg (asynchron), damit Hauptkonten mit ausreichenden Berechtigungen eine Verbindung zu einer AlloyDB-Datenbank herstellen können, ohne IP-Adressen manuell auf die Zulassungsliste setzen zu müssen.
Installation
Sie können die AlloyDB Python Connector-Bibliothek mit pip install installieren.
Wenn Sie pg8000 verwenden, führen Sie den folgenden Befehl aus:
pip install "google-cloud-alloydb-connector[pg8000]" sqlalchemyPython (asyncpg)
Der AlloyDB-Python-Connector funktioniert mit den Datenbanktreibern pg8000 (synchron) und asyncpg (asynchron), damit Hauptkonten mit ausreichenden Berechtigungen eine Verbindung zu einer AlloyDB-Datenbank herstellen können, ohne IP-Adressen manuell auf die Zulassungsliste setzen zu müssen.
Installation
Sie können die AlloyDB Python-Connector-Bibliothek mit pip install installieren.
Wenn Sie asyncpg verwenden, führen Sie den folgenden Befehl aus:
pip install "google-cloud-alloydb-connector[asyncpg]" "sqlalchemy[asyncio]"Weitere Informationen zur Verwendung des asynchronen Treibers finden Sie unter Verwendung des asynchronen Treibers.
Go (pgx)
Der AlloyDB-Go-Connector ist ein AlloyDB-Connector, der für die Verwendung mit der Go-Sprache entwickelt wurde.
Installation
Sie können den AlloyDB Go-Connector mit go get installieren.
Wenn Sie pgx verwenden, führen Sie die folgenden Befehle aus:
go get github.com/jackc/pgx/v5
go get cloud.google.com/go/alloydbconnGo (database/sql)
Der AlloyDB-Go-Connector ist ein AlloyDB-Connector, der für die Verwendung mit der Go-Sprache entwickelt wurde.
Installation
Sie können den AlloyDB Go-Connector mit go get installieren.
Wenn Sie database/sql verwenden, führen Sie den folgenden Befehl aus:
go get cloud.google.com/go/alloydbconnAlloyDB Language Connectors konfigurieren
Java
Wenn Sie den AlloyDB-Java-Connector verwenden möchten, um eine Verbindung zu Ihrem AlloyDB-Cluster herzustellen, konfigurieren Sie ihn so:
Wenn Sie dieses Snippet im Kontext einer Webanwendung verwenden möchten, rufen Sie die README-Datei auf GitHub auf.
Öffentliche IP-Adresse verwenden
Wenn Sie eine öffentliche IP-Adresse verwenden, um eine Verbindung zu Ihrem AlloyDB-Cluster herzustellen, geben Sie Folgendes an:
config.addDataSourceProperty("alloydbIpType", "PUBLIC");
Private Service Connect verwenden
Wenn Sie Private Service Connect verwenden, um eine Verbindung zu Ihrer AlloyDB-Instanz herzustellen, geben Sie Folgendes an:
config.addDataSourceProperty("alloydbIpType", "PSC");
Automatische IAM-Authentifizierung
Standardmäßig verwenden AlloyDB Language Connectors die integrierte Authentifizierung. Sie können die automatische IAM-Authentifizierung mit dem AlloyDB-Java-Connector verwenden. Geben Sie Folgendes an, um sie zu aktivieren:
config.addDataSourceProperty("alloydbEnableIAMAuth", "true");
Python (pg8000)
Wenn Sie den AlloyDB Python-Connector verwenden, um eine Verbindung zu Ihrem AlloyDB-Cluster herzustellen, konfigurieren Sie den Connector mit den folgenden Schritten, wenn Sie pg8000 verwenden.
Wenn Sie dieses Snippet im Kontext einer Webanwendung verwenden möchten, rufen Sie die README-Datei auf GitHub auf.
Öffentliche IP-Adresse verwenden
Wenn Sie eine öffentliche IP-Adresse verwenden, um eine Verbindung zu Ihrem AlloyDB-Cluster herzustellen, ersetzen Sie Ihre Verbindungsfunktion durch Folgendes:
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 verwenden
Wenn Sie Private Service Connect verwenden, um eine Verbindung zu Ihrer AlloyDB-Instanz herzustellen, geben Sie Folgendes an:
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
Automatische IAM-Authentifizierung
Standardmäßig verwenden AlloyDB Language Connectors die integrierte Authentifizierung. Sie können die automatische IAM-Authentifizierung mit dem AlloyDB Python-Connector verwenden. Ersetzen Sie die Verbindungsfunktion durch Folgendes, um sie zu aktivieren:
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)
Wenn Sie den AlloyDB Python-Connector verwenden möchten, um eine Verbindung zu Ihrem AlloyDB-Cluster herzustellen, konfigurieren Sie den Connector mit den folgenden Schritten, wenn Sie asyncpg verwenden.
Wenn Sie dieses Snippet im Kontext einer Webanwendung verwenden möchten, rufen Sie die README-Datei auf GitHub auf.
Öffentliche IP-Adresse verwenden
Wenn Sie eine öffentliche IP-Adresse verwenden, um eine Verbindung zu Ihrem AlloyDB-Cluster herzustellen, ersetzen Sie Ihre Verbindungsfunktion durch Folgendes:
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 verwenden
Wenn Sie Private Service Connect verwenden, um eine Verbindung zu Ihrer AlloyDB-Instanz herzustellen, geben Sie Folgendes an:
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
Automatische IAM-Authentifizierung
Standardmäßig verwenden AlloyDB Language Connectors die integrierte Authentifizierung. Sie können die automatische IAM-Authentifizierung mit dem AlloyDB Python-Connector verwenden. Ersetzen Sie die Verbindungsfunktion durch Folgendes, um sie zu aktivieren:
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)
Wenn Sie den AlloyDB Go-Connector verwenden möchten, um eine Verbindung zu Ihrem AlloyDB-Cluster herzustellen, konfigurieren Sie den Connector mit den folgenden Schritten, wenn Sie pgx verwenden.
Wenn Sie dieses Snippet im Kontext einer Webanwendung verwenden möchten, rufen Sie die README-Datei auf GitHub auf.
Öffentliche IP-Adresse verwenden
Wenn Sie eine öffentliche IP-Adresse verwenden, um eine Verbindung zu Ihrem AlloyDB-Cluster herzustellen, ersetzen Sie die Funktion d.Dial durch Folgendes:
d.Dial(ctx, instURI, alloydbconn.WithPublicIP())
Private Service Connect verwenden
Wenn Sie Private Service Connect verwenden, um eine Verbindung zu Ihrer AlloyDB-Instanz herzustellen, geben Sie Folgendes an:
d.Dial(ctx, instURI, alloydbconn.WithPSC())
Automatische IAM-Authentifizierung
Standardmäßig verwenden AlloyDB Language Connectors die integrierte Authentifizierung.
Sie können die automatische IAM-Authentifizierung mit dem AlloyDB Go-Connector verwenden. Ersetzen Sie zum Aktivieren die Funktion alloydbconn.NewDialer durch Folgendes:
d, err := alloydbconn.NewDialer(ctx, alloydbconn.WithIAMAuthN())
Integrierte Telemetrie deaktivieren
Mit der Option WithOptOutOfBuiltInTelemetry wird der interne Messwert-Export deaktiviert.
Standardmäßig werden die internen Vorgänge des Dialers unter dem Systemmesswert-Präfix alloydb.googleapis.com gemeldet. Mithilfe dieser Messwerte kann AlloyDB die Leistung verbessern und Probleme mit der Clientverbindung erkennen. Diese Option ist nützlich beim Ausführen von Apps in Umgebungen, in denen der Export von Messwerten nach außen eingeschränkt ist. Wenn Sie diese Telemetrie deaktivieren möchten, geben Sie beim Initialisieren eines Dialers die folgende Option an:
d.Dial(ctx, instURI, alloydbconn.WithOptOutOfBuiltInTelemetry())
Go (database/sql)
Wenn Sie den AlloyDB Go-Connector verwenden möchten, um eine Verbindung zu Ihrem AlloyDB-Cluster herzustellen, konfigurieren Sie den Connector mit den folgenden Schritten, wenn Sie database/sql verwenden.
Wenn Sie dieses Snippet im Kontext einer Webanwendung verwenden möchten, rufen Sie die README-Datei auf GitHub auf.
Öffentliche IP-Adresse verwenden
Wenn Sie eine öffentliche IP-Adresse verwenden, um eine Verbindung zu Ihrem AlloyDB-Cluster herzustellen, ersetzen Sie die Funktion RegisterDriver durch Folgendes:
cleanup, err := postgres.RegisterDriver(
"alloydb",
alloydbconn.WithDefaultDialOptions(alloydbconn.WithPublicIP()),
)
Private Service Connect verwenden
Wenn Sie Private Service Connect verwenden, um eine Verbindung zu Ihrer AlloyDB-Instanz herzustellen, geben Sie Folgendes an:
cleanup, err := postgres.RegisterDriver(
"alloydb",
alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC()),
)
Automatische IAM-Authentifizierung
Standardmäßig verwenden AlloyDB Language Connectors die integrierte Authentifizierung.
Sie können die automatische IAM-Authentifizierung mit dem AlloyDB Go-Connector verwenden. Ersetzen Sie zum Aktivieren die Funktion RegisterDriver durch Folgendes:
cleanup, err := postgres.RegisterDriver(
"alloydb",
alloydbconn.WithIAMAuthN(),
)
Integrierte Telemetrie deaktivieren
Mit der Option WithOptOutOfBuiltInTelemetry wird der interne Messwert-Export deaktiviert.
Standardmäßig werden die internen Vorgänge des Dialers unter dem Systemmesswert-Präfix alloydb.googleapis.com gemeldet. Mithilfe dieser Messwerte kann AlloyDB die Leistung verbessern und Probleme mit der Clientverbindung erkennen. Diese Option ist nützlich beim Ausführen von Apps in Umgebungen, in denen der Export von Messwerten nach außen eingeschränkt ist. Wenn Sie diese Telemetrie deaktivieren möchten, geben Sie beim Initialisieren eines Dialers die folgende Option an:
cleanup, err := postgres.RegisterDriver(
"alloydb",
alloydbconn.WithOptOutOfBuiltInTelemetry(),
)