интеграция .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. Если в будущем что-то изменится, этот раздел будет обновлен, чтобы отразить эти изменения.
См. также
.NET Aspire