.NET Aspire Azure Web PubSub 整合
在本文中,您將瞭解如何使用 .NET AspireAzure Web PubSub 整合。
Aspire.Azure.Messaging.WebPubSub
程式庫提供在 DI 容器中註冊 WebPubSubServiceClient 的選項,以便連接到 Azure Web PubSub。
先決條件
- Azure 訂用帳戶:免費建立一個。
- 現有的 Azure Web PubSub 服務實例。 如需詳細資訊,請參閱 建立 Web PubSub 資源。 或者,您可以使用連接字串,在生產環境中不建議這麼做。
開始
若要開始使用 .NET AspireAzure Web PubSub 整合,請安裝 📦Aspire。Azure。messaging.WebPubSubclient-consuming 專案中的 NuGet 套件,也就是使用 Azure Web PubSub client的應用程式專案。
dotnet add package Aspire.Azure.Messaging.WebPubSub
如需詳細資訊,請參閱 dotnet add package 或 管理 .NET 應用程式中的套件相依性。
範例使用方式
在專案的 Program.cs 檔案中,呼叫 AddAzureWebPubSubHub
擴充方法,以註冊 WebPubSubServiceClient
,以便透過相依性注入容器使用。 方法會採用連接名稱參數。
builder.AddAzureWebPubSubServiceClient("wps");
接著,您可以使用依賴注入來擷取 WebPubSubServiceClient
實例。 例如,若要從服務擷取 client:
public class ExampleService(WebPubSubServiceClient client)
{
// Use client...
}
如需詳細資訊,請參閱 Azure的 .Messaging.WebPubSub 文件。
應用程式主機使用方式
若要將 Azure Web PubSub 託管支援新增至您的 IDistributedApplicationBuilder,請在 應用程式主機 專案中安裝 📦Aspire.Hosting.Azure.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
組態] 區段擷取連線資訊。 支援兩種連線格式:
使用服務端點
建議的方法是使用服務端點,其可與 AzureMessagingWebPubSubSettings.Credential
屬性搭配使用,以建立連線。 如果未設定憑證,將使用 DefaultAzureCredential。
{
"ConnectionStrings": {
"WebPubSubConnectionName": "https://xxx.webpubsub.azure.com"
}
}
連接字串
或者,也可以使用連接字串。
{
"ConnectionStrings": {
"WebPubSubConnectionName": "Endpoint=https://xxx.webpubsub.azure.com;AccessKey==xxxxxxx"
}
}
使用組態提供者
.NET Aspire
Azure Web PubSub 函式庫支援 Microsoft.Extensions.Configuration。 它會使用 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 標識碼:
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 .NET Aspire 整合會自動設定記錄、追蹤和度量組態,有時稱為 可觀察性支柱。 如需整合可觀察性和遙測的詳細資訊,請參閱 .NET.NET Aspire 整合概觀。 視支援服務而定,某些整合可能只支援其中一些功能。 例如,某些整合支援記錄和追蹤,但不支援計量。 您也可以使用 組態 一節中呈現的技術來停用遙測功能。
伐木
.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 整合因為 .NETAzure SDK 的限制,目前預設不支援計量功能。 如果未來發生該變更,本節將會更新以反映這些變更。