1

私のプロジェクトには、1つの開発環境、3つのテスト環境、1つの統合環境、および最終的な実稼働環境があります。 this answerで述べたように環境に特化したappsettings.ENV.jsonをそれぞれの環境に公開する

が故に、我々はproject.json次られた環境の特定のappsettings.ENVNAME.json

のために行くことにしました - これにより

"publishOptions": { 
    "include": [ 
    ... 
    "appsettings.json", 
    "appsettings.*.json", 
    ... 
    ] 
} 

を、我々はにappsetting.PROD.jsonを公開しました。異なるTEST環境であっても間違っています。

は、私たちはthis-

.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true); 

のように、起動中のAppSettingsファイルの読み込みを制御することができます。しかし、この場合にも、他のファイルが利用可能であることを理解しています。 (間違いチェンジのenv名前で誰かと、それは他の環境の詳細を拾って起動します)(当社の監査チームごとなど)今

は、我々は唯一の対応、環境へのappsettings.ENVNAME.json特定の環境を公開する必要があります。

project.jsonを使用してこれを達成するにはどうすればよいですか?このために別のスクリプトを書く必要がありますか?このシナリオに取り組む最も良い方法は何ですか?

+0

_間違って変更した人が環境名を変更すると、他の環境の詳細を取得し始めます_間違ってappsettings.envname.jsonファイルを間違って発行し、他の環境の詳細を取得する_同じタイプの手動エラーが発生しやすくなります。あなたの例では、オプションではなく、環境ファイルを必須にすることができます。誰かが存在しない環境名に変更すると、エラーになります。問題は、あなたのパッケージが環境モードであるかどうかを決めるのではなく、あなたのサーバーを展開することです – Tseng

+0

それを必須にしても、他の環境ファイルは私の公開フォルダの一部になります。監査チームはこれを承認しません。ここでは、環境名に基づいて公開プロセスを自動化することを意図しています。 – Vishal26

+0

このような厳格な監査プロセスについてお話ししますが、開発者はステージングとプロダクションに直接公開できますか?これを別の場所に公開し、必要なファイルを必要な場所にコピーするのはなぜですか? –

答えて

0

セキュリティ上の理由から(意図的にまたは間違えて)、ステージング/本番環境設定ファイルをリポジトリまたは開発用コンピュータに含めることは避けてください。これらのファイルには機密情報が含まれている可能性があります。間違った設定ファイルが使用または変更された場合、大きな誤りが発生する可能性があります。

また、生産用の設定ファイルはあまり変更されないため、必要なときに手動で簡単に変更することができます。結論として、環境ごとに1つだけappsettings.jsonを使用します。それは私の意見ではより安全で実際には簡単です。

関連する問題