【AWS】【Aurora】【Python】Data API について

■ はじめに

Aurora に、Pythonからアクセスするのに、
Data API ってのが使えるらしく、それがあると
Auroraが、MySQL互換だろうと、PostgreSQL互換だろうと
アクセスできるらしいので、調べてみた

公式サイト

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/data-api.html
Pythonサンプル
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/data-api.html#data-api.calling.python

■ 前提条件

【1】IAMポリシーの設定
【2】Aurora の Data API の有効化
【3】Auroraバージョン

※ 詳細は、以下の「公式サイト」を参照

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/data-api.html

【1】IAMポリシーの設定

ユーザーは、 Data API へのアクセスが許可されている必要がある

【2】Aurora の Data API の有効化

Aurora サーバーレス DB クラスター用に有効にする必要がある

Auroraバージョン

* MySQL バージョン 5.6 と互換性のある Aurora
* PostgreSQL バージョン 10.7 と互換性がある Aurora

■ 必要な情報(INPUT)

【1】resourceArn
 => Aurora サーバーレス DB クラスターの Amazon リソースネーム (ARN)

【2】secretArn
 => DB クラスターへのアクセスを有効にするシークレットの ARN の名前

■ サンプル

import boto3 

rds_client = boto3.client('rds-data')

cluster_arn = 'arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster' 
secret_arn = 'arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret'
sql = 'select * from person'
response = rds_client.execute_statement(
            resourceArn = cluster_arn, 
            secretArn = secret_arn, 
            database = 'sampledb', 
            sql = sql)

print(response)