从lambda连接到Redshift并使用python获取一些记录

时间:2018-01-17 19:27:29

标签: python amazon-web-services amazon-s3 lambda aws-lambda

是能够从lambda成功连接到Redshift的任何人。

我想从Redshift表中获取一些记录并提供给我的机器人(aws lex)

请建议 - 此代码在lambda外部工作,如何使其在lambda中工作。

import psycopg2

con=psycopg2.connect(dbname= 'qa', host='name',
port= '5439', user= 'dwuser', password= '1234567')

cur = con.cursor()

cur.execute("SELECT * FROM pk.fact  limit 4;")

for result in cur:
    print (result)
cur.close()
con.close()

1 个答案:

答案 0 :(得分:2)

这是节点lambda,用于连接Redshift并从中提取数据。

exports.handler = function(event, context, callback) {
    var response = {
        status: "SUCCESS",
        errors: [],
        response: {},
        verbose: {}
    };

    var client = new pg.Client(connectionString);
    client.connect(function(err) {
        if (err) {
            callback('Could not connect to RedShift ' + JSON.stringify(err));
        } else {
            client.query(sql.Sql, function(err, result) {
                client.end();
                if (err) {
                    callback('Error Cleaning up Redshift' + err);
                } else {
                    callback(null, ' Good ' + JSON.stringify(result));
                }
            });
        }
    });
};

希望它有所帮助。