CI/CD 为 Django 应用程序使用 AWS CodePipeline

CI/CD with AWS CodePipeline for a Django App

目前我有一个 AWS Codecommit 存储库和一个 AWS Elastic Beanstalk 环境,我在其中使用 eb deploy 通过 EB CLI 上传更新。

我有一些在 .gitignore 中被忽略的配置文件,我想建立一个 AWS CodePipeline,这样当我将更改推送到存储库时,自动 运行 测试功能并将更改直接上传到 Elastic Beanstalk

我尝试实现一个简单的管道,将代码推送到 CodeCommit 并部署到 Elastic Beantstalk,但我收到以下错误:

2019-09-09 11:51:45 UTC-0500 错误 "option_settings" 其中一个配置文件验证失败。更多详情请关注。

2019-09-09 11:51:45 UTC-0500 错误您无法从 VPC 中删除环境。在 VPC 之外启动一个新环境。

2019-09-09 11:51:45 UTC-0500 错误部署应用程序失败。

这是 Codecommit 中没有的 *.config 文件

option_settings:
  aws:ec2:vpc:
    VPCId: vpc-xxx
    Subnets: 'subnet-xxx'
  aws:elasticbeanstalk:environment:
    EnvironmentType: SingleInstance
    ServiceRole: aws-xxxx
  aws:elasticbeanstalk:container:python:
    WSGIPath: xxx/wsgi.py
  aws:elasticbeanstalk:healthreporting:system:
    SystemType: enhanced
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: xxxxsettings
    SECRET_KEY: xxxx
    DB_NAME: xxxx
    DB_USER: xxxx
    DB_PASSWORD: xxxx
    DB_HOST: xxx
    DB_PORT: xxxx
  aws:autoscaling:launchconfiguration:
    SecurityGroups: sg-xxx

我注意到一些语法与上面的有点不同:

子网: 值周围有“”,这是否会导致问题,如果您在这里有这个问题,“”应该围绕其他值吗?

从配置文件看来,您使用的是单实例。对于单实例,您不需要指定自动缩放启动配置。只需删除最后两行即可。

根据我所阅读的内容,我认为我不应该提交我的配置文件,而是将它们添加到 CodeBuild 中,以便它生成将部署到 ElasticBeanstalk 的 .zip 文件。