はじめに
AWS Lambdaから社内環境のSQL Serverへの接続方法について紹介していきます
SQLServerへの接続部分で具体的な値の例が無く、苦戦したのでより具体的に値を記載しようと思います!
開発内容
パッケージのインストール
Node.jsでSQLServerへアクセスするために必要なパッケージをインストールします
npm install mssql
Lambdaの設定
特定の環境からのみアクセス可とするため、VPCの設定を行います。
Lambdaの設定タブのVPC からVPC、サブネット、セキュリティグループを設定します。
ソースコード
// パッケージの読み込み
const sql = require('mssql')
// SQL Serverの設定
const config = {
user: 'sa',
password: 'XXXXXXX', // 設定したパスワード
server: '192.168.X.X',
database: 'DATABASE_NAME', // DB名
}
exports.handler = async (event) => {
console.log(event)
try {
const parameter = event.queryStringParameters
const userId = parameter.userId;
// SQL Serverに接続
await sql.connect(config)
// ユーザー情報取得用のSQLを実行
const result = await sql.query
`SELECT * FROM ユーザー情報 WHERE USER_ID = ${userId}`
// 接続を閉じる
await sql.close();
const record = JSON.stringify(result.recordset)
return {
statusCode: 200,
headers: {
'Access-Control-Allow-Origin': '*'
},
body: record
}
} catch (err) {
console.log('SQL ERROR:' + err)
// 接続を閉じる
await sql.close();
return {
statusCode: 500,
headers: {
'Access-Control-Allow-Origin': '*'
},
body: 'ERROR'
}
}
};
さいごに
初めてSQLServerと接続の実装を行ったため、上手くいかない原因の特定に時間が掛かり、実装が大変でした・・
こちら参考になれば幸いです