【发布时间】:2012-01-14 18:46:26
【问题描述】:
我需要应用程序服务器(即 beanstalk 实例)在启动时执行一些操作,我想运行一个 bash 脚本,该脚本传递给具有常规 EC2 实例可用的 UserData 属性的实例。
我发现了几个示例 CloudFormation 模板,它们使用常规 EC2 实例执行此操作,但没有使用 Beanstalk 的示例。我已尝试将此添加到应用程序的属性字段中:
"MyApp" : {
"Type" : "AWS::ElasticBeanstalk::Application",
"Properties" : {
"Description" : "MyApp description",
"ApplicationVersions" : [{
...
}],
"UserData" : {
"Fn::Base64" : { "Fn::Join" : ["", [
"#!/bin/bash\n",
"touch /tmp/userdata_sucess\n"
]]
}},
...
我也尝试添加到环境部分:
"MyAppEnv" : {
"Type" : "AWS::ElasticBeanstalk::Environment",
"Properties" : {
"ApplicationName" : { "Ref" : "MyApp" },
"Description" : "MyApp environment description",
"UserData" : {
"Fn::Base64" : { "Fn::Join" : ["", [
"#!/bin/bash\n",
"touch /tmp/userdata_sucess\n"
]]
}},
"TemplateName" : "MyAppConfiguration",
"VersionLabel" : "First Cloud version"
}
},
在这两种情况下,这都会导致尝试创建堆栈时失败。有谁知道是否可以使用 CloudFormation 将 UserData 传递给 Beanstalk 实例。如果是这样 - 你能举个例子吗?
【问题讨论】:
标签: amazon-ec2 amazon-web-services amazon-elastic-beanstalk amazon-cloudformation