Dela via


.NET Aspire Azure webb-PubSub-integrering

I den här artikeln får du lära dig hur du använder .NET AspireAzure Web PubSub-integrering. I Aspire.Azure.Messaging.WebPubSub-biblioteket finns alternativ för att registrera en WebPubSubServiceClient i DI-containern för anslutning till Azure Web PubSub-.

Förutsättningar

Sätta igång

Kom igång med .NET AspireAzure Web PubSub-integrering genom att installera 📦Aspire.Azure. Messaging.WebPubSub NuGet-paketet i det klientkrävande projektet, dvs. projektet för programmet som använder Azure Web PubSub-klienten.

dotnet add package Aspire.Azure.Messaging.WebPubSub

För mer information, se dotnet add package eller hantera paketberoenden i .NET applikationer.

Exempel på användning

I filen Program.cs i ditt projekt anropar du AddAzureWebPubSubHub-tilläggsmetoden för att registrera en WebPubSubServiceClient för användning via beroendeinjektionscontainern. Metoden tar en parameter för anslutningsnamn.

builder.AddAzureWebPubSubServiceClient("wps");

Du kan sedan hämta WebPubSubServiceClient-instansen med hjälp av beroendeinjektion. Om du till exempel vill hämta klienten från en tjänst:

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

Mer information finns i Azure. Messaging.WebPubSub-dokumentation.

Appvärdanvändning

Om du vill lägga till Azure Web PubSub-värdstöd i din IDistributedApplicationBuilderinstallerar du 📦Aspire.Hosting.Azure.WebPubSub NuGet-paket i appvärd projekt.

dotnet add package Aspire.Hosting.Azure.WebPubSub

I appvärdprojektet lägger du till en Web PubSub-anslutning och använder anslutningen med hjälp av följande metoder:

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

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

Metoden AddAzureWebPubSubHub läser anslutningsinformation från appvärdens konfiguration (till exempel från "användarhemligheter") under konfigurationsnyckeln ConnectionStrings:wps. Metoden WithReference skickar anslutningsinformationen till en anslutningssträng med namnet wps i ExampleService-projektet. I den Program.cs filen i ExampleServicekan anslutningen användas med hjälp av:

builder.AddAzureWebPubSubServiceClient("wps");

Konfiguration

Biblioteket .NET AspireAzure Web PubSub innehåller flera alternativ för att konfigurera Azure Web PubSub-anslutning baserat på kraven och konventionerna i ditt projekt. Observera att antingen en Endpoint eller en ConnectionString måste anges.

Använda en anslutningssträng

När du använder en anslutningssträng från ConnectionStrings konfigurationsavsnittet kan du ange namnet på anslutningssträngen när du anropar builder.AddAzureWebPubSubHub():

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

Och sedan hämtas anslutningsinformationen från avsnittet ConnectionStrings konfiguration. Två anslutningsformat stöds:

Använda tjänstslutpunkten

Den rekommenderade metoden är att använda tjänstslutpunkten, som fungerar med egenskapen AzureMessagingWebPubSubSettings.Credential för att upprätta en anslutning. Om inga autentiseringsuppgifter har konfigurerats används StandardAzureCredential.

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

Anslutningssträng

Du kan också använda en anslutningssträng.

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

Använda konfigurationsprovidrar

.NET Aspire Azure Web PubSub-biblioteket stöder Microsoft.Extensions.Configuration. Den läser in AzureMessagingWebPubSubSettings och WebPubSubServiceClientOptions från konfigurationen med hjälp av Aspire:Azure:Messaging:WebPubSub-nyckeln. Överväg exemplet appsettings.json som konfigurerar några av alternativen:

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

Använd inline-delegater

Du kan också skicka Action<AzureMessagingWebPubSubSettings> configureSettings-delegaten för att konfigurera vissa eller alla alternativ inline, till exempel för att inaktivera hälsokontroller i koden:

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

Du kan också konfigurera WebPubSubServiceClientOptions med hjälp av den valfria Action<IAzureClientBuilder<WebPubSubServiceClient, WebPubSubServiceClientOptions>> configureClientBuilder parametern för metoden AddAzureWebPubSubHub. Om du till exempel vill ange klient-ID för den här klienten:

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

Hälsokontroller

Som standard aktiverar .NET.NET Aspire integreringar hälsokontroller för alla tjänster. Mer information finns i översikten över .NET.NET Aspire integreringar.

Integreringen för .NET AspireAzure Web PubSub har en konfigurerbar hälsokontroll som rapporterar som i gott skicknär klienten kan ansluta framgångsrikt till Azure Web PubSub-tjänsten.

Observerbarhet och telemetri

.NET .NET Aspire integreringar konfigurerar automatiskt konfigurationer för loggning, spårning och mått, som ibland kallas grundpelarna för observerbarhet. Mer information om integreringsobservabilitet och telemetri finns i översikten över .NET.NET Aspire integreringar. Beroende på säkerhetskopieringstjänsten kanske vissa integreringar bara stöder vissa av dessa funktioner. Vissa integreringar stöder till exempel loggning och spårning, men inte mått. Telemetrifunktioner kan också inaktiveras med hjälp av de tekniker som visas i avsnittet Configuration.

Skogsavverkning

Integreringen .NET AspireAzure Web PubSub använder följande loggkategorier:

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

Spårning

Integreringen .NET AspireAzure Web PubSub genererar följande spårningsaktiviteter med hjälp av OpenTelemetry:

  • "Azure.Messaging.WebPubSub.*"

Mått

.NET Aspire Azure Web PubSub-integrering stöder för närvarande inte mått som standard på grund av begränsningar med Azure SDK för .NET. Om detta ändras i framtiden uppdateras det här avsnittet för att återspegla dessa ändringar.

Se även