AWS 弹性豆茎。仅在新实例上或手动执行 .ebextensions 命令
Posted
技术标签:
【中文标题】AWS 弹性豆茎。仅在新实例上或手动执行 .ebextensions 命令【英文标题】:AWS Elastic Beanstalk . Execute .ebextensions commands only on new Instance or Manually 【发布时间】:2015-04-19 11:04:27 【问题描述】:我已将 .ebextensions 文件夹配置为在领导者 ec2 实例上下载并安装 Windows 服务。 问题是每次我想更新到新版本的 Web 应用程序(不是 Windows 服务)时,这些命令都会再次执行并尝试再次重新安装服务。
在另一边。每次我只想更新寡妇服务时,我都必须通过 ssh 或 rdp 手动完成工作。或者重新部署触发 .ebextensions 命令的整个应用程序。
有没有更优雅的工作流程我正在跳过?
【问题讨论】:
【参考方案1】:您遇到了 Elastic Beanstalk 最薄弱环节。您在同一个 EB 实例上托管两个不同的服务,EB 不支持(我同意这很蹩脚)。 我通过将测试附加到设置扩展配置文件来解决“仅设置一次”的需求。在我的例子中,它是一个 linux 机器,但你可以做类似的事情:
commands:
10_setup_win_service:
test: test ! -f /opt/elasticbeanstalk/.post-provisioning-complete
command: <...>
现在要完成这个 hack,我有一个名为 .ebextensions/99_finalize_setup.config
的文件:
commands:
99_write_post_provisioning_complete_file:
command: touch /opt/elasticbeanstalk/.post-provisioning-complete
这种方法确保 win 服务只安装一次。
现在对于 win 服务的维护问题,您不能使用 EB 工具集。您对此处选项的理解是正确的 - 要么使用 SSH 自动完成工作,要么通过登录服务器手动完成。
【讨论】:
以上是关于AWS 弹性豆茎。仅在新实例上或手动执行 .ebextensions 命令的主要内容,如果未能解决你的问题,请参考以下文章