Condividi tramite


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.

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 supporto dell'hosting Web PubSub al , installare il . Ospitare.. WebPubSub pacchetto NuGet nel progetto host dell'app .

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.

Vedere anche