.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
という名前の接続文字列に渡します。
ExampleService
の Program.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"
}
}
構成プロバイダーを使用する
Aspire:Azure:Messaging:WebPubSub
キーを使用して、構成から AzureMessagingWebPubSubSettings
と WebPubSubServiceClientOptions
を読み込みます。
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の制限により、既定ではメトリックがサポートされていません。 今後その変更が行われる場合は、これらの変更を反映するようにこのセクションが更新されます。
関連項目
.NET Aspire