AWS Elastic Beanstalk。仅在新实例或手动上执行.ebextensions命令

时间:2015-02-18 12:30:39

标签: amazon-web-services amazon-ec2 elastic-beanstalk

我已配置我的.ebextensions文件夹,以便在领导者ec2实例上下载并安装Windows服务。 问题是,每次我想要更新到新版本的Web应用程序(不是Windows服务)时,这些命令会再次执行,并尝试重新安装该服务。

另一方面。每次我只想更新寡妇服务时,我必须通过ssh或rdp手动完成工作。或者重新部署触发.ebextensions命令的整个应用程序。

我是否有更优雅的工作流程?

1 个答案:

答案 0 :(得分:2)

您遇到的是Elastic Beanstalk最薄弱的环节。您在同一个EB实例上托管了两个不同的服务,这是EB不支持的(我同意这是蹩脚的) 我只解决了#34;设置一次"需要通过在setup extentension配置文件中附加测试。就我而言,它是一个Linux盒子,但你可以做类似的事情:

commands:
    10_setup_win_service:
        test: test ! -f /opt/elasticbeanstalk/.post-provisioning-complete
        command: <...>

现在要完成这个黑客,我有一个名为.ebextensions/99_finalize_setup.config的文件:

commands:
  99_write_post_provisioning_complete_file:
    command: touch /opt/elasticbeanstalk/.post-provisioning-complete

这种方法确保win服务只安装一次。

现在,对于win服务的维护问题,您无法使用EB工具集。您对此处选项的理解是正确的 - 使用SSH自动完成工作,或者通过登录服务器手动完成。