Amazon ec2 如何使用CloudFormation将UserData传递给Beanstalk实例
我需要应用服务器,即beanstalk实例,在启动时执行一些操作,并且我考虑运行一个传递给实例的bash脚本,该脚本具有UserData属性,可用于常规EC2实例 我发现了几个示例CloudFormation模板,它们可以在常规EC2实例中实现这一点,但没有Beanstalk的示例。我已尝试将其添加到应用程序的属性字段:Amazon ec2 如何使用CloudFormation将UserData传递给Beanstalk实例,amazon-ec2,amazon-web-services,amazon-elastic-beanstalk,amazon-cloudformation,Amazon Ec2,Amazon Web Services,Amazon Elastic Beanstalk,Amazon Cloudformation,我需要应用服务器,即beanstalk实例,在启动时执行一些操作,并且我考虑运行一个传递给实例的bash脚本,该脚本具有UserData属性,可用于常规EC2实例 我发现了几个示例CloudFormation模板,它们可以在常规EC2实例中实现这一点,但没有Beanstalk的示例。我已尝试将其添加到应用程序的属性字段: “MyApp”:{ “类型”:“AWS::ElasticBeanstalk::应用程序”, “财产”:{ “说明”:“MyApp说明”, “应用程序版本”:[{ ... }],
“MyApp”:{
“类型”:“AWS::ElasticBeanstalk::应用程序”,
“财产”:{
“说明”:“MyApp说明”,
“应用程序版本”:[{
...
}],
“用户数据”:{
“Fn::Base64”:{“Fn::Join”:[“”[
“#!/bin/bash\n”,
“touch/tmp/userdata\u成功\n”
]]
}},
...
我还尝试将以下内容添加到环境部分:
“MyAppEnv”:{
“类型”:“AWS::ElasticBeanstalk::Environment”,
“财产”:{
“ApplicationName”:{“Ref”:“MyApp”},
“说明”:“MyApp环境说明”,
“用户数据”:{
“Fn::Base64”:{“Fn::Join”:[“”[
“#!/bin/bash\n”,
“touch/tmp/userdata\u成功\n”
]]
}},
“TemplateName”:“MyAppConfiguration”,
“VersionLabel”:“第一个云版本”
}
},
在这两种情况下,这都会导致尝试创建堆栈时失败。是否有人知道是否可以使用CloudFormation将用户数据传递给Beanstalk实例。如果可以,请提供一个示例。如果您想拥有Beanstalk提供的所有优势,例如不必为Amazon为您提供的操作系统进行修补,则这不是问题可能。一个选项是创建自定义AMI,其中包括所需的脚本,但随后必须使用安全补丁自行管理操作系统。请阅读更多。您可以使用
执行此操作。ebextensions
,请参阅
例如:
packages:
yum:
bison: []
libpcap-devel: []
libpcap: "1.4.0"
golang: "1.13.4"
git: []
commands:
20_show_info_pkgs:
env:
GOPATH: /usr/local/gocode
PATH: $PATH:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/usr/local/bin
ignoreErrors: true
command: |
ls -l /usr/local /usr/local/g*
env
yum list bison libpcap-devel libpcap golang git
which git
which go
git --version
go version
goreplay version
true
@tronda,你知道6年后它是否还是原来的样子吗?很抱歉,从这篇文章开始,我就没有与Beanstalk合作过。@AlexanderF。这个例子与设置用户数据无关。我是否遗漏了什么?