.NET Aspire は、.NET アプリケーションで一般的に使用されるサービスのスマートデフォルトを提供します。これらのデフォルトは、迅速に開始し、異なる種類のアプリケーションで一貫した体験を提供するよう設計されています。これには以下が含まれます:
- 可観測性: メトリクス、トレーシング、ロギング
- 回復性
- ヘルスチェック
- サービス ディスカバリー
-
ServiceDefaults
という名前の新しいプロジェクトをソリューションに追加します:- ソリューションを右クリックし、追加 > 新しいプロジェクトを選択します。
.NET Aspire Service Defaults
プロジェクトテンプレートを選択します。- プロジェクトに
ServiceDefaults
という名前を付けます。 次へ
>作成
をクリックします。
-
dotnet new aspire-servicedefaults
コマンドを使用して新しいプロジェクトを作成します:dotnet new aspire-servicedefaults -n ServiceDefaults
-
Api
およびMyWeatherHub
プロジェクトにServiceDefaults
プロジェクトへの参照を追加します:Api
プロジェクトを右クリックし、追加
>参照
を選択します。ServiceDefaults
プロジェクトをチェックし、OK
をクリックします。
MyWeatherHub
プロジェクトを右クリックし、追加
>参照
を選択します。ServiceDefaults
プロジェクトをチェックし、OK
をクリックします。
プロのヒント: Visual Studio 2022では、プロジェクトを別のプロジェクトにドラッグ&ドロップして参照を追加できます。
-
Api
およびMyWeatherHub
プロジェクトの両方で、Program.cs
ファイルを更新し、以下の行をvar builder = WebApplication.CreateBuilder(args);
行の直後に追加します:builder.AddServiceDefaults();
-
Api
およびMyWeatherHub
プロジェクトの両方で、Program.cs
ファイルを更新し、var app = builder.Build();
行の直後に以下の行を追加します:app.MapDefaultEndpoints();
-
Visual Studio または Visual Studio Code でマルチプロジェクト起動構成を使用してアプリケーションを実行します。
-
次の URL に移動してアプリケーションをテストします:
- https://localhost:7032/swagger/index.html - API
- https://localhost:7274/ - MyWeatherHub
-
API の Swagger UI および MyWeatherHub のホームページが表示されるはずです。
-
次のURLに移動してAPIのヘルスチェックを表示できます:https://localhost:7032/health
-
次のURLに移動してMyWeatherHubのヘルスチェックを表示できます:https://localhost:7274/health
-
ターミナルでログを表示して、ヘルスチェックや Polly を使用したレジリエンスなどのテレメトリデータを確認できます:
Polly: Information: Execution attempt. Source: '-standard//Standard-Retry', Operation Key: '', Result: '200', Handled: 'False', Attempt: '0', Execution Time: '13.0649'
-
5つの異なる都市をクリックすると、「ランダム」エラーが発生します。これにより、Polly のリトライポリシーが機能しているのを確認できます。
Polly: Warning: Execution attempt. Source: '-standard//Standard-Retry', Operation Key: '', Result: '500', Handled: 'True', Attempt: '0', Execution Time: '9732.8258' Polly: Warning: Resilience event occurred. EventName: 'OnRetry', Source: '-standard//Standard-Retry', Operation Key: '', Result: '500' System.Net.Http.HttpClient.NwsManager.ClientHandler: Information: Sending HTTP request GET http://localhost:5271/forecast/AKZ318