You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Elastic Beanstalk升级后eb-app.target不存在及Node.js版本报错如何解决

问题根因说明
  • EBS的Node.js平台读取版本配置有优先级规则:环境软件配置 > .ebextensions配置 > package.json的engines字段,你只修改了package.json的话,如果上层有更高优先级的旧配置,依然会读取旧的版本号
  • package.json的版本格式不符合EBS要求,没有加v前缀或者使用了范围匹配(比如12.x、~12.16.0),EBS要求精确匹配支持的版本号
  • 修改package.json后没有重新打包部署,旧的部署包依然携带老版本配置
  • 部署流程因为Node版本安装失败提前中断,根本没有生成eb-app.target对应的systemd服务单元,所以重启服务会提示单元不存在
解决步骤
  1. 配置EBS环境的Node.js版本(优先级最高)
  • 登录AWS控制台进入Elastic Beanstalk对应环境,点击左侧菜单栏「配置」
  • 找到「软件」板块点击「编辑」,在「Node.js版本」下拉框中选择日志提示中支持的精确版本,比如v12.22.3,保存后等待环境更新完成
  1. 修正package.json配置
  • 确保package.json中engines字段的Node版本和你上一步选择的版本完全一致,必须带v前缀,示例如下:
{
  "name": "your-project",
  "version": "1.0.0",
  "engines": {
    "node": "v12.22.3"
  }
}
  1. 排查.ebextensions配置冲突
  • 检查项目根目录下.ebextensions文件夹内的所有.config文件,是否存在aws:elasticbeanstalk:container:nodejs: NodeVersion的配置项,如果有将其修改为你选择的版本,或者删除该配置项让其继承环境配置
  1. 重新部署应用
  • 将修改后的全部代码重新打包为EBS可识别的zip包,上传到环境重新部署,或者使用eb deploy命令推送新版本

部署完成后Node版本会正确安装,应用部署流程可以走完,eb-app.target服务会自动生成,环境Severe状态会自动恢复。

内容的提问来源于stack exchange,提问作者Lakshminarayanan S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:09:03