Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Herstellen einer Verbindung zu Ihrem DB--Cluster mithilfe der IAM-Authentifizierung und AWS SDK for Python (Boto3)
Sie können sich mit dem AWS SDK for Python (Boto3) wie nachfolgend beschrieben mit einer Aurora-MySQL- oder Aurora-PostgreSQL-DB-Cluster verbinden.
Voraussetzungen
Die folgenden Voraussetzungen gelten für die Verbindung mit Ihrem DB--Cluster mithilfe der IAM-Authentifizierung:
Stellen Sie außerdem sicher, dass die importierten Bibliotheken im Beispielcode auf Ihrem System vorhanden sind.
Beispiele
Die Codebeispiele verwenden Profile für freigegebene Anmeldeinformationen. Informationen zum Angeben von Anmeldeinformationen finden Sie unter Anmeldeinformationen
In den folgenden Beispielcodes wird gezeigt, wie Sie ein Authentifizierungstoken erzeugen und anschließend zum Verbinden mit einem DB-Cluster verwenden.
Um dieses Codebeispiel auszuführen, benötigen Sie das AWS SDK for Python (Boto3)
Ändern Sie die Werte der folgenden Parameter nach Bedarf.
-
ENDPOINT
– Der Endpunkt des DB--Clusters, auf den Sie zugreifen möchten. -
PORT
– Die Nummer des Ports, der für die Verbindung mit dem DB--Cluster verwendet wird. -
USER
– Das Datenbankkonto, auf das Sie zugreifen möchten. -
REGION
– Die AWS-Region, in der der DB-Cluster ausgeführt wird. -
DBNAME
– Die Datenbank, auf die Sie zugreifen möchten. -
SSLCERTIFICATE
– Der vollständige Pfad zum SSL-Zertifikat für Amazon AuroraGeben Sie für
ssl_ca
ein SSL-Zertifikat an. Zum Download eines SSL-Zertifikats siehe Verwenden von SSL/TLS zum Verschlüsseln einer Verbindung zu einer .
Anmerkung
Sie können keinen benutzerdefinierten Route-53-DNS-Eintrag oder einen benutzerdefinierten Aurora-Endpunkt anstelle des DB-Cluster-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.
Dieser Code stellt eine Verbindung mit einem Aurora MySQL DB-Cluster her.
Bevor Sie diesen Code ausführen, installieren Sie den PyMySQL-Treiber, indem Sie die Anweisungen im Python-Paketindex
import pymysql import sys import boto3 import os ENDPOINT="
mysqlcluster.cluster-123456789012.us-east-1.rds.amazonaws.com
" PORT="3306
" USER="jane_doe
" REGION="us-east-1
" DBNAME="mydb
" os.environ['LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN'] = '1' #gets the credentials from .aws/credentials session = boto3.Session(profile_name='default') client = session.client('rds') token = client.generate_db_auth_token(DBHostname=ENDPOINT, Port=PORT, DBUsername=USER, Region=REGION) try: conn = pymysql.connect(host=ENDPOINT, user=USER, passwd=token, port=PORT, database=DBNAME, ssl_ca='SSLCERTIFICATE
') cur = conn.cursor() cur.execute("""SELECT now()""") query_results = cur.fetchall() print(query_results) except Exception as e: print("Database connection failed due to {}".format(e))
Dieser Code stellt eine Verbindung mit einem Aurora PostgreSQL DB-Cluster her.
Bevor Sie diesen Code ausführen, installieren Sie psycopg2
, indem Sie die Anweisungen in der Psycopg-Dokumentation
import psycopg2 import sys import boto3 import os ENDPOINT="
postgresmycluster.cluster-123456789012.us-east-1.rds.amazonaws.com
" PORT="5432
" USER="jane_doe
" REGION="us-east-1
" DBNAME="mydb
" #gets the credentials from .aws/credentials session = boto3.Session(profile_name='RDSCreds') client = session.client('rds') token = client.generate_db_auth_token(DBHostname=ENDPOINT
, Port=PORT
, DBUsername=USER
, Region=REGION
) try: conn = psycopg2.connect(host=ENDPOINT, port=PORT, database=DBNAME, user=USER, password=token, sslrootcert="SSLCERTIFICATE
") cur = conn.cursor() cur.execute("""SELECT now()""") query_results = cur.fetchall() print(query_results) except Exception as e: print("Database connection failed due to {}".format(e))
Informationen dazu, wie Sie über einen Proxy eine Verbindung mit einem DB-Cluster herstellen, finden Sie unter Herstellen einer Verbindung mit einem Proxy mithilfe der IAM-Authentifizierung.