Beanstalk-Deploy入门教程:3分钟快速实现GitHub Actions自动部署
【免费下载链接】beanstalk-deployGitHub action (and command line script) to deploy apps to Elastic Beanstalk项目地址: https://gitcode.com/gh_mirrors/be/beanstalk-deploy
Beanstalk-Deploy是一款强大的GitHub Action和命令行工具,专为快速部署应用到AWS Elastic Beanstalk而设计。它能帮助开发者自动化部署流程,只需简单配置即可实现从代码提交到应用上线的全流程自动化,极大提升开发效率。
🚀 什么是Beanstalk-Deploy?
Beanstalk-Deploy作为一款专注于AWS Elastic Beanstalk部署的工具,主要功能包括上传文件到S3、在Elastic Beanstalk创建新版本并将其部署到指定环境。它会等待部署完成,期间记录环境更新信息,若部署失败则以非零退出码终止,确保部署过程的可靠性。
🔑 核心优势
- 自动化部署:无需手动操作,通过GitHub Actions实现代码提交后自动部署
- 简单配置:只需提供应用名称、环境名称、版本标签等基本参数即可
- 实时监控:部署过程中实时记录环境信息,便于问题排查
- 灵活部署:支持部署新包或现有版本,满足不同场景需求
📋 准备工作
在开始使用Beanstalk-Deploy前,需要完成以下准备:
- 拥有AWS账号并创建Elastic Beanstalk应用和环境
- 准备AWS访问密钥(包含Access Key和Secret Key)
- 确保代码仓库已托管在GitHub
- 生成应用部署包(zip格式)
🔧 快速上手:GitHub Actions配置步骤
步骤1:创建工作流文件
在你的GitHub仓库中创建.github/workflows/deploy.yml文件,用于定义部署流程。
步骤2:配置基本信息
以下是一个完整的部署配置示例,你可以根据实际情况修改参数:
name: Deploy to Elastic Beanstalk on: push: branches: - master jobs: build: runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v2 - name: Generate deployment package run: zip -r deploy.zip . -x '*.git*' - name: Deploy to EB uses: einaregilsson/beanstalk-deploy@v21 with: aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }} aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} application_name: MyApplicationName environment_name: MyApplication-Environment version_label: ${{ github.sha }} region: us-west-2 deployment_package: deploy.zip步骤3:设置AWS密钥
在GitHub仓库的Settings > Secrets and variables > Actions中添加以下密钥:
AWS_ACCESS_KEY_ID:你的AWS访问密钥IDAWS_SECRET_ACCESS_KEY:你的AWS密钥
步骤4:提交并触发部署
将配置文件提交到GitHub仓库,推送到master分支后将自动触发部署流程。
⚙️ 关键参数说明
Beanstalk-Deploy提供了丰富的配置参数,以下是常用参数的说明:
| 参数名称 | 说明 | 是否必填 |
|---|---|---|
| aws_access_key | AWS访问密钥ID | 是 |
| aws_secret_key | AWS密钥 | 是 |
| application_name | Beanstalk应用名称 | 是 |
| environment_name | Beanstalk环境名称 | 否 |
| version_label | 版本标签 | 是 |
| region | AWS区域 | 是 |
| deployment_package | 部署包路径 | 否 |
📌 部署现有版本
如果需要部署已存在的版本,只需省略deployment_package参数,示例如下:
- name: Deploy to EB uses: einaregilsson/beanstalk-deploy@v21 with: aws_access_key: ${{ secrets.AWS_ACCESS_KEY_ID }} aws_secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} application_name: MyApplicationName environment_name: MyApplication-Environment version_label: 12345 region: us-west-2💡 使用技巧
版本描述:可以使用
version_description参数添加版本描述,如提交SHA值:version_description: ${{ github.SHA }}等待时间设置:通过
wait_for_environment_recovery参数设置环境恢复等待时间,适用于资源较少的环境:wait_for_environment_recovery: 60使用现有S3桶:通过
existing_bucket_name参数指定现有S3桶,避免重复创建:existing_bucket_name: my-existing-bucket
🚀 作为命令行工具使用
除了作为GitHub Action,Beanstalk-Deploy还可以作为命令行工具使用。首先通过npm安装:
npm install -g beanstalk-deploy然后使用以下命令部署:
beanstalk-deploy MyApplicationName MyApplication-Environment 12345 us-west-2 deploy.zip🔒 AWS权限要求
为确保Beanstalk-Deploy正常工作,AWS用户需要附加以下策略:
- AWSElasticBeanstalkWebTier
- AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy
📝 注意事项
- S3上传采用简单PUT请求,不支持分块上传,建议部署包大小控制在几MB以内
- 部署失败时不会自动回滚,需要手动处理
- 与官方EB CLI不同,Beanstalk-Deploy不与Git集成,仅处理已创建的zip包
通过Beanstalk-Deploy,你可以轻松实现GitHub Actions自动部署到AWS Elastic Beanstalk,让部署过程变得简单高效。无论是小型项目还是大型应用,Beanstalk-Deploy都能满足你的部署需求,节省宝贵的开发时间。
想要开始使用Beanstalk-Deploy?只需克隆仓库并按照本教程配置即可:
git clone https://gitcode.com/gh_mirrors/be/beanstalk-deploy立即体验自动化部署的便捷,让开发更专注于代码本身!
【免费下载链接】beanstalk-deployGitHub action (and command line script) to deploy apps to Elastic Beanstalk项目地址: https://gitcode.com/gh_mirrors/be/beanstalk-deploy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考