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

Ars*_*lan 5 environment-variables amazon-web-services laravel autoscaling

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

仅供参考:我们没有使用ElasticBeanstalk,因为我熟悉在弹性 beantalk 上,EB仪表板上有一个选项可以添加环境变量和 env 文件在新实例创建时将创建的路径,但我们没有使用ElasticBeanstalk,我们使用的是AutoScaling服务根据我的发现,AWS 没有为AutoScaling服务提供此类功能。

str*_*gjz 0

有多个选项可以为应用程序配置环境变量。

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

  2. 将环境变量存储在 Dynamodb 中的环境变量中,并在启动时在用户数据中查找这些变量并在环境变量中进行设置。(除非包含秘密/连接字符串等,否则无法在 DDB 中存储加密秘密。)

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

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