以下是一个使用AWS Lambda和Python的示例代码,用于根据文件名导入CSV文件:
import boto3
import csv
def lambda_handler(event, context):
# 获取S3对象
s3 = boto3.client('s3')
# 获取文件名
file_name = event['Records'][0]['s3']['object']['key']
# 从S3下载文件
response = s3.get_object(Bucket='your_bucket_name', Key=file_name)
file_content = response['Body'].read().decode('utf-8')
# 解析CSV文件
csv_content = csv.reader(file_content.splitlines(), delimiter=',')
for row in csv_content:
# 处理每一行数据
print(row)
return {
'statusCode': 200,
'body': 'CSV文件导入成功'
}
在上述代码中,我们首先导入所需的模块,包括boto3
用于与AWS服务进行交互,以及csv
用于解析CSV文件。
在lambda_handler
函数中,我们首先创建一个S3客户端对象,并从事件中提取出S3对象的文件名。然后,我们使用get_object
方法从S3中获取文件内容,并将其解码为UTF-8格式的字符串。
接下来,我们使用csv.reader
函数将文件内容解析为CSV格式,并使用一个循环逐行处理CSV数据。在这个示例中,我们简单地打印每一行数据,但你可以根据自己的需求进行处理。
最后,我们返回一个包含状态码和消息的字典,表示CSV文件导入成功。
请注意,你需要将代码中的your_bucket_name
替换为你实际使用的S3存储桶名称。此外,你还需要配置AWS Lambda函数的触发器,以确保它在有新的CSV文件上传时被调用。