三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Beanstalk-Deploy入门教程:3分钟快速实现GitHub Actions自动部署

Beanstalk-Deploy入门教程:3分钟快速实现GitHub Actions自动部署

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前,需要完成以下准备:

  1. 拥有AWS账号并创建Elastic Beanstalk应用和环境
  2. 准备AWS访问密钥(包含Access Key和Secret Key)
  3. 确保代码仓库已托管在GitHub
  4. 生成应用部署包(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访问密钥ID
  • AWS_SECRET_ACCESS_KEY:你的AWS密钥

步骤4:提交并触发部署

将配置文件提交到GitHub仓库,推送到master分支后将自动触发部署流程。

⚙️ 关键参数说明

Beanstalk-Deploy提供了丰富的配置参数,以下是常用参数的说明:

参数名称说明是否必填
aws_access_keyAWS访问密钥ID
aws_secret_keyAWS密钥
application_nameBeanstalk应用名称
environment_nameBeanstalk环境名称
version_label版本标签
regionAWS区域
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

💡 使用技巧

  1. 版本描述:可以使用version_description参数添加版本描述,如提交SHA值:

    version_description: ${{ github.SHA }}
  2. 等待时间设置:通过wait_for_environment_recovery参数设置环境恢复等待时间,适用于资源较少的环境:

    wait_for_environment_recovery: 60
  3. 使用现有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

📝 注意事项

  1. S3上传采用简单PUT请求,不支持分块上传,建议部署包大小控制在几MB以内
  2. 部署失败时不会自动回滚,需要手动处理
  3. 与官方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),仅供参考

← 返回列表