在同一个git存储库的弹性beanstalk上部署到具有不同env变量的不同环境

时间:2018-03-05 19:31:01

标签: git environment-variables elastic-beanstalk

使用“eb deploy”在Elastic Beanstalk上部署到不同环境的多个环境分支管理git存储库的环境变量配置文件的最佳实践是什么?

我有一个带有prod和dev分支的git存储库,EB设置了prod和dev环境,以及每个env的环境配置文件(prod的env.config和dev的env_dev.config)。 env文件位于.gitignore中,但不在.ebignore中,因此它们不在源代码管理中,而是部署到EB。

如何设置它以便env.config仅部署到生产环境,而env_dev.config仅部署到dev?我问AWS支持,他们说没有办法在环境级别上有条件告诉它要包含哪个配置文件。

另一个想法是在每个分支中都有一个.ebignore文件忽略了另一个分支的env.config文件,但是当我将开发分支合并到生产时,这个文件也会出现。

1 个答案:

答案 0 :(得分:0)

您可以使用ebextensions的container_commands:

来实现此目的
  1. 以某种方式获取ENVIRONMENT环境变量。
  2. 创建一个.ebextension container command,它基本上会source获取来源的正确文件。 .ebextension文件,例如env_sourcer.config,如下所示:

    container_commands:
      if [ $ENVIRONMENT == 'PRODUCTION' ]; then source ./env.config; else source ./env_dev.config; fi