首页 > 解决方案 > 如何使用 Node.js 中的 Lambda 函数从 Amazon RDS 获取数据?

问题描述

我在 Aurora PostgreSQL 中有一个数据库,并且我正在使用 API 网关来调用在 Node.js 中为 API 创建的 Lambda 函数。这是我没有 URL 参数的简单 GET 请求的代码:

var pg = require("pg");

exports.handler = function(event, context) {

    var conn = “//Connection string";
    var client = new pg.Client(conn);
    client.connect();

    //var id = event.id;
    console.log('Connected to PostgreSQL database');
    var query = client.query("SELECT * from USERS;");
    query.on("row", function (row, result) {
        result.addRow(row);
    });
    
    query.on("end", function (result) {
        var jsonString = JSON.stringify(result.rows);
        var jsonObj = JSON.parse(jsonString);
        console.log(jsonString);
        client.end();
        context.succeed(jsonObj);
    });
};

我能够成功地从此表中获取所有记录。我必须对代码和 API 网关本身进行哪些更改才能使用 WHERE 子句的参数发出 GET 请求以从其用户名中选择特定用户,并发出 POST 请求以将新用户插入表中?

标签: postgresqlamazon-web-servicesaws-lambdaaws-api-gateway

解决方案


对于代理 lambda 集成,提交到 API 网关的所有 GET 和 POST 参数都将在event对象中可用。因此,您必须获取为事件提交的值WHEREINSERT从事件中提交的值。

event结构如图所示:

您还需要确保从 lambda 中返回正确的数据。返回数据也需要正确的格式


推荐阅读