我有一个shell脚本(userdata文件),想知道是否有一个CLI命令参数允许用户使用userdata文件启动Cloudformation堆栈?
答案 0 :(得分:10)
在模板中,为实例userdata使用CloudFormation参数:
{
"Parameters": {
"UserData": {
"Type": "String"
}
},
"Resources": {
"Instance": {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"UserData" : { "Ref" : "UserData" },
...
}
},
...
}
}
假设您正在使用类似Unix的命令行环境,请像这样创建堆栈:
aws cloudformation create-stack --stack-name myStack \
--template-body file://myStack.json \
--parameters ParameterKey=UserData,ParameterValue=$(base64 -w0 userdata.sh)
答案 1 :(得分:1)
创建堆栈时,您的用户数据必须存在于CloudFormation模板中。您可以编写脚本以从文件中读取用户数据,并在创建堆栈之前将其插入CloudFormation堆栈。请注意,您可能需要对用户数据进行格式更改(请参阅http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#cfn-ec2-instance-userdata)。