Integracja .NET AspireAzure Web PubSub
Z tego artykułu dowiesz się, jak korzystać z integracji .NET AspireAzure Web PubSub. Biblioteka Aspire.Azure.Messaging.WebPubSub
oferuje opcje rejestrowania WebPubSubServiceClient w kontenerze DI dla nawiązania połączenia z usługą Azure Web PubSub.
Warunki wstępne
- Azure Subskrypcja: Załóż ją bezpłatnie.
- Istniejące wystąpienie usługi Azure Web PubSub. Aby uzyskać więcej informacji, zobacz Utwórz zasób Web PubSub. Alternatywnie można użyć ciągu połączenia, którego nie zaleca się w środowiskach produkcyjnych.
Zacznij
Aby rozpocząć pracę z integracją .NET AspireAzure Web PubSub, zainstaluj pakiet NuGet 📦Aspire.Azure.Messaging.WebPubSub w projekcie client– konsumenckim, czyli projekcie aplikacji używającej Azure Web PubSub client.
- .NET interfejsu wiersza polecenia
- PackageReference
dotnet add package Aspire.Azure.Messaging.WebPubSub
Aby uzyskać więcej informacji, zobacz dotnet add package or Manage package dependencies in .NET applications.
Przykładowe użycie
W pliku Program.cs projektu wywołaj metodę rozszerzenia AddAzureWebPubSubHub
, aby zarejestrować WebPubSubServiceClient
do użycia za pośrednictwem kontenera iniekcji zależności. Metoda przyjmuje parametr nazwy połączenia.
builder.AddAzureWebPubSubServiceClient("wps");
Następnie można pobrać wystąpienie WebPubSubServiceClient
przy użyciu wstrzykiwania zależności. Aby na przykład pobrać client z usługi:
public class ExampleService(WebPubSubServiceClient client)
{
// Use client...
}
Aby uzyskać więcej informacji, zobacz dokumentację .Messaging.WebPubSub Azure.
Użycie hosta aplikacji
Aby dodać obsługę hostingu Azure Web PubSub do IDistributedApplicationBuilder, zainstaluj 📦Aspire.Hosting.Azure.WebPubSub pakiet NuGet w projekcie hosta aplikacji .
dotnet add package Aspire.Hosting.Azure.WebPubSub
W projekcie hosta aplikacji dodaj połączenie Web PubSub i skorzystaj z połączenia przy użyciu następujących metod:
var webPubSub = builder.AddAzureWebPubSub("wps");
var exampleService = builder.AddProject<Projects.ExampleService>()
.WithReference(webPubSub);
Metoda AddAzureWebPubSubHub
odczytuje informacje o połączeniu z konfiguracji hosta aplikacji (na przykład z "wpisów tajnych użytkownika") w kluczu konfiguracji ConnectionStrings:wps
. Metoda WithReference
umieszcza te informacje o połączeniu w łańcuchu połączenia o nazwie wps
w projekcie ExampleService
. W pliku Program.cs programu ExampleService
połączenie można używać w następujący sposób:
builder.AddAzureWebPubSubServiceClient("wps");
Konfiguracja
Biblioteka .NET AspireAzure Web PubSub udostępnia wiele opcji konfigurowania połączenia Azure Web PubSub na podstawie wymagań i konwencji projektu. Należy pamiętać, że wymagane jest dostarczenie albo Endpoint
, albo ConnectionString
.
Używanie parametrów połączenia
W przypadku używania parametrów połączenia z sekcji konfiguracji ConnectionStrings
można podać nazwę parametrów połączenia podczas wywoływania builder.AddAzureWebPubSubHub()
:
builder.AddAzureWebPubSubServiceClient(
"WebPubSubConnectionName",
"your_hub_name");
Następnie informacje o połączeniu zostaną pobrane z sekcji konfiguracji ConnectionStrings
. Obsługiwane są dwa formaty połączeń:
Użyj punktu końcowego usługi
Zalecaną metodą jest użycie punktu końcowego usługi, który współpracuje z właściwością AzureMessagingWebPubSubSettings.Credential
w celu nawiązania połączenia. Jeśli nie skonfigurowano poświadczeń, zostanie użyta DefaultAzureCredential.
{
"ConnectionStrings": {
"WebPubSubConnectionName": "https://xxx.webpubsub.azure.com"
}
}
Ciąg połączenia
Alternatywnie można użyć ciągu połączenia.
{
"ConnectionStrings": {
"WebPubSubConnectionName": "Endpoint=https://xxx.webpubsub.azure.com;AccessKey==xxxxxxx"
}
}
Korzystanie z dostawców konfiguracji
Biblioteka .NET AspireAzure Web PubSub obsługuje Microsoft.Extensions.Configuration. Ładuje AzureMessagingWebPubSubSettings
i WebPubSubServiceClientOptions
z konfiguracji przy użyciu klucza Aspire:Azure:Messaging:WebPubSub
. Rozważmy przykład dotyczący ustawień aplikacji.json, który konfiguruje niektóre opcje:
{
"Aspire": {
"Azure": {
"Messaging": {
"WebPubSub": {
"DisableHealthChecks": true,
"HubName": "your_hub_name"
}
}
}
}
}
Używanie delegatów wbudowanych
Możesz również przekazać delegata Action<AzureMessagingWebPubSubSettings> configureSettings
, aby skonfigurować niektóre lub wszystkie opcje wbudowane, na przykład w celu wyłączenia kontroli kondycji z kodu:
builder.AddAzureWebPubSubServiceClient(
"wps",
settings => settings.DisableHealthChecks = true);
Można również skonfigurować WebPubSubServiceClientOptions przy użyciu opcjonalnego parametru Action<IAzureClientBuilder<WebPubSubServiceClient, WebPubSubServiceClientOptions>> configureClientBuilder
metody AddAzureWebPubSubHub
. Aby na przykład ustawić identyfikator client dla tego client:
builder.AddAzureWebPubSubServiceClient(
"wps",
configureClientBuilder: clientBuilder =>
clientBuilder.ConfigureOptions(options => options.Retry.MaxRetries = 5));
Kontrole kondycji
Domyślnie .NET.NET Aspire integracje umożliwiają sprawdzanie kondycji dla wszystkich usług. Aby uzyskać więcej informacji, zobacz omówienie integracji .NET.NET Aspire.
Integracja .NET AspireAzure Web PubSub uwidacznia konfigurowalne sprawdzanie kondycji, które raportuje jako dobrej kondycji, gdy client może pomyślnie nawiązać połączenie z usługą Azure Web PubSub.
Obserwowanie i telemetria
.NET
.NET Aspire integracje automatycznie konfigurują ustawienia rejestrowania, śledzenia i metryk, które są czasami nazywane filarami obserwowalności. Aby uzyskać więcej informacji na temat możliwości obserwacji integracji i telemetrii, zobacz omówienie integracji .NET.NET Aspire. W zależności od usługi pomocniczej niektóre integracje mogą obsługiwać tylko niektóre z tych funkcji. Na przykład niektóre integracje obsługują rejestrowanie i śledzenie, ale nie metryki. Funkcje telemetrii można również wyłączyć przy użyciu technik przedstawionych w sekcji konfiguracji
Wycinka i obróbka drzew
Integracja .NET AspireAzure Web PubSub używa następujących kategorii logów:
Azure
Azure.Core
Azure.Identity
Azure.Messaging.WebPubSub
Śledzenie
Integracja .NET AspireAzure Web PubSub będzie generować następujące działania śledzenia przy użyciu OpenTelemetry:
- "Azure.Messaging.WebPubSub.*"
Wskaźniki
Obecnie integracja .NET AspireAzure Web PubSub nie obsługuje metryk z powodu ograniczeń zestawu SDK Azure dla .NET. Jeśli ta zmiana nastąpi w przyszłości, ta sekcja zostanie zaktualizowana, aby odzwierciedlić te zmiany.