如何在微服务架构中正确管理.env文件

rey*_*359 7 environment service environment-variables microservices dotenv

我已经在一个具有微服务架构的项目上工作了一段时间,其中每个服务都有自己的环境变量,这些变量通过.env每个服务/存储库的文件进行处理。

这些变量的很大一部分与其他服务 IP 和外部资源密钥相关,它们在每个环境中都不同:开发、登台和生产,因此这.env不是一个简单的变量。

我们的开发速度很快,大多数时候,这些变量会随着新功能和/或解决与该服务相关问题的团队成员实施的更改而变化。这导致几乎每次其他人想要使用某个服务时,他们都会被阻止,并且必须.env先更新文件。因此,我们最终总是互相请求和共享.env文件,并且所有文件都缺乏“真相来源” .env

我想知道其他人以前是否遇到过这个问题或类似的问题,以及采取了什么方法来解决或改进它。

是否有任何应用程序或框架可以.env以自动化的方式在团队中共享和管理文件?

提前致谢!

编辑

需要明确的是,这些不会被添加到源代码管理中,而是在 CI/CD 上得到正确处理。

我更多地讨论了本地开发、本地设置服务以及.env以简单的方式保持本地文件最新。

rey*_*359 4

作为一些同事和社区在r/SoftwareEngineeringr/softwaredevelopment中提供的所有反馈的摘要(谢谢大家),一些最有用的资源是:

我想引用u/nickthemagicman 的评论,我认为这是需要牢记的重要一点:

但由于事实上你仍然使用 .env 文件这么长时间,而且事情一直如此混乱,而且到现在还没人解决这个问题,听起来你最大的障碍将是让团队接受,因为听起来也没有集中管理。