2013-04-22 49 views
0

我有s3cmd和EC2 api預配置AMI。使用用戶數據創建新的實例以從S3存儲桶下載文件時,我遇到以下一些問題。用戶數據腳本沒有從S3存儲桶下載文件?

在用戶數據中,我的代碼爲
- 在新實例上創建新目錄。
- 從AWS S3存儲桶下載文件。

Script是

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

但在上面的腳本中,mkdir pravin創建新的目錄與名稱普拉但s3cmd get s3://bucket/usr.sh不能下載從AWS S3存儲文件。

它也創建了temp.log但它是空的。

那麼我該如何解決這個問題呢?

回答

0

我懷疑運行用戶數據腳本的用戶缺少.s3cfg文件。運行此腳本時,您可能需要找到指示文件位置的方法。

+0

: - 我應該怎麼做呢? – Pravin 2013-04-22 05:49:39

+1

將'-c FILE'或'--config = FILE'選項傳遞給s3cmd,指向保存'.s3cfg'的目錄 – datasage 2013-04-22 05:53:17

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/*" 
     } 
    ] 
} 
相關問題