lambdaからRDSに書き込みをする
VPCに入れる
lambdaをRDSにリーチできるように、VPC内に入れることで、RDSに対して直接データを書き込めるようになる。
lambdaの「ネットワーク」の設定から設定することができる。
以下のサイトにエンドポイントの作成について参考になると思う。
VPC Endpointを使ってS3にアクセスしてみる – サーバーワークスエンジニアブログ
S3などへのアクセスはエンドポイントを作成
この際、注意が必要なのが、lambdaからS3へのアクセスなどが遮断されてしまうため、VPCエンドポイントを作成して、S3にアクセスできるようにしなければならない。
外部モジュールを入れる際はlayerを追加
lambdaで外部モジュールやパッケージを利用する際は、layerにzip化したパッケージ群をアップロードする必要がある。
「layer aws nodejs」で検索すると方法が出てくると思う。
RDSへの書き込みは通常通りに
nodejsからmysqlにデータを書き込むことを想定する。
var mysql = require('mysql'); var connection = mysql.createConnection({ host: "<rds_endpoint>", user: "<rds_username>", password: "<password>", database: "<db_name>", }); // console.log(connection); exports.handler = (event, context, callback) => { connection.query('show tables', function (error, results, fields) { if (error) { connection.destroy(); throw error; } else { // connected! console.log(results); callback(error, results); connection.end(function (err) { callback(err, results);}); } }); };