Как скопировать файл из каталога Docker в корзину S3 с помощью Python3 - PullRequest
0 голосов
/ 23 октября 2019

В моем файле Docker ниже приведен код, когда мой код Python выполняется с использованием AWS Cloud Formation & Pipeline, он создает .txt file (abc.txt) under /proj.

FROM python:3
WORKDIR /proj

Сеанс Docker завершается, когда завершается выполнение задания Python. Итак, непосредственно перед завершением работы с Python я хочу скопировать файл abc.txt (из Docker) в корзину AWS S3. Это возможно? Как мне этого добиться.

Уже пробовал это

RUN aws s3 COPY /proj/ s3://filepath_on_s3 

Первые 2 строки моего файла Docker:

FROM python:3
WORKDIR /proj

Решение : Сниже строки кода теперь я могу перенести мой файл (который находится в docer vm) в корзину S3. Необходимо настроить awscli на докере, после чего с помощью boto3 в PY-коде используется команда upload_file.

####Docker file
RUN apt-get update && apt-get install -y awscli
ENV AWS_ACCESS_KEY_ID=ABBXXXXXXXXXXXXXXX
ENV AWS_SECRET_ACCESS_KEY=XARXXXXXXXXXXXXXXx
ENV AWS_DEFAULT_REGION=us-west-2
###Python code
s3 = boto3.resource('s3')
s3.Bucket('Mybucket').upload_file('/proj/'+logfile, 'Logs/'+logfile)
...