- 03-5820-1777平日10:00〜18:00
- お問い合わせ
下記の様な構成のVPCを作成して、RDSProxy経由でLambdaからのアクセスをしてみます。
LambdaにはVPCとの関連設定をしてあるものと、してないものそれぞれ用意しアクセス可否を確かめてみます。
調査手順
OK:疎通可に設定
NG:疎通不可に設定
両方:OK、NG両方
使用したLambdaのコードを載せておきます。
尚、このコード実行にはpymysqlというライブラリをレイヤーで登録して使用しています。
import sys
import os
import boto3
import pymysql
import json
db_name = 'test' # testというDBを作成しました
db_password = 'xxxxxxxxxxxxxxxxxx' # SecretManagerで設定してあるパスワードを指定
end_point = 'mysqlproxy.proxy-xxxxxxxxx.ap-northeast-1.rds.amazonaws.com' # RdsProxyのarnを指定
port = 3306
db_user = 'admin'
region = 'ap-northeast-1'
def lambda_handler(event, context):
try:
connection = pymysql.connect(
host=end_point,
user=db_user,
passwd=db_password,
port=port,
database=db_name
)
print("connect")
# sampleというテーブルを作成し、データを入れそのデータを全て取得します。
with connection.cursor() as cursor:
cursor.execute("SELECT * FROM sample")
query_results=cursor.fetchall()
for result in query_results:
print(result)
except Exception as e:
print(e)
statusCode = 500
finally:
if connection is not None:
connection.close()
return {
'statusCode': 200,
'body': "finish"
}
使用ライブラリは此方から取得可能です。これをレイヤーとして登録しLambdaで使用します。