如何在AWS AutoScaling中添加Laravel env文件

时间:2017-06-15 12:24:21

标签: laravel amazon-web-services environment-variables autoscaling

我正在开发一个在AMAZON AWS上托管的laravel项目。我们还使用 AWS AutoScaling 服务,因为可以动态添加/删除新实例,我也使用 AWS CodeDeploy ,因此无论何时创建新实例,它都将从github中提取代码,因为我们在git上没有包含环境变量文件,所以新实例将没有环境变量文件,因此应用程序将无法运行。我也不想在git上包含环境变量文件,因为不建议在git上包含该文件。如果我忽略了这里的最佳实践并在git上添加env文件,那么仍然存在问题,因为我有不同的分支和不同的env文件,所以当我合并代码时它也将替换env文件。那么这个案例的最佳实践或解决方案是什么?

仅供参考:我们没有使用 ElasticBeanstalk ,因为我熟悉弹性beanstalk, EB 仪表板上有一个选项可以添加环境变量和env文件的路径在创建新实例时创建,但我们没有使用 ElasticBeanstalk ,我们正在使用 AutoScaling 服务,根据我的调查结果,AWS不提供 AutoScaling 服务。

1 个答案:

答案 0 :(得分:0)

有几个选项可以为应用程序配置env变种。

  1. 将env文件放在S3上并在启动时在用户数据/启动配置中为该环境自动缩放下拉该env的配置文件。另外,要将其锁定在环境角色中,只允许访问该存储桶。

  2. 将env vars存储在Dynamodb中以用于env,并在启动时查看用户数据中的那些并设置为env vars。 (除非包含秘密/连接字符串,等等,无法在DDB中存储加密的秘密。)

  3. 使用领事https://www.consul.io/

  4.   

    KV商店:应用程序可以将Consul的分层键/值存储用于任何目的,包括动态配置,功能标记,协调,领导者选举等。简单的HTTP API使其易于使用。