Копирование файла из S3 в EC2 с помощью подхода к пользовательским данным - PullRequest
0 голосов
/ 29 марта 2020

Я искал решение для этой задачи, все, что я нахожу подходами CLI, которые мне не нужны.

Я просто хочу:

У меня есть S3 Bucket, у которого есть один закрытый файл, файл может быть файлом изображения / zip-файла.

И я хочу, чтобы при запуске любого экземпляра EC2 он должен был перенести этот файл из корзины S3 в каталог экземпляра EC2.

И для этого Я хочу использовать только подход к пользовательским данным EC2.

1 Ответ

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

Поле Пользовательские данные в Amazon EC2 передает информацию в экземпляр, который доступен для приложений, работающих в этом экземпляре.

Экземпляры Amazon EC2, запускаемые с помощью предоставляемых Amazon AMI (например, Amazon *) 1018 * 2) включает в себя программу Cloud-Init, которая просматривает пользовательские данные и, если сценарий предоставляется, запускает этот сценарий при первой загрузке экземпляра.

Следовательно, вы можете настроить сценарий (передается через пользовательские данные), который запускается при первом запуске экземпляра. Скрипт будет работать как пользователь root. Ваш сценарий может скопировать файл из Amazon S3 с помощью AWS интерфейса командной строки (CLI) , например:

#!
aws s3 cp s3://my-bucket/foo.txt /home/ec2-user/foo.txt
chown ec2-user foo.txt

Обратите внимание, что вам потребуется назначить роль IAM экземпляру, который имеет разрешение на доступ к корзине. CLI AWS будет использовать эти разрешения для копирования файла.

Вы упоминаете, что вы не sh используете CLI AWS. Вместо этого вы могли бы написать программу, которая вызывает API Amazon S3, используя предпочтительный язык программирования (например, Python), но использовать CLI намного проще.

...