我对AWS和lambda还不熟悉,如果这是一个愚蠢的问题,请原谅。我想要实现的是将电子表格加载到s3存储桶中,基于该上传触发lambda,让lambda将csv加载到pandas中并进行操作,然后将数据框架写回到第二个s3存储桶中。
我已经阅读了很多有关压缩Python脚本、所有库和依赖项以及上传的信息,并且这是另一个问题。我也已经弄清楚了如何在将文件上传到S3存储桶时触发lambda,以及如何将该文件自动复制到第二个s3存储桶中。
我遇到的困难是找不到任何关于“中间部分”的信息,即在lambda函数内部将文件加载到pandas中并在其中操作文件。
第一个问题:这种操作是否可能? 第二个问题:我如何从s3存储桶“获取”文件并将其加载到pandas中? 会像这样吗?
import pandas as pd
import boto3
import json
s3 = boto3.resource('s3')
def handler(event, context):
dest_bucket = s3.Bucket('my-destination-bucket')
df = pd.read_csv(event['Records'][0]['s3']['object']['key'])
# stuff to do with dataframe goes here
s3.Object(dest_bucket.name, <code for file key>).copy_from(CopySource = df)
我真的不知道这是否正确,这只是一个猜测。任何帮助都将不胜感激,因为显然我不太懂这方面的知识!
handler
方法中使用Python脚本,也可以编写一个单独的方法。它解释了如何执行此操作,在你的情况下,你需要将其放在Lambda函数中,因为你已经配置了Lambda触发器,所以它应该可以工作。 - Usman Azhar