Python AWS Lambda S3复制到Postgres成功,但没有';不复制数据
我有一个lambda函数,它使用psycopg2连接到我试图配置的Postgres RDS实例,以便它使用Python AWS Lambda S3复制到Postgres成功,但没有';不复制数据,python,postgresql,amazon-web-services,aws-lambda,Python,Postgresql,Amazon Web Services,Aws Lambda,我有一个lambda函数,它使用psycopg2连接到我试图配置的Postgres RDS实例,以便它使用aws\u s3.table\u import\u from\u s3方法将数据直接从s3复制到Postgres。lambda函数表示它执行成功,但是当我轮询数据库时,实际上没有插入任何数据。这是我的密码: import psycopg2 import os def lambda_handler(event, context): print(f'Received event {st
aws\u s3.table\u import\u from\u s3
方法将数据直接从s3复制到Postgres。lambda函数表示它执行成功,但是当我轮询数据库时,实际上没有插入任何数据。这是我的密码:
import psycopg2
import os
def lambda_handler(event, context):
print(f'Received event {str(event)}')
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
query_str = f"""
select aws_s3.table_import_from_s3(
'printer_mailings',
'',
'(format csv)',
'{bucket}',
'{key}',
'us-east-1')
;"""
try:
connection = psycopg2.connect(user = os.environ["user"],
password = os.environ["pwd"],
host = os.environ["host"],
port = os.environ["port"],
database = os.environ["db"])
cursor = connection.cursor()
print('connected successfully')
print(query_str)
cursor.execute(query_str)
print('Records added successfully')
except (Exception, psycopg2.Error) as error :
print ("Error while connecting to PostgreSQL", error)
finally:
#closing database connection.
if(connection):
cursor.close()
connection.close()
print("PostgreSQL connection is closed")
你知道为什么这样不行吗?如果我在PSQL中运行query\u str,它会工作,但在这里不会工作,即使我已成功连接到数据库。您只需提交即可
cursor.commit()
稍微更正一下,它应该是connection.commit(),但在其他情况下可以工作
cursor = connection.cursor()
print('connected successfully')
print(query_str)
cursor.execute(query_str)
connection.commit() # you missed this
print('Records added successfully')