我正在开发一个在AMAZON AWS上托管的laravel项目。我们还使用 AWS AutoScaling 服务,因为可以动态添加/删除新实例,我也使用 AWS CodeDeploy ,因此无论何时创建新实例,它都将从github中提取代码,因为我们在git上没有包含环境变量文件,所以新实例将没有环境变量文件,因此应用程序将无法运行。我也不想在git上包含环境变量文件,因为不建议在git上包含该文件。如果我忽略了这里的最佳实践并在git上添加env文件,那么仍然存在问题,因为我有不同的分支和不同的env文件,所以当我合并代码时它也将替换env文件。那么这个案例的最佳实践或解决方案是什么?
仅供参考:我们没有使用 ElasticBeanstalk ,因为我熟悉弹性beanstalk, EB 仪表板上有一个选项可以添加环境变量和env文件的路径在创建新实例时创建,但我们没有使用 ElasticBeanstalk ,我们正在使用 AutoScaling 服务,根据我的调查结果,AWS不提供 AutoScaling 服务。
答案 0 :(得分:0)
有几个选项可以为应用程序配置env变种。
将env文件放在S3上并在启动时在用户数据/启动配置中为该环境自动缩放下拉该env的配置文件。另外,要将其锁定在环境角色中,只允许访问该存储桶。
将env vars存储在Dynamodb中以用于env,并在启动时查看用户数据中的那些并设置为env vars。 (除非包含秘密/连接字符串,等等,无法在DDB中存储加密的秘密。)
KV商店:应用程序可以将Consul的分层键/值存储用于任何目的,包括动态配置,功能标记,协调,领导者选举等。简单的HTTP API使其易于使用。