.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 ExampleService
kann 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.