AWS 弹性豆茎。仅在新实例上或手动执行 .ebextensions 命令
AWS Elastic Beanstalk . Execute .ebextensions commands only on new Instance or Manually
我已将我的 .ebextensions 文件夹配置为在领导 ec2 实例上下载并安装 windows 服务。
问题是每次我想更新到新版本的 Web 应用程序(不是 windows 服务)时,这些命令都会再次执行并尝试重新安装该服务。
另一边。每次我只想更新寡妇服务时,我都必须通过 ssh 或 rdp 手动完成工作。或者重新部署触发 .ebextensions 命令的整个应用程序。
有没有我跳过的更优雅的工作流程?
您遇到的 Elastic Beanstalk 最弱 link。您在同一个 EB 实例上托管两个不同的服务,EB 不支持这种服务(我同意这很蹩脚)。
我通过将测试附加到设置扩展配置文件来解决 "setup only once" 需求。在我的例子中,它是一个 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 自动执行工作,要么通过登录服务器手动完成。
我已将我的 .ebextensions 文件夹配置为在领导 ec2 实例上下载并安装 windows 服务。 问题是每次我想更新到新版本的 Web 应用程序(不是 windows 服务)时,这些命令都会再次执行并尝试重新安装该服务。
另一边。每次我只想更新寡妇服务时,我都必须通过 ssh 或 rdp 手动完成工作。或者重新部署触发 .ebextensions 命令的整个应用程序。
有没有我跳过的更优雅的工作流程?
您遇到的 Elastic Beanstalk 最弱 link。您在同一个 EB 实例上托管两个不同的服务,EB 不支持这种服务(我同意这很蹩脚)。
我通过将测试附加到设置扩展配置文件来解决 "setup only once" 需求。在我的例子中,它是一个 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 自动执行工作,要么通过登录服务器手动完成。