.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
- Azure prenumeration: skapa en gratis prenumeration.
- En befintlig Azure Web PubSub-tjänstinstans. För mer information, se Skapa en Web PubSub-resurs. Du kan också använda en anslutningssträng som inte rekommenderas i produktionsmiljöer.
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 ExampleService
kan 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
.NET Aspire