用于连接到 Redshift 和查询表的 Lambda

Lambda to connect to Redshift and query table

提问人:Saira Fayyaz 提问时间:11/16/2023 更新时间:11/16/2023 访问量:16

问:

我正在尝试使用 Python 3.9 中的 Lambda 函数从 Redshift 检索数据。我最初尝试使用 Glue 连接器,但它导致了超时问题。然后我尝试使用 Boto3 会话,遇到了同样的超时问题。当我尝试导入 psycopg2 时,尽管为 Python 3.9 添加了层,但它无法识别该命令。 代码在这里 导入熊猫 导入redshift_connector 导入 BOTO3 #import psycopg2 从 datetime 导入 datetime 将 AWSWRANGLER 导入为 WR def lambda_handler(event, context): 会话 = boto3.session.Session()

#Define a redshift data client
redshiftDataClient = session.client('redshift-data', region_name = region_name)
#con=psycopg2.connect("dbname=dev host=redshifttest-xyz.cooqucvshoum.us-west-2.redshift.amazonaws.com     port=5439 user=master password=secret")
#con_redshift = wr.redshift.connect("aws-sdk-pandas-redshift")
con = wr.redshift.connect("my-glue-connection")
#with con.cursor() as cursor:
#    cursor.execute("SELECT * FROM ep_ext.table Limit 5 ;")
#    print(cursor.fetchall())
#con.close()
df = wr.redshift.read_sql_query("SELECT * FROM ep_ext.table Limit 5", con=con)
print(df)
con.close()

任何帮助 谢谢

我尝试了在线帮助,但找不到帮助。期待任何指导。

python amazon-redshift aws-glue

评论

1赞 DataWrangler 11/22/2023
超时问题可能是由于您的 Redshift 集群位于 VPC 上,而 Lambda 无法访问它。您可能还需要将 Lambda 也位于同一 VPC 网络上才能进行连接。

答: 暂无答案