次の方法で共有


.NET Aspire Azure Web PubSub の統合

この記事では、.NET AspireAzure Web PubSub 統合を使用する方法について説明します。 Aspire.Azure.Messaging.WebPubSub ライブラリには、Azure Web PubSubに接続するための DI コンテナーに WebPubSubServiceClient を登録するためのオプションが用意されています。

前提 条件

  • Azure サブスクリプション: 無料の用に作成します。
  • 既存の Azure Web PubSub サービス インスタンス。 詳細については、「Web PubSub リソースの作成」を参照してください。 または、運用環境では推奨されない接続文字列を使用することもできます。

作業の開始

.NET Aspire Azure Web PubSub 統合を開始するには、📦Aspireをインストールします。Azure.Messaging.WebPubSub NuGet パッケージは、clientを使用するプロジェクト、つまり、Azure Web PubSub clientを使用するアプリケーションのプロジェクトです。

dotnet add package Aspire.Azure.Messaging.WebPubSub

詳細については、「dotnet パッケージ の追加」または「.NET アプリケーションでのパッケージの依存関係の管理」を参照してください。

使用例

プロジェクトの Program.cs ファイルで、AddAzureWebPubSubHub 拡張メソッドを呼び出して、依存関係挿入コンテナーを介して使用する WebPubSubServiceClient を登録します。 このメソッドは、接続名パラメーターを受け取ります。

builder.AddAzureWebPubSubServiceClient("wps");

その後、依存関係の挿入を使用して WebPubSubServiceClient インスタンスを取得できます。 たとえば、サービスから client を取得するには、次のようにします。

public class ExampleService(WebPubSubServiceClient client)
{
    // Use client...
}

詳細については、Azureを参照してください。Messaging.WebPubSub ドキュメント

アプリ ホストの使用状況

Azure Web PubSub ホスティング サポートを IDistributedApplicationBuilderに追加するには、アプリホスト プロジェクト内で 📦AspireAzureホスティング.WebPubSub NuGet パッケージをインストールします。

dotnet add package Aspire.Hosting.Azure.WebPubSub

アプリ ホスト プロジェクトで、Web PubSub 接続を追加し、次の方法を使用して接続を使用します。

var webPubSub = builder.AddAzureWebPubSub("wps");

var exampleService = builder.AddProject<Projects.ExampleService>()
                            .WithReference(webPubSub);

AddAzureWebPubSubHub メソッドは、ConnectionStrings:wps 構成キーの下にあるアプリ ホストの構成 ("ユーザー シークレット" など) から接続情報を読み取ります。 WithReference メソッドは、その接続情報を、ExampleService プロジェクトの wps という名前の接続文字列に渡します。 ExampleServiceProgram.cs ファイルでは、次を使用して接続を使用できます。

builder.AddAzureWebPubSubServiceClient("wps");

構成

.NET Aspire Azure Web PubSub ライブラリには、プロジェクトの要件と規則に基づいて Azure Web PubSub 接続を構成するための複数のオプションが用意されています。 Endpoint または ConnectionString を指定する必要があることに注意してください。

接続文字列を使用する

ConnectionStrings 構成セクションの接続文字列を使用する場合は、builder.AddAzureWebPubSubHub()を呼び出すときに接続文字列の名前を指定できます。

builder.AddAzureWebPubSubServiceClient(
    "WebPubSubConnectionName",
    "your_hub_name");

接続情報は、ConnectionStrings 構成セクションから取得されます。 次の 2 つの接続形式がサポートされています。

サービス エンドポイントを使用する

推奨される方法は、AzureMessagingWebPubSubSettings.Credential プロパティと連携して接続を確立するサービス エンドポイントを使用することです。 資格情報が構成されていない場合は、DefaultAzureCredential が使用されます。

{
  "ConnectionStrings": {
    "WebPubSubConnectionName": "https://xxx.webpubsub.azure.com"
  }
}

接続文字列

または、接続文字列を使用することもできます。

{
  "ConnectionStrings": {
    "WebPubSubConnectionName": "Endpoint=https://xxx.webpubsub.azure.com;AccessKey==xxxxxxx"
  }
}

構成プロバイダーを使用する

Web PubSub ライブラリは、Microsoft.Extensions.Configurationをサポートしています。 Aspire:Azure:Messaging:WebPubSub キーを使用して、構成から AzureMessagingWebPubSubSettingsWebPubSubServiceClientOptions を読み込みます。 appsettings の例を考えてみましょう。いくつかのオプションを構成するjson:

{
  "Aspire": {
    "Azure": {
      "Messaging": {
        "WebPubSub": {
          "DisableHealthChecks": true,
          "HubName": "your_hub_name"
        }
      }
    }
  }
}

インライン デリゲートを使用する

Action<AzureMessagingWebPubSubSettings> configureSettings デリゲートを渡して、コードから正常性チェックを無効にするなど、一部またはすべてのオプションをインラインで設定することもできます。

builder.AddAzureWebPubSubServiceClient(
    "wps",
    settings => settings.DisableHealthChecks = true);

AddAzureWebPubSubHub メソッドの省略可能な Action<IAzureClientBuilder<WebPubSubServiceClient, WebPubSubServiceClientOptions>> configureClientBuilder パラメーターを使用して、WebPubSubServiceClientOptions を設定することもできます。 たとえば、この clientの client ID を設定するには、

builder.AddAzureWebPubSubServiceClient(
    "wps",
    configureClientBuilder: clientBuilder => 
        clientBuilder.ConfigureOptions(options => options.Retry.MaxRetries = 5));

健康診断

既定では、.NET.NET Aspire 統合により、すべてのサービス 正常性チェック が有効になります。 詳細については、.NET.NET Aspire 統合の概要を参照してください。

.NET Aspire Azure Web PubSub 統合ハンドルは、client が Azure Web PubSub サービスに正常に接続できる場合、と報告する構成可能な正常性チェックを公開します。

可観測性とテレメトリ

統合により、ログ記録、トレース、メトリックの構成が自動的に設定されます。これは、監視の柱 とも呼ばれます。 統合の可観測性とテレメトリの詳細については、統合の概要 参照してください。 バッキング サービスによっては、一部の統合でこれらの機能の一部のみがサポートされる場合があります。 たとえば、一部の統合ではログ記録とトレースがサポートされますが、メトリックはサポートされません。 テレメトリ機能は、「構成」セクションに記載されている手法を使用して無効にすることもできます。

伐採

.NET Aspire Azure Web PubSub 統合では、次のログ カテゴリが使用されます。

  • Azure
  • Azure.Core
  • Azure.Identity
  • Azure.Messaging.WebPubSub

トレーシング

.NET Aspire Azure Web PubSub 統合では、OpenTelemetryを使用して次のトレース アクティビティが生成されます。

  • "Azure.Messaging.WebPubSub.*"

メトリック

.NET Aspire Azure Web PubSub 統合では、Azure SDK for .NETの制限により、既定ではメトリックがサポートされていません。 今後その変更が行われる場合は、これらの変更を反映するようにこのセクションが更新されます。

関連項目