次の方法で共有


.NET Aspire Azure Web PubSub の統合

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

前提 条件

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

作業の開始

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

dotnet add package Aspire.Azure.Messaging.WebPubSub

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

使用例

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

builder.AddAzureWebPubSubServiceClient("wps");

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

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 メソッドは、その接続情報を、wps プロジェクトの ExampleService という名前の接続文字列に渡します。 ExampleService ファイルでは、次を使用して接続を使用できます。

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をサポートしています。 AzureMessagingWebPubSubSettings キーを使用して、構成から WebPubSubServiceClientOptionsAspire:Azure:Messaging:WebPubSub を読み込みます。 いくつかのオプションを構成する appsettings.json 例を考えてみましょう。

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

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

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

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

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

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

Client 統合ヘルスチェック

既定では、.NET.NET Aspireクライアント統合 すべてのサービスで 正常性チェック 有効になっています。 同様に、多くの .NET.NET Aspireホスティング統合 もヘルスチェックエンドポイントを有効にします。 詳細については、以下を参照してください。

Web PubSub 統合ハンドルは、クライアントが 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の制限により、既定ではメトリックがサポートされていません。 今後その変更が行われる場合は、これらの変更を反映するようにこのセクションが更新されます。

関連項目