Git VCS上的弹性Beanstalk.config文件?

Git VCS上的弹性Beanstalk.config文件?,git,laravel,amazon-web-services,amazon-elastic-beanstalk,Git,Laravel,Amazon Web Services,Amazon Elastic Beanstalk,我正在使用AWS Elastic Beanstalk部署一个Laravel应用程序,并创建了一个文件夹.ebextensions,其中存储了我的所有.config文件 该项目在使用GIT的VCS下,我不确定是否要将.config添加到存储库中,因为它包含我的一些凭据 能否将.config文件移动到s3并用于部署?切勿将凭据和其他机密信息放入VCS/Git中 理想情况下,您可以将机密放在某种类型的保险库中,您的EB应用程序可以在运行时访问该保险库,从而永远不会存储信息本身。然而,有时这是不可能的/

我正在使用AWS Elastic Beanstalk部署一个Laravel应用程序,并创建了一个文件夹.ebextensions,其中存储了我的所有.config文件

该项目在使用GIT的VCS下,我不确定是否要将.config添加到存储库中,因为它包含我的一些凭据


能否将.config文件移动到s3并用于部署?

切勿将凭据和其他机密信息放入VCS/Git中

理想情况下,您可以将机密放在某种类型的保险库中,您的EB应用程序可以在运行时访问该保险库,从而永远不会存储信息本身。然而,有时这是不可能的/不实际的

对于Elastic Beanstalk,可以执行以下操作:

在.ebextenions中创建.config文件。 使用诸如change me之类的值将您的机密/凭据设置添加到配置文件中。 将应用程序部署到Elastic Beanstalk后,修改应用程序的配置软件设置,并将设置值从change me更改为适当的值。
在弹性豆茎控制台中

配置>软件配置>环境属性

你会看到这样的屏幕

您可以在此处填写环境变量

这意味着您不需要在.config文件中设置环境变量,也不需要将.env文件提交给VCS

输入控制台的环境变量将复制到elastic beanstalk在该应用程序/环境中为您管理的任何EC2框中

Laravel中的.env文件旨在促进开发,因此不应在生产中使用。该文件中的任何内容都应该创建为真实的环境变量,并且不需要存在.env文件


通过phpdotenv创建的.env文件只是在运行时创建环境变量,如果环境变量实际上已经存在,这是不必要的。

您的.config文件应该在VCS中作为代码片段提供-当然没有您的凭据。凭据不应存储在任何位置,一次只能存在于一个给定位置,无重复。但是,没有凭据的参数很少是问题。好的,我已经将没有凭据的.config文件放在VCS中,我需要创建一个包含凭据的文件。在EB中我该怎么做?我不确定Snippet的意思是什么。最简单的方法是在elastic beanstalk环境中设置一个环境变量,然后您可以通过配置文件中的变量访问这些变量。是的,我已经这样做了,但我仍然需要根应用程序文件夹中的一个.env文件,其中包含这些凭据,以便我的应用程序正常工作因为它是基于Laravel框架的。Laravel运行所需的所有凭据都在.env文件中,每次我使用eb deploy命令时,它都会被删除,因为它不在VCS下。如果我这样做,我将不得不ssh到实例中,并每次更新我的凭据。我是否可以将我的凭据放入config.yml或任何其他位置,以便在每次更新时自动执行此过程。否。数据仍然是Git格式的,这是您希望避免的。尝试将您的信息放入EB控制的环境变量中。然后,当您的应用程序启动时,将信息从那里传输到您的.env文件。我想@ben swinburne指出,我可以从控制台将凭据保存在Elastic Beanstalk配置中。通过将它们放入.ebextensions文件,它们的设置名称将预先添加到您的EB应用程序属性页中。