不同的.ebextensions取决于环境

时间:2017-03-15 21:47:08

标签: amazon-ec2 elastic-beanstalk

我有两个独立的环境来管理我的应用程序,一个主要环境,一个带有负载均衡器的web服务器,一个辅助环境,一个运行crons的小型层工作者。

我的.ebextensions包含许多实例和负载均衡器配置,例如:

01 amazon.config

Resources:
  # LB SG
  AWSEBLoadBalancerSecurityGroup:
    Type: "AWS::EC2::SecurityGroup"
    Properties:
....

当我通过eb deploy worker-env部署到我的工作人员实例时,有没有办法忽略这个单个文件

如果文件未被忽略,则会导致错误,因为工作人员没有负载均衡器。

1 个答案:

答案 0 :(得分:0)

正如 astroanu 在上面的评论中所写的那样,一种方法是根据您的环境制作一个版本。以下是根据环境使用 eb create 和 custom-$(ENV_TYPE).config 文件从我的 Makefile 中提取的内容。 eb deploy 应该可以使用相同类型的参数。

    git archive -v -o $(ZIP) --format=zip HEAD
    zip $(ZIP) .ebextensions/custom-$(ENV_TYPE).config
    aws s3 cp "$(ZIP)" "s3://$(BUCKET)/$(APP_NAME)/$(VERSION).zip"
    aws elasticbeanstalk create-application-version --application-name "$(APP_NAME)" --version-label "$(VERSION)" --description '$(DESCRIPTION)' --source-bundle "S3Bucket=$(BUCKET),S3Key=$(APP_NAME)/$(VERSION).zip"
    eb create --process --version "$(VERSION)" --branch_default --instance-types "$(INSTANCE_TYPES)" --cname "$(CNAME)"