Serverless Frameworkを使って、RDS Proxy用の基盤を作ってみました。
https://github.com/toritroniks/sls-ts-rds-proxy-api
機能
自動リクエストとレスポンスのJSONパース
Middyを利用して、リクエストのbodyを自動的にオブジェクトにパースする
JSON Schemaからの自動リクエストとレスポンスバリデーション
JSON Schema を使って、リクエストのbodyのバリデーションとAPIレスポンスのバリデーションは自動的に実行されます。
また、bodyのTypescriptインターフェースもSchemaから作成されます。
※ここもMiddyを使っています。
Webpack+Typescriptで共通処理実装可能(Lambda Layerは不要)
各Lambdaは独立された処理なので、共通処理を実装したい場合、Lambda Layerを使うことが多いと思います。
ただ、Layerのバージョン管理でデプロイが複雑になったり、ローカル実行が難しくなったりします。
Webpackを使うことで、ビルドのタイミングで必要なコードが各Lambdaの中に自動で反映されるため、Layerは不要になります。
※別のリポジトリーで処理を使いたい場合、Layerはまだ必要です。
ローカル実行可能 + ホットリロード!!
serverless-offline のプラグインを使うと、APIのローカル動作確認が可能になります。
実装がリアルタイムで反映されるので、とても開発しやすいと思います。
RDS Proxy(MySQL)対応
RDS Proxyに繋げるための実装は完了しており、設定ファイルに必要なVPC情報やAWSリソース情報を入れるだけで使えます。