トレーニング
モジュール
クラウド ネイティブの ASP.NET Core マイクロサービスに機能フラグを実装する - Training
このモジュールでは、Azure App Configuration を使用して ASP.NET Core マイクロサービス アプリに機能フラグを実装する方法について説明します。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
.NET 5+ (.NET Core バージョンを含む) では、実行時に .NET アプリケーションの動作を構成するために、構成ファイルと環境変数の使用がサポートされています。
注意
このセクションの記事では、.NET ランタイム自体の構成について説明します。 .NET Core 3.1 以降に移行中で、app.config ファイルの置き換えを探している場合や、.NET アプリでカスタム構成値を使用する方法を知りたい場合は、 クラスと「.NET での構成」を参照してください。
次のような場合に、これらの設定の使用が魅力的な選択肢になります。
.NET は、.NET ランタイムの動作を構成するための次のメカニズムを備えています。
ヒント
環境変数を使用してオプションを構成すると、すべての .NET アプリに設定が適用されます。 runtimeconfig.json またはプロジェクト ファイルでオプションを構成すると、そのアプリケーションにのみ設定が適用されます。
一部の構成値は、AppContext.SetSwitch メソッドを呼び出すことによって、プログラムで設定することもできます。
ドキュメントのこのセクションの記事は、デバッグやガベージ コレクションなどのカテゴリに分類されています。 必要に応じて、runtimeconfig.json ファイル、MSBuild のプロパティ、環境変数用の構成オプションを示しています。また相互参照用に .NET Framework プロジェクトの app.config ファイルも示しています。
プロジェクトがビルドされた場合、出力ディレクトリに [appname].runtimeconfig.json ファイルが生成されます。 runtimeconfig.template.json ファイルがプロジェクト ファイルと同じフォルダーにある場合、それに設定されているすべてのオプションは [appname].runtimeconfig.json ファイルに挿入されます。 そのアプリをご自分でビルドする場合は、構成オプションはすべて runtimeconfig.template.json ファイルに追加してください。 そのアプリを実行しているだけの場合は、 [appname].runtimeconfig.json ファイルに直接挿入します。
注意
OutputType
が Exe
ではなく、構成オプションを OutputType
から Exe
にコピーする場合は、プロジェクト ファイルで GenerateRuntimeConfigurationFiles
を true
に明示的に設定する必要があります。 runtimeconfig.json ファイルが必要なアプリの場合、このプロパティの既定値は です。runtimeconfig.json ファイルの configProperties セクションに、ランタイム構成オプションを指定します。 このセクションには次の形式が含まれます。
"configProperties": {
"config-property-name1": "config-value1",
"config-property-name2": "config-value2"
}
このオプションを出力 JSON ファイルに入力する場合、runtimeOptions
プロパティの下に入れます。
{
"runtimeOptions": {
"tfm": "netcoreapp3.1",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "3.1.0"
},
"configProperties": {
"System.GC.Concurrent": false,
"System.Threading.ThreadPool.MinThreads": 4,
"System.Threading.ThreadPool.MaxThreads": 25
}
}
}
このオプションをテンプレート JSON ファイルに入力する場合、runtimeOptions
プロパティを省略します。
{
"configProperties": {
"System.GC.Concurrent": false,
"System.Threading.ThreadPool.MinThreads": "4",
"System.Threading.ThreadPool.MaxThreads": "25"
}
}
一部の実行構成オプションは、 .csproj の MSBuild のプロパティ、または SDK 形式の .NET Core プロジェクトの .vbproj ファイルを使用して設定できます。 MSBuild のプロパティは、runtimeconfig.template.json ファイルで設定されているオプションよりも優先されます。
次に、ランタイム動作を構成する MSBuild のプロパティがある SDK 形式のプロジェクト ファイルの例を示します。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<PropertyGroup>
<ConcurrentGarbageCollection>false</ConcurrentGarbageCollection>
<ThreadPoolMinThreads>4</ThreadPoolMinThreads>
<ThreadPoolMaxThreads>25</ThreadPoolMaxThreads>
</PropertyGroup>
</Project>
実行時の動作を構成する MSBuild プロパティについては、ガベージ コレクションに関するページなど、各領域の個々の記事に記載されています。 これらは、SDK スタイルのプロジェクトの MSBuild プロパティ リファレンスの「実行時構成」セクションにも記載されています。
環境変数を使用すると、ランタイムの構成情報を指定できます。 環境変数を使用して実行時オプションを構成すると、すべての .NET Core アプリに設定が適用されます。 環境変数として指定された構成ノブには、一般に DOTNET_ のプレフィックスが付いています。
注意
.NET 6 では、.NET の実行時の動作を構成する環境変数のプレフィックスが、COMPlus_
ではなく DOTNET_
に標準化されています。 ただし、プレフィックス COMPlus_
は引き続き機能します。 以前のバージョンの .NET ランタイムを使用している場合は、環境変数に COMPlus_
プレフィックスをまだ使用する必要があります。
環境変数は、Windows のコントロール パネル、コマンド ライン、または Windows と Unix ベースのシステムの両方で Environment.SetEnvironmentVariable(String, String) メソッドを呼び出すことによって、プログラムで定義できます。
次の例は、コマンド ラインで環境変数を設定する方法を示しています。
# Windows
set DOTNET_GCRetainVM=1
# Powershell
$env:DOTNET_GCRetainVM="1"
# Unix
export DOTNET_GCRetainVM=1
トレーニング
モジュール
クラウド ネイティブの ASP.NET Core マイクロサービスに機能フラグを実装する - Training
このモジュールでは、Azure App Configuration を使用して ASP.NET Core マイクロサービス アプリに機能フラグを実装する方法について説明します。