CD with AWS ElasticBeanstalk



既然正确的做法似乎是.ebextensions添加到gitignore中,那么在使用EB作为平台时处理CD的最佳方法是什么?我不能只将我的管道配置为在成功的构建上运行eb deploy,因为构建框不知道与相关堆栈相关的任何配置。

您可以通过执行以下操作来实现它 -

  • 不要忽略.ebextensions,您将需要它用于CD,这很好 保持版本控制。(人们将其添加到.gitignore,以便它不会 自 Beanstalk 以来协作时开发人员之间的冲突 从以开发人员为中心的环境开始)
  • 将配置放入静态的.ebextension中,并且在云监视(磁盘,内存等)等环境中不会更改。 自动缩放的东西。
  • 在进行部署时应包括动态部分(.elasticbeanstalk),如应用程序、环境名称等。您可以 使用 shell 作为 CD 中的构建步骤,并根据您的作业更改配置。我 做如下事情——

持续部署构建外壳脚本

mkdir -p .elasticbeanstalk
cat > .elasticbeanstalk/config.yml << EOF
branch-defaults:
default:
environment: dev-api
environment-defaults:
dev-api:
branch: null
repository: null
global:
application_name: v2
default_ec2_keyname: DEV
default_platform: arn:aws:elasticbeanstalk:ap-southeast-1::platform/Multi-container
Docker running on 64bit Amazon Linux/2.7.5
default_region: ap-southeast-1
include_git_submodules: true
instance_profile: null
platform_name: null
platform_version: null
profile: null
sc: git
workspace_type: Application
EOF
  • 您现在可以使用--staged将其部署到 Beanstalk

    eb deploy $APP_ENVIRONMENT -l ${BUILD_TAG}_${GIT_COMMIT} --timeout 30 --staged | tee deployment.log
    

您需要通过环境变量提供 AWS Access Key & Secret。

希望这有帮助或为您提供解决此问题的方法。

注意 -您甚至可以在CD配置中配置.ebextensions.elasticbeanstalk目录,这样它就不会签入到GIT中。

最新更新