Поделиться через


интеграция .NET AspireAzure Web PubSub

Из этой статьи вы узнаете, как использовать интеграцию .NET AspireAzure Web PubSub. Библиотека Aspire.Azure.Messaging.WebPubSub предлагает варианты регистрации WebPubSubServiceClient в контейнере DI для подключения к Web PubSub Azure.

Необходимые условия

  • подписка Azure: , создать ее бесплатно.
  • Существующий экземпляр службы Azure Web PubSub. Дополнительные сведения см. в статье Создание ресурса Web PubSub. Кроме того, можно использовать строку подключения, которая не рекомендуется в рабочих средах.

Начало работы

Чтобы приступить к работе с интеграцией .NET AspireAzure Web PubSub, установите 📦Aspire.Azure. Messaging.WebPubSub пакет NuGet в проекте, использующего клиент, т. е. проект для приложения, использующего клиент Azure Web PubSub.

dotnet add package Aspire.Azure.Messaging.WebPubSub

Дополнительные сведения см. в разделе dotnet add package или Управление зависимостями пакетов в приложениях .NET.

Пример использования

В файле Program.cs проекта вызовите метод расширения AddAzureWebPubSubHub, чтобы зарегистрировать WebPubSubServiceClient для использования с помощью контейнера внедрения зависимостей. Метод принимает параметр имени подключения.

builder.AddAzureWebPubSubServiceClient("wps");

Затем можно получить экземпляр WebPubSubServiceClient с помощью внедрения зависимостей. Например, чтобы получить клиент из сервиса, выполните следующие действия.

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

Для получения дополнительной информации см. документацию Azureпо Messaging.WebPubSub.

Использование хостинга приложения

Чтобы добавить поддержку размещения Azure Web PubSub в IDistributedApplicationBuilder, установите пакет NuGet 📦Aspire.Hosting.Azure.WebPubSub в проекте узла приложения .

dotnet add package Aspire.Hosting.Azure.WebPubSub

В вашем проекте приложения-хоста добавьте подключение Web PubSub и используйте его с помощью следующих методов:

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

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

Метод AddAzureWebPubSubHub считывает сведения о подключении из конфигурации узла приложения (например, из "секретов пользователя") под ключом конфигурации ConnectionStrings:wps. Метод WithReference передает эти сведения о подключении в строку подключения с именем wps в проекте ExampleService. В файле Program.cs проекта ExampleServiceможно использовать подключение следующим образом:

builder.AddAzureWebPubSubServiceClient("wps");

Конфигурация

Библиотека .NET AspireAzure Web PubSub предоставляет несколько вариантов настройки подключения Azure Web PubSub на основе требований и соглашений проекта. Обратите внимание, что необходимо обязательно предоставить либо Endpoint, либо ConnectionString.

Используйте строку подключения

При использовании строки подключения из раздела конфигурации ConnectionStrings можно указать имя строки подключения при вызове builder.AddAzureWebPubSubHub():

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

А затем сведения о подключении будут получены из раздела конфигурации ConnectionStrings. Поддерживаются два формата подключения:

Используйте конечную точку службы

Рекомендуется использовать конечную точку службы, которая работает с свойством AzureMessagingWebPubSubSettings.Credential для установления подключения. Если учетные данные не настроены, используется DefaultAzureCredential.

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

Строка подключения

Кроме того, можно использовать строку подключения.

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

Использование поставщиков конфигураций

Библиотека .NET AspireAzure Web PubSub поддерживает Microsoft.Extensions.Configuration. Он загружает AzureMessagingWebPubSubSettings и WebPubSubServiceClientOptions из конфигурации, используя ключ Aspire:Azure:Messaging:WebPubSub. Рассмотрим пример appsettings.json, который настраивает некоторые параметры:

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

Использование встроенных делегатов

Можно также передать делегат Action<AzureMessagingWebPubSubSettings> configureSettings для настройки некоторых или всех встроенных параметров, например для отключения проверок работоспособности из кода:

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

Вы также можете настроить WebPubSubServiceClientOptions с помощью необязательного параметра Action<IAzureClientBuilder<WebPubSubServiceClient, WebPubSubServiceClientOptions>> configureClientBuilder метода AddAzureWebPubSubHub. Например, чтобы задать идентификатор клиента для этого клиента:

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

Медицинские осмотры

По умолчанию .NET.NET Aspire интеграции включают проверки работоспособности для всех служб. Дополнительные сведения см. в обзоре интеграции .NET.NET Aspire.

Интеграция .NET AspireAzure Web PubSub предоставляет настраиваемую проверку работоспособности, которая сообщает, что система нормальна, когда клиент может успешно подключиться к службе Azure Web PubSub.

Наблюдаемость и телеметрия

.NET .NET Aspire интеграции автоматически настраивают конфигурации журналов, трассировки и метрик, которые иногда называются основами наблюдаемости. Дополнительные сведения об наблюдаемости интеграции и телеметрии см. в .NET.NET Aspire обзоре интеграции. В зависимости от резервной службы некоторые интеграции могут поддерживать только некоторые из этих функций. Например, некоторые интеграции поддерживают ведение журнала и трассировку, но не метрики. Функции телеметрии также можно отключить с помощью методов, представленных в разделе конфигурации .

Лесозаготовка

Интеграция .NET AspireAzure Web PubSub использует следующие категории журналов:

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

Трассировка

Интеграция .NET AspireAzure Web PubSub будет испускать следующие активности отслеживания с помощью OpenTelemetry.

  • "Azure.Messaging.WebPubSub.*"

Метрика

Интеграция .NET AspireAzure Web PubSub в настоящее время не поддерживает метрики по умолчанию из-за ограничений пакета SDK Azure для .NET. Если в будущем что-то изменится, этот раздел будет обновлен, чтобы отразить эти изменения.

См. также