integrazione di .NET AspireAzure Web PubSub
In questo articolo, imparerai come utilizzare l'integrazione di .NET AspireAzure Web PubSub. La libreria Aspire.Azure.Messaging.WebPubSub
offre opzioni per la registrazione di un WebPubSubServiceClient nel container DI per la connessione a Azure Web PubSub.
Prerequisiti
- sottoscrizione Azure: crearne una gratuitamente.
- Istanza esistente del servizio Azure Web PubSub. Per altre informazioni, vedere Creare una risorsa Web PubSub. In alternativa, è possibile usare una stringa di connessione, che non è consigliata negli ambienti di produzione.
Inizia
Per iniziare a usare l'integrazione di .NET AspireAzure Web PubSub, installare il pacchetto NuGet 📦Aspire.Azure.Messaging.WebPubSub nel progetto che utilizza client, ovvero il progetto per l'applicazione che sfrutta il servizio Azure Web PubSub client.
- .NET dell'interfaccia della riga di comando
- PackageReference
dotnet add package Aspire.Azure.Messaging.WebPubSub
Per altre informazioni, vedere dotnet add package o Manage package dependencies in .NET applications.
Esempio di utilizzo
Nel file Program.cs del progetto, si chiami il metodo di estensione AddAzureWebPubSubHub
per registrare un WebPubSubServiceClient
da usare tramite il contenitore per l'inserimento delle dipendenze. Il metodo accetta un parametro del nome di connessione.
builder.AddAzureWebPubSubServiceClient("wps");
È quindi possibile recuperare l'istanza di WebPubSubServiceClient
usando l'inserimento delle dipendenze. Ad esempio, per recuperare il client da un servizio:
public class ExampleService(WebPubSubServiceClient client)
{
// Use client...
}
Per altre informazioni, vedere l'Azure. Documentazione di Messaging.WebPubSub.
Utilizzo dell'host dell'app
Per aggiungere
- .NET dell'interfaccia della riga di comando
- PackageReference
dotnet add package Aspire.Hosting.Azure.WebPubSub
Nel progetto host dell'app, aggiungi una connessione Web PubSub e utilizza la connessione con i metodi seguenti.
var webPubSub = builder.AddAzureWebPubSub("wps");
var exampleService = builder.AddProject<Projects.ExampleService>()
.WithReference(webPubSub);
Il metodo AddAzureWebPubSubHub
legge le informazioni di connessione dalla configurazione dell'host dell'app (ad esempio, da "segreti utente") nella chiave di configurazione ConnectionStrings:wps
. Il metodo WithReference
passa tali informazioni di connessione in una stringa di connessione denominata wps
nel progetto ExampleService
. Nel file Program.cs di ExampleService
, la connessione può essere utilizzata usando:
builder.AddAzureWebPubSubServiceClient("wps");
Configurazione
La libreria Web PubSub .NET AspireAzure offre più opzioni per configurare la connessione Web PubSub Azure in base ai requisiti e alle convenzioni del progetto. Si noti che è necessario specificare un Endpoint
o un ConnectionString
.
Usare una stringa di connessione
Quando si usa una stringa di connessione dalla sezione di configurazione ConnectionStrings
, è possibile specificare il nome della stringa di connessione quando si chiama builder.AddAzureWebPubSubHub()
:
builder.AddAzureWebPubSubServiceClient(
"WebPubSubConnectionName",
"your_hub_name");
Le informazioni di connessione verranno quindi recuperate dalla sezione di configurazione ConnectionStrings
. Sono supportati due formati di connessione:
Usa l'endpoint del servizio
L'approccio consigliato consiste nell'usare l'endpoint di servizio, che funziona con la proprietà AzureMessagingWebPubSubSettings.Credential
per stabilire una connessione. Se non è configurata alcuna credenziale, viene usato il DefaultAzureCredential
{
"ConnectionStrings": {
"WebPubSubConnectionName": "https://xxx.webpubsub.azure.com"
}
}
Stringa di connessione
In alternativa, è possibile usare una stringa di connessione.
{
"ConnectionStrings": {
"WebPubSubConnectionName": "Endpoint=https://xxx.webpubsub.azure.com;AccessKey==xxxxxxx"
}
}
Usare i provider di configurazione
La libreria Web PubSub .NET AspireAzure supporta Microsoft.Extensions.Configuration. Carica il AzureMessagingWebPubSubSettings
e il WebPubSubServiceClientOptions
dalla configurazione utilizzando la chiave Aspire:Azure:Messaging:WebPubSub
. Si consideri l'esempio appsettings.json che configura alcune delle opzioni seguenti:
{
"Aspire": {
"Azure": {
"Messaging": {
"WebPubSub": {
"DisableHealthChecks": true,
"HubName": "your_hub_name"
}
}
}
}
}
Usare delegati inline
È anche possibile passare il delegato Action<AzureMessagingWebPubSubSettings> configureSettings
per configurare alcune o tutte le opzioni direttamente nel codice, ad esempio per disabilitare i controlli di integrità dal codice:
builder.AddAzureWebPubSubServiceClient(
"wps",
settings => settings.DisableHealthChecks = true);
È anche possibile configurare il WebPubSubServiceClientOptions usando il parametro facoltativo Action<IAzureClientBuilder<WebPubSubServiceClient, WebPubSubServiceClientOptions>> configureClientBuilder
del metodo AddAzureWebPubSubHub
. Ad esempio, per impostare l'ID di client per questo client:
builder.AddAzureWebPubSubServiceClient(
"wps",
configureClientBuilder: clientBuilder =>
clientBuilder.ConfigureOptions(options => options.Retry.MaxRetries = 5));
Controlli sanitari
Per impostazione predefinita, le integrazioni di .NET.NET Aspire abilitano verifiche dello stato di salute per tutti i servizi. Per altre informazioni, vedere panoramica delle integrazioni .NET.NET Aspire.
L'integrazione .NET AspireAzure Web PubSub espone un controllo di integrità configurabile che segnala come integro, quando l'client può connettersi correttamente al servizio Web PubSub Azure.
Osservabilità e telemetria
.NET
.NET Aspire le integrazioni impostano automaticamente registrazione, tracciamento e metriche, talvolta conosciute come i pilastri dell'osservabilità. Per altre informazioni sull'osservabilità e la telemetria dell'integrazione, vedere panoramica delle integrazioni .NET.NET Aspire. A seconda del servizio di backup, alcune integrazioni possono supportare solo alcune di queste funzionalità. Ad esempio, alcune integrazioni supportano la registrazione e la traccia, ma non le metriche. Le funzionalità di telemetria possono essere disabilitate anche usando le tecniche presentate nella sezione Configurazione
Registrazione
L'integrazione .NET AspireAzure Web PubSub usa le categorie di log seguenti:
Azure
Azure.Core
Azure.Identity
Azure.Messaging.WebPubSub
Tracciamento
L'integrazione .NET AspireAzure Web PubSub emetterà le attività di traccia seguenti usando OpenTelemetry:
- "Azure.Messaging.WebPubSub.*"
Metriche
Attualmente, l'integrazione .NET AspireAzure Web PubSub non supporta le metriche per default a causa delle limitazioni con l'SDK Azure per .NET. Se tali modifiche verranno apportate in futuro, questa sezione verrà aggiornata in modo da riflettere tali modifiche.