Amazon s3 AWS::CloudFormation::Init无法从S3 Bucket创建文件,尽管通过AWS进行检索;s3 cp s3“;成功
在EC2实例初始化期间,我试图从S3存储桶中检索一个文件。 没有失败(语法)。但是缺少了一些东西。 初始_setup.sh文件未在根目录中创建 有那么多的文章都说明了相同的情况(或者至少根据我作为新手的拙劣理解) 初始化实例后,我使用aws cp s3://mybucket/initial_setup.sh进行了尝试 它可以工作,但我必须检查一下dos2unix 另一种方法是将其放入UserData中。但这也适用于命令。(^) 有些人也有几乎相同的情况,但有人提到: “要使任何命令正常工作,我们需要在Userdata中提供一个shell环境,没有它就无法创建任何文件” 我在安全组后面加了最后一行Amazon s3 AWS::CloudFormation::Init无法从S3 Bucket创建文件,尽管通过AWS进行检索;s3 cp s3“;成功,amazon-s3,aws-cloudformation-custom-resource,Amazon S3,Aws Cloudformation Custom Resource,在EC2实例初始化期间,我试图从S3存储桶中检索一个文件。 没有失败(语法)。但是缺少了一些东西。 初始_setup.sh文件未在根目录中创建 有那么多的文章都说明了相同的情况(或者至少根据我作为新手的拙劣理解) 初始化实例后,我使用aws cp s3://mybucket/initial_setup.sh进行了尝试 它可以工作,但我必须检查一下dos2unix 另一种方法是将其放入UserData中。但这也适用于命令。(^) 有些人也有几乎相同的情况,但有人提到: “要使任何命令正常工作,我们
UserData:
Fn::Base64: !Sub |
#!/bin/bash
echo "my test file" > /root/testfile.txt
因此,/root/testfile.txt被创建,其中包含指定的文本
但是bucket中所需的文件没有显示。我有一个错误的想法,即只要声明元数据内容,它也会被执行。但现在我已经完成了一半。 这是UserData下缺少的部分
UserData:
Fn::Base64: !Sub |
cd /tmp
wget https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz
gzip -df aws-cfn-bootstrap-latest.tar.gz
tar -xvf aws-cfn-bootstrap-latest.tar
chmod -R 755 /tmp/aws-cfn-bootstrap-1.4
pip install --upgrade pip
pip install --upgrade setuptools
pip install awscli --ignore-installed six &> /dev/null
export PYTHONPATH=/tmp/aws-cfn-bootstrap-1.4
/tmp/aws-cfn-bootstrap-1.4/bin/cfn-init -v --stack ${AWS::StackName} --resource EC2 --region ${AWS::Region}
事实上,这是最后一行,使差异。之前的行用于设置配置,因为使用的映像是非aws映像。因此,它并没有带来开箱即用的功能
UserData:
Fn::Base64: !Sub |
cd /tmp
wget https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz
gzip -df aws-cfn-bootstrap-latest.tar.gz
tar -xvf aws-cfn-bootstrap-latest.tar
chmod -R 755 /tmp/aws-cfn-bootstrap-1.4
pip install --upgrade pip
pip install --upgrade setuptools
pip install awscli --ignore-installed six &> /dev/null
export PYTHONPATH=/tmp/aws-cfn-bootstrap-1.4
/tmp/aws-cfn-bootstrap-1.4/bin/cfn-init -v --stack ${AWS::StackName} --resource EC2 --region ${AWS::Region}