我正在尝试引导AMI从私有S3存储桶下载文件。 我已正确设置凭据,当我尝试将文件从我的存储桶复制到EC2实例时,我可以在系统日志中看到它无法检测到我的凭据。 有什么奇怪的,当我使用SSH登录我的实例并使用相同的命令时,我成功地将我的文件复制到我的实例。
以下是UserData的bash脚本:
#! /bin/bash
yum update -y
sudo yum remove java-1.7.0-openjdk -y
sudo yum install java-1.8.0 -y
mkdir -p home/ec2-user/.aws
cat > home/ec2-user/.aws/config << EOF
[default]\n
aws_access_key_id=my_access_key_id\n
aws_secret_access_key=my_secret_key\n
region=eu-west-1
EOF
aws s3 cp s3://my_bucket_name/filename home/ec2-user/filename
谢谢,
答案 0 :(得分:1)
看起来您的脚本只会在当前目录为/
时运行,因为:
cat > home/ec2-user/...
是相对的。当您登录并碰巧与CWD=/
一起运行时,这将起作用。
我还没有测试过,但我怀疑cloudinit不会从/运行UserData。您可以通过使用前导更新脚本来证明这一点,或者我可以稍后再确认。