【问题标题】:Run a Python Script Stored in an AWS S3 Bucket on EC2 and Save Resulting File Back into S3 Bucket在 EC2 上运行存储在 AWS S3 存储桶中的 Python 脚本并将生成的文件保存回 S3 存储桶
【发布时间】:2020-03-27 23:54:35
【问题描述】:

我有一个 Python 脚本存储在 S3 存储桶中。我想让它在 AWS 中运行(大概是一个 EC2 实例)并将其输出(一个 pickle 文件)保存回同一个 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)
...

想知道我是如何做到这一点的(只需要运行一次)。

【问题讨论】:

    标签: python amazon-web-services amazon-s3 amazon-ec2 pickle


    【解决方案1】:

    您的 EC2 实例需要对 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 
    

    【讨论】:

    • 不使用 aws s3 cp ,我们可以在 python 脚本本身中执行这两项操作吗?有人可以使用 BOTO3 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2016-03-07
    • 2020-10-21
    相关资源
    最近更新 更多