Как загрузить файл из контейнера Docker, который работает на Fargate, в корзину S3? - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть контейнерный проект, выходные файлы записываются в локальный контейнер (и удаляются по завершении выполнения), контейнер запускается на Fargate, я хочу написать Python сценарий, который может вызывать модель, которая выполняется на Fargate и получить выходной файл и загрузить его в корзину S3, я очень новичок в AWS и Docker, кто-то может прислать мне пример или поделиться некоторыми идеями о том, как этого добиться?

Я думаю, что ответ @jbleduigou усложняет ситуацию, теперь я могу использовать команду для копирования файла на локальном компьютере из контейнера, мне просто нужно написать скрипт для вызова модели и скопировать этот файл из и загрузить его на S3, я знаю концепцию, но не смог найти пример. Кто-нибудь может дать мне пример для достижения этой цели?

Ответы [ 2 ]

2 голосов
/ 08 апреля 2020

Вам необходимо выполнить команду S3 Copy через AWS CLI или ее эквивалент в BOTO3 Python клиент .

$aws s3 cp /localfolder/localfile.txt s3://mybucket

или эквивалент в Python:

import boto3

client = boto3.client('s3')

response = client.put_object(
    Body='c:\HappyFace.jpg',
    Bucket='examplebucket',
    Key='HappyFace.jpg'
)

print(response)

Чтобы ваш контейнер имел право загружать файлы в S3, вам необходимо настроить Роль выполнения задачи и назначить ее для вашей задачи.

2 голосов
/ 08 апреля 2020

Будет ли ваш python скрипт находиться вне вашего docker контейнера? Если это так, вы можете смонтировать том efs в свой контейнер. Скопируйте выходные файлы на этот том внутри вашего контейнера.

Затем вы можете смонтировать тот же том в своем экземпляре ec2, на котором выполняется скрипт.

...