运行 Python 脚本存储在 EC2 上的 AWS S3 存储桶中并将结果文件保存回 S3 存储桶

Run a Python Script Stored in an AWS S3 Bucket on EC2 and Save Resulting File Back into S3 Bucket

我有一个 Python 脚本存储在 S3 存储桶中。我想 运行 在 AWS 中(大概是一个 EC2 实例)并将其输出(一个泡菜文件)保存回同一个 S3 存储桶中。

在 Python 脚本本身中,您指定一个文件名并调用 to_pickle:

def metadata_df(search_api,hashtags,since,until,filename,lat_long_only=True):

    if os.path.exists(filename):
        df = pickle.load(open(filename, 'rb'))
    else:
        df = ...

    df.to_pickle(filename)
    return df

...

if __name__ == "__main__":
    pickle_name = yesterday+'_'+'tweets.pkl'
    metadata_df(api.search, hashtags, since=yesterday,until=today, filename=pickle_name,lat_long_only=True)
...

想知道我是怎么做到的(只需要运行一次)。

您的 EC2 实例需要 Read/Write 访问 S3。例如,使用基于 AmazonS3FullAccess 策略的角色。

然后深入了解实例,您可以使用 aws s3 copy cli command 在实例和 S3 存储桶之间复制文件。

然后在您的实例中:

aws s3 cp s3://mybucket/mypythonscript.py .
python mypythonscript.py
aws s3 cp ./resultfile.ext s3://mybucket