サーバレス練習帳

着眼大局着手小局

RDS勉強

RDSの料金の日本円
aws-rough.cc

RDSに接続するLambda
qiita.com

Lambda Layer
https://api.klayers.cloud/api/v2/p3.8/layers/latest/ap-northeast-1/html

SQLAlchemyから接続する場合
qiita.com

def lambda_handler(event, context):
    function2()
    return True

def function2():
    from sqlalchemy import create_engine
    # engine = create_engine("{dialect}+{driver}://{username}:{password}@{host}:{port}/{database}?charset={charset_type}")
    engine = create_engine("postgresql://postgres:password@postgresql-1.ci3a10XXXXXx.ap-northeast-1.rds.amazonaws.com:5432/postgres")
    return True
    
    
def function1():
    import psycopg2
    import os
    
    # 環境変数から接続情報を取得
    # db_endpoint = os.environ['DB_ENDPOINT']
    db_endpoint = 'postgresql-1.ci3a10XXXXXx.ap-northeast-1.rds.amazonaws.com'
    # db_username = os.environ['DB_USERNAME']
    db_username = 'postgres'
    # db_password = os.environ['DB_PASSWORD']
    db_password = 'password'
    # db_name = os.environ['DB_NAME']
    db_name = 'postgres'
    
    # データベースに接続
    conn = psycopg2.connect(
        dbname=db_name,
        user=db_username,
        password=db_password,
        host=db_endpoint
    )

    # カーソルの作成
    cur = conn.cursor()

    # SQL の実行
    cur.execute('SELECT *  FROM テーブル名;')
    records = cur.fetchall()
    print(records)
    # カーソルと接続のクローズ
    cur.close()
    conn.close()

    # 結果の返却
    return {
        'statusCode': 200,
        'body': records
    }