2013-04-22 1 views
0

У меня есть s3cmd и EC2 api предварительно настроенный AMI. При создании нового экземпляра с пользовательскими данными для загрузки файлов из ведра S3 я сталкиваюсь с некоторыми следующими проблемами.Пользовательский скрипт данных не загружает файлы из ведра S3?

in user data У меня есть код для
- создание нового каталога на новом экземпляре.
- загрузка файла из ведра AWS S3.

Сценарий

#! /bin/bash 
cd /home 
mkdir pravin 
s3cmd get s3://bucket/usr.sh >> temp.log 

Но над сценарием, mkdir pravin создает новый каталог с именем Pravin но s3cmd get s3://bucket/usr.sh не файл загрузки из AWS S3 ведра.

также создает temp.log, но он пуст.

Так как я могу решить эту проблему?

ответ

0

Я подозреваю, что пользователю, выполняющему скрипт пользовательских данных, не хватает файла .s3cfg. Возможно, вам придется найти способ указать местоположение файла при запуске этого скрипта.

+0

: - как я должен делать это? – Pravin

+1

Передайте параметр '-c FILE' или' --config = FILE' в s3cmd, указывая на каталог, содержащий '.s3cfg' – datasage

0

Альтернативным решением могло бы быть использование экземпляра, которому назначена назначенная ему роль IAM, и aws-cli, что потребует установки Python. Все это может быть достигнуто путем введения следующих в user-data поле для экземпляра:

#!/bin/bash 

apt-get update 
apt-get -y install python-pip 
apt-get -y install awscli 

mkdir pravin 
aws s3 cp s3://bucket/usr.sh temp.log --region {YOUR_BUCKET_REGION} 

Примечание: выше применимо только для Ubuntu.

А потом экземплярам IAM роль вы бы прикрепить политику, как так:

{ 
    "Version":"2012-10-17", 
    "Statement":[{ 
     "Effect":"Allow", 
     "Action":"s3:*", 
     "Resource":"arn:aws:s3:::YourBucketName/*" 
     } 
    ] 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^