Freigeben über


.NET Aspire Azure Web PubSub-Integration

In diesem Artikel erfahren Sie, wie Sie die .NET AspireAzure Web PubSub-Integration verwenden. Die Aspire.Azure.Messaging.WebPubSub-Bibliothek bietet Optionen zum Registrieren eines WebPubSubServiceClient im DI-Container zum Herstellen einer Verbindung mit Azure Web PubSub-.

Voraussetzungen

  • Azure Abonnement: Ein kostenloseserstellen.
  • Eine vorhandene Azure Web PubSub-Dienstinstanz. Weitere Informationen finden Sie unter Erstellen einer Web PubSub-Ressource. Alternativ können Sie eine Verbindungszeichenfolge verwenden, die in Produktionsumgebungen nicht empfohlen wird.

Loslegen

Um mit der .NET AspireAzure Web PubSub-Integration zu beginnen, installieren Sie das 📦Aspire.Azure. Messaging.WebPubSub NuGet-Paket im clientverbrauchenden Projekt, d. h. das Projekt für die Anwendung, das die Azure Web PubSub-clientverwendet.

dotnet add package Aspire.Azure.Messaging.WebPubSub

Weitere Informationen finden Sie unter dotnet add package oder Verwalten von Paketabhängigkeiten in .NET-Anwendungen.

Beispielverwendung

Rufen Sie in der Program.cs Datei Ihres Projekts die AddAzureWebPubSubHub Erweiterungsmethode auf, um eine WebPubSubServiceClient für die Verwendung über den Container zum Einfügen von Abhängigkeiten zu registrieren. Die Methode verwendet einen Verbindungsnamenparameter.

builder.AddAzureWebPubSubServiceClient("wps");

Anschließend können Sie die WebPubSubServiceClient Instanz mithilfe der Abhängigkeitseinfügung abrufen. So rufen Sie beispielsweise die client von einem Dienst ab:

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

Weitere Informationen finden Sie in der Dokumentation zu Azure.Messaging.WebPubSub.

App-Hostverwendung

Um Azure Web PubSub-Hostingunterstützung zu Ihrem IDistributedApplicationBuilderhinzuzufügen, installieren Sie das 📦Aspire.Hosting.Azure.WebPubSub NuGet-Paket im App-Host Projekt.

dotnet add package Aspire.Hosting.Azure.WebPubSub

Fügen Sie in Ihrem App-Hostprojekt eine Web PubSub-Verbindung hinzu und verwenden Sie die Verbindung mit den folgenden Methoden:

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

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

Die AddAzureWebPubSubHub-Methode liest Verbindungsinformationen aus der Konfiguration des Anwendungshosts (z. B. aus "Benutzergeheimnisse") unter dem Konfigurationsschlüssel ConnectionStrings:wps. Die Methode WithReference übergibt die Verbindungsinformationen an eine Verbindungszeichenfolge namens wps im Projekt ExampleService. In der Program.cs Datei von ExampleServicekann die Verbindung verwendet werden:

builder.AddAzureWebPubSubServiceClient("wps");

Konfiguration

Die .NET AspireAzure Web PubSub-Bibliothek bietet mehrere Optionen zum Konfigurieren der Azure Web PubSub-Verbindung basierend auf den Anforderungen und Konventionen Ihres Projekts. Beachten Sie, dass entweder ein Endpoint oder ein ConnectionString angegeben werden muss.

Verwenden Sie eine Verbindungszeichenfolge

Wenn Sie eine Verbindungszeichenfolge aus dem Konfigurationsabschnitt ConnectionStrings verwenden, können Sie beim Aufrufen von builder.AddAzureWebPubSubHub()den Namen der Verbindungszeichenfolge angeben:

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

Anschließend werden die Verbindungsinformationen aus dem Konfigurationsabschnitt ConnectionStrings abgerufen. Zwei Verbindungsformate werden unterstützt:

Verwenden Sie den Dienstendpunkt

Der empfohlene Ansatz besteht darin, den Dienstendpunkt zu verwenden, der mit der AzureMessagingWebPubSubSettings.Credential-Eigenschaft funktioniert, um eine Verbindung herzustellen. Wenn keine Anmeldeinformationen konfiguriert sind, wird das DefaultAzureCredential verwendet.

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

Connection String (Verbindungszeichenfolge)

Alternativ kann eine Verbindungszeichenfolge verwendet werden.

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

Konfigurationsanbieter verwenden

Die .NET AspireAzure Web PubSub-Bibliothek unterstützt Microsoft.Extensions.Configuration. Sie lädt AzureMessagingWebPubSubSettings und WebPubSubServiceClientOptions mithilfe des Schlüssels Aspire:Azure:Messaging:WebPubSub aus der Konfiguration. Betrachten Sie das Beispiel Appsettings.json, die einige der Optionen konfiguriert:

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

Verwendung von Inline-Delegaten

Sie können auch den Action<AzureMessagingWebPubSubSettings> configureSettings Delegat übergeben, um einige oder alle Optionen inline einzurichten, z. B. um Integritätsprüfungen aus Code zu deaktivieren:

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

Sie können die WebPubSubServiceClientOptions auch mithilfe des optionalen Action<IAzureClientBuilder<WebPubSubServiceClient, WebPubSubServiceClientOptions>> configureClientBuilder-Parameters der AddAzureWebPubSubHub-Methode konfigurieren. Um beispielsweise die client-ID für diese clientfestzulegen:

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

Gesundheitschecks

Standardmäßig ermöglichen .NET.NET Aspire Integrationen Integritätsprüfungen für alle Dienste. Weitere Informationen finden Sie unter .NET.NET Aspire Integrationsübersicht.

Die .NET AspireAzure Web PubSub-Integrationshandles macht eine konfigurierbare Integritätsprüfung verfügbar, die als fehlerfreiemeldet, wenn die client erfolgreich eine Verbindung mit dem Azure Web PubSub-Dienst herstellen kann.

Observability und Telemetrie

.NET .NET Aspire Integrationen richten automatisch Protokollierungs-, Tracing- und Metrikkonfigurationen ein, die manchmal als den Säulen der Beobachtbarkeitbezeichnet werden. Weitere Informationen zur Integrationsbeobachtbarkeit und Telemetrie finden Sie unter .NET.NET Aspire Integrationen Übersicht. Abhängig vom unterstützenden Dienst unterstützen einige Integrationen möglicherweise nur bestimmte Funktionen. Beispielsweise unterstützen einige Integrationen Protokollierung und Ablaufverfolgung, aber keine Metriken. Telemetriefunktionen können auch mithilfe der im Abschnitt Konfiguration dargestellten Techniken deaktiviert werden.

Protokollierung

Die .NET AspireAzure Web PubSub-Integration verwendet die folgenden Protokollkategorien:

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

Verfolgung

Die .NET AspireAzure Web PubSub-Integration gibt die folgenden Ablaufverfolgungsaktivitäten mithilfe von OpenTelemetryaus:

  • "Azure.Messaging.WebPubSub.*"

Kennzahlen

Die .NET AspireAzure Web PubSub-Integration unterstützt standardmäßig keine Metriken aufgrund von Einschränkungen im Azure SDK für .NET. Wenn sich dies in Zukunft ändert, wird dieser Abschnitt aktualisiert, um diese Änderungen widerzuspiegeln.

Siehe auch