gpt4 book ai didi

sql-server - AWS Lambda 和 SQL Server 集成

转载 作者:行者123 更新时间:2023-12-03 09:36:01 27 4
gpt4 key购买 nike

我的应用程序使用 MS Sql Server。现在在了解 AWS Lambda 之后,我想将我的应用程序转移到 AWS Lambda 以拥有无服务器架构。

但正如我所提到的,应用程序使用 Sql Server。所以我不确定 AWS Lambda 是否支持与 Sql Server 的连接。

任何评论/链接都会有所帮助。

最佳答案

这是一些带有注释的示例样板,用于从 Lambda 连接到 MS SQL Server 数据库(假设使用 NodeJS 作为您的语言)。

const sql = require('mssql');

exports.handler = async (event, context, callback) => {

let lookupValue = event.lookupValue;

// Take DB Config from environment variables set in Lambda config
const config = {
user: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
server: process.env.DB_SERVER,
database: process.env.DB_DATABASE,
options: {
encrypt: true // Use this if you're on Windows Azure
}
}

try {
// Open DB Connection
let pool = await sql.connect(config)

// Query Database
let result = await pool.request()
.input('lookupValue', sql.Int, lookupValue)
.query('select * from exampleTable where id = @lookupValue');

// Close DB Connection
pool.close();

// The results of our query
console.log("Results:", result.recordset);

// Use callback if you need to return values from your lambda function.
// Callback takes (error, response?) as params.
callback(null, result.recordset);
} catch (err) {
// Error running our SQL Query
console.error("ERROR: Exception thrown running SQL", err);
}

sql.on('error', err => console.error(err, "ERROR: Error raised in MSSQL utility"));
}

注意:您需要将运行 mssql 所需的 node_modules 上传到您的函数。我找到的最简单的方法是压缩整个文件夹(您的主要 [通常是 index.js] 函数文件,以及 package.json 和您的 node_modules 文件夹),然后使用 aws-cli 上传它:
aws lambda update-function-code --function-name your-function-name-here --zip-file your-zipped-project-directory.zip 

最后,确保您的数据库能够接受来自 AWS Lambda 函数的连接。执行此操作的最佳方法是结合使用 AWS 的 VPC、NAT 和弹性 IP 设置 - 此博客文章中描述了示例: https://medium.com/@matthewleak/aws-lambda-functions-with-a-static-ip-89a3ada0b471

关于sql-server - AWS Lambda 和 SQL Server 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165045/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com