[英]AWS Lambda function to connect to a Postgresql database
有谁知道如何通过AWS Lambda函数连接到PostgreSQL数据库。 我在网上查了一下,但我找不到任何关于它的信息。 如果你能告诉我如何去做那件事会很棒。
如果你发现我的代码(node.js)出了问题会很好,否则你能告诉我怎么去吗?
exports.handler = (event, context, callback) => {
"use strict"
const pg = require('pg');
const connectionStr =
"postgres://username:password@host:port/db_name";
var client = new pg.Client(connectionStr);
client.connect(function(err){
if(err) {
callback(err)
}
callback(null, 'Connection established');
});
context.callbackWaitsForEmptyEventLoop = false;
};
代码抛出一个错误:找不到模块'pg'
我直接在AWS Lambda上写了它,如果有所不同,就不会上传任何内容。
我直接在AWS Lambda上写了它,如果有所不同,就不会上传任何内容。
是的,这有所不同! Lambda并不提供开箱即用的第三方库。 只要您依赖第三方库,就需要手动压缩或上传Lambda代码或使用API。
更多信息: Lambda执行环境和可用库
您需要参考创建部署包(Node.js)
简单方案 - 如果您的自定义代码仅需要AWS SDK库,那么您可以使用AWS Lambda控制台中的内联编辑器。 使用控制台,您可以编辑代码并将其上载到AWS Lambda。 控制台将使用相关配置信息将代码压缩到Lambda服务可以运行的部署包中。
和
高级方案 - 如果您正在编写使用其他资源的代码,例如用于图像处理的图形库,或者您希望使用AWS CLI而不是控制台,则需要首先创建Lambda函数部署包,然后使用控制台或CLI上传包。
像我这样的情况属于高级方案。 所以我们需要创建一个部署包然后上传它。 在这里我做了什么 -
注意:npm install会将节点模块安装在node_modules目录下的同一目录中,除非它在父目录中看到node_module目录。 首先执行npm init
然后执行npm install
以确保模块安装在同一目录中以进行部署。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.