共用方式為


.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 的連接字串。 在 ExampleServiceProgram.cs 檔案中,可以使用下列專案來取用連線:

builder.AddAzureWebPubSubServiceClient("wps");

配置

.NET Aspire Azure Web PubSub 連結庫提供多個選項,根據專案的需求和慣例,設定 Azure Web PubSub 連線。 請注意,必須提供 EndpointConnectionString

使用連接字串

從 [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 鍵從組態載入 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 標識碼:

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 的限制,目前預設不支援計量功能。 如果未來發生該變更,本節將會更新以反映這些變更。

另請參閱