2012-12-31 7 views
11

私は、構築とデプロイメントのためにleiningen 2を使用して、clojure Webアプリケーションに取り組んでいます。これは非常にバニラのwebappです。私はcompojure、ring、lein-beanstalkを使用しています。私のアプリケーションは、データベースの資格情報とS3の資格情報の両方を使用する必要があります。データベースの資格情報と貸し出し?

データベース資格情報などの機密情報を扱う一般的な方法は、私のアプリにデプロイする必要があり、leiningen 2を使用していますか?

私は弾力のある豆の茎に環境変数を設定することは可能ですが、可能ならばその経路を避けたいと思います。

答えて

9

二つの方法でそれらを読んで渡します。 1つは環境変数を使用することです。これは、すべての設定値が文字列であり、任意のネストを必要としない場合に便利です。ここであなたの最善の策は、Environ:https://github.com/weavejester/environ

です。もう1つの良いオプションは、クラスパスからClojureデータファイルを読み込むことです。 dev-resourcesディレクトリでdev configの設定をプロジェクトにチェックインし、展開ツールを使用してクラスパス上にプロダクション設定を配置することができます。

https://github.com/bbbates/confijulate: - 私はこのパターンを実装するために作成したライブラリをhttps://github.com/sonian/carica

+0

これはありがとう、環境は私が必要としていたものです!もう一度おかげさまで、また、leinのために、それは素晴らしいです –

5

私は環境変数を使用して変数環境を追跡しています。 ;-)

その他は、彼らが-Ddb=fooオプションを使用して、それを行うには(System/getProperty "db")

1

はConfijulateを見てみましょう:ここでの利点は、このための最も素晴らしい事はカリカあるなど、あなたの設定は、ネストされたマップで任意のClojureの値可能です

パスワードまたはキーを外部ファイルに格納し、システムプロパティを使用してロードできます。 S3またはdBに接続する関数では、同じメカニズムでロードされたaキーを使用して解読できます。あなたが読み込んだファイルが、Webユーザ(TomcatやJbossか、Beanstalkで使用しているどんなコンテナでも)だけ読み込み可能であることを確認してください。

関連する問題