前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过 CircleCi 2.1 和 TravisCI 将应用程序部署到 Elastic Beanstalk

通过 CircleCi 2.1 和 TravisCI 将应用程序部署到 Elastic Beanstalk

原创
作者头像
腾龙
发布2022-06-02 10:00:11
1.2K0
发布2022-06-02 10:00:11
举报
文章被收录于专栏:边城码农边城码农

通过 CircleCi 2.1 测试和部署到 Amazon Elastic Beanstalk


在互联网上搜索了一种通过circleCI将我的应用程序部署到Elastic beanstalk的直接方法之后,我想我可以帮助其他试图通过这篇文章做同样的事情的人。在github上签出ryansimms,因为这种方法是基于他在CircleCI 2.0上的方法,这是我让它工作的起点。

首先按照以下步骤设置 AWS IAM 用户(建议使用 CircleCI 的唯一用户))

  • 在 AWS 服务上搜索 IAM
  • 选择“用户”(或“用户组”,例如,如果您希望将部署用户分组在一起。TravisCI 和 CircleCI)
  • 在用户下,点击“添加用户”'
  • 设置用户名并仅勾选访问键 - 编程访问作为访问类型
  • 单击下一步(设置权限),然后选择“直接附加现有策略”,然后搜索并选择管理员访问 - AWSElasticBeanstalk 和 AmazonS3FullAccess。注意:这曾经只是 AWSElasticBeanstalkFullAccess,但后来被弃用>确保将用户的 Access-Key-IDSecret-Access-key 复制到安全位置。
  • 单击下一步(标签),下一步(查看),最后单击“创建用户”。

设置您的弹性豆茎应用程序

  • 在 AWS 服务上搜索 Elastic Beanstalk
  • '创建一个新应用程序',并为其提供您的应用程序名称。
  • '创建新环境',并相对于它将要托管的git分支名称命名它,例如 我这样做是因为我有一个过渡分支和主分支,所以在我们的EB配置中,我们将替换为CircleCi提供的$CIRCLE_BRANCH环境变量,因此在部署过渡分支时,例如,它将知道部署到Elastic Beanstalk上的环境。BRANCHNAME-my-applicationBRANCHNAMEstaging-my-application
  • 等待环境上线。之后,您可以在[environment-name].[application-region].elasticbeanstalk.com

将部署用户环境变量添加到 CircleCi

在 CircleCI 上,转到

  • 项目设置>环境变量添加这些键:及其值AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY

将配置添加到应用程序代码.elasticbeanstalk/config.yml

  • 在应用程序代码的根目录中创建此文件夹
  • 使用代码段更新 config.yml 的值(根据您的设置)。
代码语言:javascript
复制
branch-defaults:
  master:
    environment: your-app-name-$CIRCLECI_BRANCH
  develop:
    environment:  your-app-name-$CIRCLECI_BRANCH
global:
  application_name:  your-app-name
  default_platform: 64bit Amazon Linux 2/3.4.16
  default_region: your-app-region (e.g. us-east-1)
  sc: git

注意:请确保application_name与您在执行“创建新应用程序”步骤时在 Elastic Beanstalk 中调用的应用程序完全相同。

另请注意:请勿在此处设置配置文件:值,配置文件将根据您设置AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY环境变量进行设置。

更新您的 .circleci/config.yml

如下所示,并根据您的设置

代码语言:javascript
复制
version: 2.1
jobs:
  # add commands to run your test if you have them otherwise skip this
  test-me:
    docker:
      - image: cimg/node:14.19
    steps:
      - run: my test script
  # deployment starts here
  deploy-me:
      docker:
        - image: cimg/python:3.10
      steps:
        - checkout
        - run: pip3 --version
        - run:
            working_directory: /
            name: installing ebcli
            command: pip3 install awsebcli --upgrade --user
        - run: eb --version
        - run:
            name: deploying with awsebcli
            command: eb deploy  your-app-name-$CIRCLE_BRANCH
workflows:
  test-then-deploy:
    jobs:
      - test-me
      - deploy-me:
          context: aws-creds
          filters:
            branches:
              only:
                - master
                - staging
          requires:
            - testme

请注意,您的应用程序名称应与 Elastic Beanstalk 上的名称相同

现在我们等待

  • 提交,推送并等待CircleCi完成运行。如果在 CircleCI 上一切顺利,您应该会在 Elastic Beanstalk 仪表板上看到您的应用程序更新。

附加功能,仅限用户使用TravisCI

理想情况下,将此步骤添加到文件中应该可以正常工作deploy.travis.yml

代码语言:javascript
复制
deploy:
   provider: elasticbeanstalk
   region: "us-east-1"
   app: "your-app-name"
   env: " your-app-environment-name"
   bucket: elasticbeanstalk-us-east-1-398485943999
   bucket_path: "your-app-name"
   on:
     branch: master
   access_key_id: $AWS_ACCESS_ID
   secret_access_key: $AWS_SECRET_KEY

注意:将 us-east-1 替换为您的应用程序区域。 注意2:AWS_ACCESS_ID和AWS_SECRET_KEY环境变量应在TravisCI仪表板中设置。

当然,欢迎提出更正和建议,以改进做法。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 通过 CircleCi 2.1 测试和部署到 Amazon Elastic Beanstalk
    • 首先按照以下步骤设置 AWS IAM 用户(建议使用 CircleCI 的唯一用户))
      • 设置您的弹性豆茎应用程序
        • 将部署用户环境变量添加到 CircleCi
          • 将配置添加到应用程序代码.elasticbeanstalk/config.yml
            • 更新您的 .circleci/config.yml
              • 现在我们等待
                • 附加功能,仅限用户使用TravisCI
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档