代码之家  ›  专栏  ›  技术社区  ›  user1381745

带AWS ElasticBeanstalk的CD

  •  0
  • user1381745  · 技术社区  · 6 年前

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   vivekyad4v    6 年前

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

    • 不要忽略 .ebextensions ,您将需要它制作CD&很高兴 保持版本控制。(人们将其添加到 .gitignore 这样就不会 自Beanstalk以来,开发人员之间的协作冲突 从以开发人员为中心的环境开始)
    • 将配置放入 .ebextension 静态和;不会在cloudwatch(磁盘、内存等)等环境中发生变化& 自动缩放物料。
    • 动态片段( .elasticbeanstalk )在进行部署(如应用程序、环境名称等)时应包括在内。您可以 在CD中使用shell作为构建步骤(&A);根据作业更改配置。我 按以下方式操作-

    连续部署生成shell脚本

    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
    
    • 您现在可以通过使用将其部署到Beanstalk --staged

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

    您需要提供AWS访问密钥;通过环境变量保密。

    希望这能帮助你解决这个问题。

    注意事项- 您甚至可以配置 .E扩展 & .弹性豆茎 CD配置中的目录,以便它不会签入GIT。