WAR部署时Elastic Beanstalk忽略.ebextensions下Datadog配置问题
Elastic Beanstalk 99datadog.config 不生效排查思路
- 优先确认.ebextensions目录放置位置:Elastic Beanstalk默认仅会读取上传至平台的部署包根目录下的.ebextensions配置,不会扫描应用解压后WAR包内部的.ebextensions目录。你当前部署后.ebextensions位于webapps/api/路径下,属于WAR包解压后的内部目录,不符合EB的配置读取规则,这是最常见的配置不生效原因。你提到的另一款同结构应用配置正常生效,大概率是该应用的.ebextensions实际放置在外层上传的ZIP部署包根目录,而非内嵌在WAR包内部。
- 校验配置文件本身合法性:确认99datadog.config是合法的YAML/JSON格式,没有语法错误、缩进问题,文件名无隐藏后缀(例如99datadog.config.txt这类误命名),文件权限为可读状态。
- 确认打包逻辑没有过滤配置:如果你采用直接上传WAR包的部署方式,需要确认本地打包WAR时.ebextensions目录没有被.gitignore、maven/gradle打包配置过滤,可本地解压上传的WAR包确认根目录确实存在.ebextensions目录和对应配置文件。
- 校验EB平台版本一致性:对比当前问题环境和正常生效应用的Elastic Beanstalk平台版本,部分旧版Tomcat平台镜像不支持读取WAR包内部的.ebextensions配置,仅支持外层ZIP部署包携带的配置。
- 扩展日志排查范围:除cfn-init-cmd.log外,额外检查
/var/log/eb-engine.log、/var/log/cfn-init.log两个日志文件,搜索ebextensions、99datadog.config相关关键字,确认是否存在配置读取失败、跳过的相关记录。
内容的提问来源于stack exchange,提问作者Tony Shepherd
相关产品推荐
相关产品推荐

