AWS Elastic Beanstalk:重新加载配置文件而不重新部署整个应用程序?

Posted

技术标签:

【中文标题】AWS Elastic Beanstalk:重新加载配置文件而不重新部署整个应用程序?【英文标题】:AWS Elastic Beanstalk: Reload configs files without redeploying the whole app? 【发布时间】:2016-06-03 06:06:23 【问题描述】:

有没有办法在不使用eb deploy 重新部署整个应用程序的情况下加载 .ebextention 中的内容?看来重启 Apache 还不够。

配置文件示例:

container_commands:
  01_remove_old_cron_jobs:
    command: "crontab -r || exit 0"
  02_cronjobs:
    command: "cat .ebextensions/cron_jobs.txt > /etc/cron.d/cron_job && chmod 644 /etc/cron.d/cron_job"
    leader_only: true
  03_setup_apache:
    command: "cp .ebextensions/enable_mod_deflate.conf /etc/httpd/conf.d/enable_mod_deflate.conf"

【问题讨论】:

【参考方案1】:

简单的答案是否定的。配置文件仅在部署时作为 EB 脚本管道的一部分执行。如果您只想执行一次操作,只需eb ssh 实例并手动执行这些操作。下次部署时,它们将通过您的配置文件自动完成。

【讨论】:

【参考方案2】:

您可以添加另一个 container_commands 例如:

04_reload_files:
    command: "sudo service httpd reload"

请注意,这适用于 Amazon Linux,但不适用于您需要执行的 Amazon Linux 2:

04_reload_files:
    command: "sudo systemctl reload httpd.service"

AWS 有一种新的首选方式在部署期间使用以下结构(对于 apache)而不是 .ebextensions 与网络服务器配置进行交互:

~/workspace/my-app/
|-- .ebextensions
|   -- httpd-proxy.config
|-- .platform
|   -- httpd
|      -- conf.d
|         -- port5000.conf
|         -- ssl.conf
-- index.jsp

更多信息在这里:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux-extend.html

【讨论】:

以上是关于AWS Elastic Beanstalk:重新加载配置文件而不重新部署整个应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk Tomcat - 内存使用率高

将应用程序部署到 AWS Elastic Beanstalk 环境

AWS Elastic Beanstalk:通过缓存避免在 EB 应用程序更新时重新下载应用程序的静态文件

AWS Elastic beanstalk - 更改解决方案堆栈名称

超时后无法部署到 AWS Elastic Beanstalk

AWS Elastic Beanstalk 上的流明 - .env