【问题标题】:User Data script not downloading files from S3 bucket?用户数据脚本未从 S3 存储桶下载文件?
【发布时间】:2013-04-14 20:22:06
【问题描述】:

我有 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,但它是空的。

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

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ec2 file-transfer


    【解决方案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/*"
          }
       ]
    }
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 将-c FILE 或--config=FILE 选项传递给指向.s3cfg 所在目录的s3cmd
      猜你喜欢
      • 2015-09-01
      • 2012-10-24
      • 1970-01-01
      • 2015-05-20
      • 2019-05-30
      • 2017-02-16
      • 2013-10-15
      • 2019-09-06
      • 1970-01-01
      相关资源
      最近更新 更多