Запустите Python скрипт, хранящийся в AWS S3 Bucket на EC2 и сохраните полученный файл обратно в S3 Bucket - PullRequest
0 голосов
/ 27 марта 2020

У меня есть сценарий 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)
...

Хотите знать, как я go об этом (нужно запустить это только один раз).

1 Ответ

1 голос
/ 27 марта 2020

Ваш экземпляр EC2 должен иметь доступ на чтение / запись к S3. Например, используя роль, основанную на политике AmazonS3FullAccess.

Затем просмотрите экземпляр, который вы можете использовать aws s3 copy, команда cli , чтобы скопировать файлы между экземпляром и корзиной S3.

Тогда внутри вашего экземпляра:

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