AWS Elastic Beanstalk – 在环境之间切换环境variables

我正在使用Elastic Beanstalk的aws:elasticbeanstalk:application:environment命名空间来使用env varsconfiguration我的环境。 如何为不同的环境设置不同的值,例如开发与生产。

发展:

 option_settings: aws:elasticbeanstalk:application:environment: REDIS_HOST: localhost 

生产:

 option_settings: aws:elasticbeanstalk:application:environment: REDIS_HOST: prod.redis.server.com 

如何更改取决于您的部署方法。

您可以使用的一个选项是在您的.config文件中设置一个伪造的值:

 option_settings: aws:elasticbeanstalk:application:environment: REDIS_HOST: change me 

然后,在部署之后,使用AWSpipe理控制台或使用EB CLI修改variables:

 eb setenv REDIS_HOST=prod.redis.server.com 

如果您使用CloudFormation部署您的EB应用程序,则可以将该值作为CloudFormation模板中OptionSettings字段的一部分提供:

  "EBConfigurationTemplate" : { "Type" : "AWS::ElasticBeanstalk::ConfigurationTemplate", "Properties" : { "ApplicationName" : { "Ref" : "EBApplication" }, "Description" : "Configuration Template", "OptionSettings" : [ { "Namespace" : "aws:elasticbeanstalk:application:environment", "OptionName" : "REDIS_HOST", "Value" : { "Ref" : "RedisHostInputParameter" } }, ] 

也可能有其他方法,但是它们将取决于部署方法。