带有适用于Django应用程序的AWS CodePipeline的CI / CD

时间:2019-09-09 18:45:56

标签: amazon-web-services amazon-elastic-beanstalk aws-codepipeline aws-codebuild aws-codecommit

当前,我有一个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

3 个答案:

答案 0 :(得分:0)

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

子网:值周围有“”,是否可能引起问题,如果您在此处遇到此问题,“是否应该在其他值附近”?

答案 1 :(得分:0)

从配置文件中看,您正在使用单个实例。对于单一实例,您无需指定自动缩放启动配置。只需删除最后两行就可以了。

答案 2 :(得分:0)

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