我正在使用一个clojure web应用程序,使用leiningen 2进行构建和部署.这是一个非常香草的webapp,我使用compojure,ring和lein-beanstalk.我的应用程序需要使用数据库凭据和S3凭据,我不知道在我的应用程序中存储和访问它们的最佳方式.
处理敏感事物(如数据库凭据)的常见方法是什么,需要使用我的应用程序部署,使用leiningen 2?
我有可能在弹性豆串上设置环境变量,但是如果可能,我想避免这种路由.
解决方法
两种做法一个是使用环境变量,如果所有的配置值都是字符串,并且不需要任意嵌套,这是很好的.你最好的选择是Environ:
https://github.com/weavejester/environ
另一个不错的选择是从类路径中读取Clojure数据文件.您可以使用dev-resources dir将dev配置设置检查到项目中,并使用部署工具在classpath上放置生产配置.这里的优点是您的配置可以任意使用嵌套地图的Clojure值等.最好的事情是Carica:https://github.com/sonian/carica