【问题标题】:Different .ebextensions depending on environment不同的 .ebextensions 取决于环境
【发布时间】:2021-01-25 22:41:33
【问题描述】:

我有 2 个独立的环境来管理我的应用程序,一个主环境,一个带有负载平衡器的网络服务器,一个辅助环境,一个运行 crons 的小型工作人员。

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

01amazon.config

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

当我通过 eb deploy worker-env 部署到我的工作实例时,有什么方法可以忽略这个单个文件

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

【问题讨论】:

  • 不适用于非容器命令。
  • 不幸的是,这是以特定于环境的方式应用配置的唯一方法(至少我知道)。
  • 我所做的是运行一个 gulp 命令来根据传递给它的环境参数复制所有 ebextension 文件
  • 您找到解决方案了吗?我对无法在工作人员上部署的 SSL 证书有类似的问题。

标签: amazon-ec2 amazon-elastic-beanstalk


【解决方案1】:

正如 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)"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    • 2013-01-21
    • 2012-04-12
    • 2018-04-04
    相关资源
    最近更新 更多