Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menghubungkan ke cluster DB Anda menggunakan IAM otentikasi dan AWS SDK for Python (Boto3)
Anda dapat terhubung ke cluster DB Aurora Postgre dengan SQL AWS SDK for Python (Boto3) seperti yang dijelaskan berikut.
Prasyarat
Berikut ini adalah prasyarat untuk menghubungkan ke cluster DB Anda menggunakan otentikasi: IAM
Selain itu, pastikan pustaka yang diimpor dalam kode sampel ada di sistem Anda.
Contoh
Contoh kode ini menggunakan profil untuk kredensial bersama. Untuk informasi tentang kredensi yang menentukan, lihat Kredensial di
Contoh kode berikut ini menunjukkan cara membuat token autentikasi, lalu menggunakannya untuk menghubungkan ke klaster DB.
Untuk menjalankan contoh kode ini, Anda memerlukan AWS SDK for Python (Boto3)
Ubah nilai variabel berikut sesuai kebutuhan:
-
ENDPOINT
– Titik akhir klaster DB yang ingin Anda akses -
PORT
– Nomor port yang digunakan untuk menghubungkan ke klaster DB Anda -
USER
– Akun basis data yang ingin Anda akses -
REGION
— The AWS Wilayah tempat cluster DB berjalan -
DBNAME
– Basis data yang ingin Anda akses -
SSLCERTIFICATE
— Jalur lengkap ke SSL sertifikat untuk AuroraUntuk
ssl_ca
, tentukan SSL sertifikat. Untuk mengunduh SSL sertifikat, lihat.
catatan
Anda tidak dapat menggunakan DNS catatan Route 53 kustom atau titik akhir kustom Aurora alih-alih titik akhir cluster DB untuk menghasilkan token otentikasi.
Kode ini terhubung ke cluster Aurora My SQL DB.
Sebelum menjalankan kode ini, instal PyMy SQL driver dengan mengikuti instruksi di Indeks Paket Python
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(auth_plugin_map={'mysql_clear_password':None},host=ENDPOINT, user=USER, password=token, port=PORT, database=DBNAME, ssl_ca='SSLCERTIFICATE
', ssl_verify_identity=True) 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))
Kode ini terhubung ke cluster Aurora SQL Postgre DB.
Sebelum menjalankan kode ini, instal psycopg2
dengan mengikuti petunjuk dalam dokumentasi Psycopg
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))
Jika Anda ingin terhubung ke klaster DB melalui proksi, lihat Terhubung ke sebuah proksi menggunakan autentikasi IAM.