0

我有 s3cmd 和 EC2 api 预配置的 AMI。在使用用户数据创建新实例以从 S3 存储桶下载文件时,我面临以下一些问题。

在用户数据中,我有代码
- 在新实例上创建新目录。
- 从 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但它是空的。

那么我该如何解决这个问题呢?

4

2 回答 2

1

另一种解决方案是使用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/*"
      }
   ]
}
于 2015-05-03T04:05:24.560 回答
0

我怀疑运行用户数据脚本的用户缺少.s3cfg文件。在运行此脚本时,您可能需要找到一种方法来指示文件的位置。

于 2013-04-22T03:21:42.083 回答