Amazon ec2 如何使用CloudFormation将UserData传递给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说明”, “应用程序版本”:[{ ... }],

我需要应用服务器,即beanstalk实例,在启动时执行一些操作,并且我考虑运行一个传递给实例的bash脚本,该脚本具有UserData属性,可用于常规EC2实例

我发现了几个示例CloudFormation模板,它们可以在常规EC2实例中实现这一点,但没有Beanstalk的示例。我已尝试将其添加到应用程序的属性字段:

“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。这个例子与设置用户数据无关。我是否遗漏了什么?