Skip to content

bbirec/yedata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yedata

Aurora Serverless를 사용하고 싶었지만 VPC 제약이 있어, AWS 내부 서버를 써야만 사용 가능했다. PaaS 플랫폼(Heroku) 또는 Serverless(now.sh, Cloudflare worker)에서도 사용가능한 Aurora Serverless Data API가 새로 추가되었다.

Aurora Serverless Data API를 yesql 스타일로 사용할수 있게 해준다.

Features

  • .sql파일을 읽어서 함수로 만들어줌 (yesql과 동일)
  • java.sql.Timestamp, json, jsonb 타입 지원

Usage

심플 쿼리

(require '[yedata.data :as yd])
(def conn (yd/create-conn access-key secret-key resource-arn secret-arn db-name))

(yd/execute "select * from users where id=:id" {:id 1} conn)
; => ({:id 1, :name "Hello"})

yesql 처럼 사용

(require '[yedata.core :refer [defqueries require-sql]])
(def conn (yd/create-conn access-key secret-key resource-arn secret-arn db-name))

(defqueries "sql/query.sql") ;; 현재 ns에 함수로 정의
(simple-select {:id 1} conn)
; => ({:id 1, :name "Hello"})

(require-sql "sql/query.sql" :as q) ;; q ns에 함수로 정의
(q/simple-select {:id 1} conn)
; => ({:id 1, :name "Hello"})

TODO

  • Transaction
  • Batch insert, update
  • Sql statement function doc 생성

Aurora Serverless 설정

  1. Secret Manager로 추가
  2. IAM policy 추가
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "{Secret ARN}"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "rds-data:BatchExecuteStatement",
                "rds-data:BeginTransaction",
                "rds-data:CommitTransaction",
                "rds-data:ExecuteStatement",
                "rds-data:RollbackTransaction"
            ],
            "Resource": "{Cluster ARN}"
        }
    ]
}

자세한 내용은 https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html 참조

Reference

About

Aurora Serverless Data API (feat. yesql)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published