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

如何使用Jenkins Pipeline将Web应用部署到AWS Elastic Beanstalk

Jenkins 实现 AWS EBS 自动部署方案

前置准备

  • 首先创建有权限操作EBS的IAM用户,权限最小化配置,至少包含elasticbeanstalk:CreateApplicationVersion、elasticbeanstalk:UpdateEnvironment、s3:PutObject权限,将生成的AK/SK存入Jenkins凭证管理,类型选择AWS Credentials,记录对应的凭证ID后续使用。
  • Jenkins节点安装必要依赖:可以选择安装「AWS Elastic Beanstalk Deployment Plugin」,也可以直接使用AWS CLI,使用CLI的话需要提前在Jenkins节点完成awscli的安装。
  • 确认你原有的Jenkins构建流程可以正常生成可用的war包,原有mvn构建逻辑无需调整。

方案1:使用EBS部署插件实现(配置简单,适合标准场景)

  1. 原有Pipeline中构建war包的步骤保持不变
  2. 新增EBS部署步骤,选择之前存储的AWS凭证,依次填写AWS区域、EBS应用名称、EBS环境名称
  3. 部署文件路径选择构建生成的war包路径
  4. 可以自定义版本号规则,比如使用${BUILD_NUMBER}关联Jenkins构建号,方便后续版本回溯和问题排查。

方案2:使用AWS CLI在Pipeline中实现(灵活度高,支持自定义流程)

Pipeline参考代码如下:

pipeline {
  agent any
  environment {
    AWS_REGION = "替换为你的AWS区域,例如cn-north-1"
    EBS_APP_NAME = "替换为你的EBS应用名称"
    EBS_ENV_NAME = "替换为你的EBS环境名称"
    // EBS对应的S3存储桶可以在EBS控制台的应用版本页面查询
    S3_BUCKET = "替换为EBS关联的S3存储桶名称"
    VERSION_LABEL = "v${BUILD_NUMBER}-${env.GIT_COMMIT.take(7)}"
    WAR_PATH = "target/替换为你的应用生成的war包名称.war"
    AWS_CREDENTIALS = credentials('替换为你之前存入Jenkins的AWS凭证ID')
  }
  stages {
    // 原有构建war包的步骤保留
    stage('构建WAR包') {
      steps {
        sh 'mvn clean package -DskipTests'
      }
    }
    stage('部署到AWS EBS') {
      steps {
        // 上传war包到S3
        sh 'aws s3 cp ${WAR_PATH} s3://${S3_BUCKET}/${VERSION_LABEL}.war --region ${AWS_REGION}'
        // 创建EBS应用版本
        sh 'aws elasticbeanstalk create-application-version --application-name ${EBS_APP_NAME} --version-label ${VERSION_LABEL} --source-bundle S3Bucket=${S3_BUCKET},S3Key=${VERSION_LABEL}.war --region ${AWS_REGION}'
        // 部署新版本到EBS环境
        sh 'aws elasticbeanstalk update-environment --environment-name ${EBS_ENV_NAME} --version-label ${VERSION_LABEL} --region ${AWS_REGION}'
        // 可选:等待部署完成验证环境状态
        sh 'aws elasticbeanstalk wait environment-updated --environment-name ${EBS_ENV_NAME} --region ${AWS_REGION}'
      }
    }
  }
}

注意:如果你的EBS环境使用的是官方Tomcat平台,直接上传war包即可正常运行,建议保持EBS的Tomcat大版本和你之前使用的Tomcat版本一致,避免出现兼容性问题。

内容的提问来源于stack exchange,提问作者Steve Green

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:24:05