Skip to content

Latest commit

 

History

History
87 lines (60 loc) · 5.13 KB

2-servicedefaults.md

File metadata and controls

87 lines (60 loc) · 5.13 KB

Service Defaults / Smart Defaults

はじめに

.NET Aspire は、.NET アプリケーションで一般的に使用されるサービスのスマートデフォルトを提供します。これらのデフォルトは、迅速に開始し、異なる種類のアプリケーションで一貫した体験を提供するよう設計されています。これには以下が含まれます:

  • 可観測性: メトリクス、トレーシング、ロギング
  • 回復性
  • ヘルスチェック
  • サービス ディスカバリー

Service defaults プロジェクトの作成

Visual Studio & Visual Studio Code

  1. ServiceDefaults という名前の新しいプロジェクトをソリューションに追加します:

    • ソリューションを右クリックし、追加 > 新しいプロジェクトを選択します。
    • .NET Aspire Service Defaults プロジェクトテンプレートを選択します。
    • プロジェクトに ServiceDefaults という名前を付けます。
    • 次へ > 作成 をクリックします。

    Visual Studio Visual Studio での service defaults プロジェクトの追加ダイアログ

    Visual Studio Code Visual Studio Code での service defaults プロジェクトの追加ダイアログ

コマンドライン

  1. dotnet new aspire-servicedefaults コマンドを使用して新しいプロジェクトを作成します:

    dotnet new aspire-servicedefaults -n ServiceDefaults

Service Defaults の設定

  1. Api および MyWeatherHub プロジェクトに ServiceDefaults プロジェクトへの参照を追加します:

    • Api プロジェクトを右クリックし、追加 > 参照 を選択します。
      • ServiceDefaults プロジェクトをチェックし、OK をクリックします。
    • MyWeatherHub プロジェクトを右クリックし、追加 > 参照 を選択します。
      • ServiceDefaults プロジェクトをチェックし、OK をクリックします。

    プロのヒント: Visual Studio 2022では、プロジェクトを別のプロジェクトにドラッグ&ドロップして参照を追加できます。

  2. Api および MyWeatherHub プロジェクトの両方で、Program.cs ファイルを更新し、以下の行を var builder = WebApplication.CreateBuilder(args); 行の直後に追加します:

    builder.AddServiceDefaults();
  3. Api および MyWeatherHub プロジェクトの両方で、Program.cs ファイルを更新し、var app = builder.Build(); 行の直後に以下の行を追加します:

    app.MapDefaultEndpoints();

アプリケーションの実行

  1. Visual Studio または Visual Studio Code でマルチプロジェクト起動構成を使用してアプリケーションを実行します。

    • Visual Studio: MyWeatherHub ソリューションを右クリックしてプロパティに移動し、ApiMyWeatherHub をスタートアッププロジェクトとして選択し、OK をクリックします。
      • Visual Studio ソリューション プロパティ
      • 開始 をクリックして、両方のプロジェクトを開始およびデバッグします。
    • Visual Studio Code: Run and Debug パネルを使用して Api および MyWeatherHub プロジェクトを実行します。必要な構成が含まれている launch.json ファイルを提供しています。
  2. 次の URL に移動してアプリケーションをテストします:

  3. API の Swagger UI および MyWeatherHub のホームページが表示されるはずです。

  4. 次のURLに移動してAPIのヘルスチェックを表示できます:https://localhost:7032/health

  5. 次のURLに移動してMyWeatherHubのヘルスチェックを表示できます:https://localhost:7274/health

  6. ターミナルでログを表示して、ヘルスチェックや Polly を使用したレジリエンスなどのテレメトリデータを確認できます:

    Polly: Information: Execution attempt. Source: '-standard//Standard-Retry', Operation Key: '', Result: '200', Handled: 'False', Attempt: '0', Execution Time: '13.0649'
  7. 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