Udostępnij za pośrednictwem


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.

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 ExampleServicepołą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.

Zobacz też