integración de .NET AspireAzure Web PubSub
En este artículo, se explica cómo usar la integración de .NET AspireAzure Web PubSub. La biblioteca Aspire.Azure.Messaging.WebPubSub
ofrece opciones para registrar un WebPubSubServiceClient en el contenedor de inyección de dependencias para conectarse a Azure Web PubSub.
Prerrequisitos
- Azure suscripción: crear una cuenta gratuita.
- Una instancia de servicio Azure Web PubSub existente. Para obtener más información, consulte Creación de un recurso de Web PubSub. Como alternativa, puede usar una cadena de conexión, que no se recomienda en entornos de producción.
Comenzar
Para empezar a trabajar con la integración de .NET AspireAzure Web PubSub, instale el paquete NuGet 📦Aspire.Azure. Messaging.WebPubSub en el proyecto que consume client, es decir, el proyecto de la aplicación que usa el Azure Web PubSub client.
-
CLI de
- PackageReference
dotnet add package Aspire.Azure.Messaging.WebPubSub
Para obtener más información, consulte dotnet add package o Manage package dependencies in .NET applications.
Ejemplo de uso
En el archivo Program.cs del proyecto, llame al método de extensión AddAzureWebPubSubHub
para registrar un WebPubSubServiceClient
para su uso a través del contenedor de inserción de dependencias. El método toma un parámetro de nombre de conexión.
builder.AddAzureWebPubSubServiceClient("wps");
A continuación, puede recuperar la instancia de WebPubSubServiceClient
mediante inyección de dependencias. Por ejemplo, para recuperar el client de un servicio:
public class ExampleService(WebPubSubServiceClient client)
{
// Use client...
}
Para obtener más información, consulte la documentación de Azure.Messaging.WebPubSub.
Uso del host de la aplicación
Para agregar Azure compatibilidad de hospedaje de Web PubSub a la IDistributedApplicationBuilder, instale el paquete NuGet 📦Aspire.Hosting.Azure.WebPubSub en el proyecto host de la aplicación .
dotnet add package Aspire.Hosting.Azure.WebPubSub
En el proyecto host de la aplicación, agregue una conexión de Web PubSub y consuma la conexión mediante los métodos siguientes:
var webPubSub = builder.AddAzureWebPubSub("wps");
var exampleService = builder.AddProject<Projects.ExampleService>()
.WithReference(webPubSub);
El método AddAzureWebPubSubHub
lee la información de conexión de la configuración del host de la aplicación (por ejemplo, de "secretos de usuario") bajo la clave de configuración ConnectionStrings:wps
. El método WithReference
pasa esa información de conexión a una cadena de conexión denominada wps
en el proyecto de ExampleService
. En el archivo Program.cs de ExampleService
, la conexión se puede consumir mediante:
builder.AddAzureWebPubSubServiceClient("wps");
Configuración
La biblioteca .NET AspireAzure Web PubSub proporciona varias opciones para configurar la conexión Azure Web PubSub en función de los requisitos y convenciones del proyecto. Tenga en cuenta que es necesario proporcionar una Endpoint
o una ConnectionString
.
Uso de una cadena de conexión
Al usar una cadena de conexión de la sección de configuración de ConnectionStrings
, puede proporcionar el nombre de la cadena de conexión al llamar a builder.AddAzureWebPubSubHub()
:
builder.AddAzureWebPubSubServiceClient(
"WebPubSubConnectionName",
"your_hub_name");
Y, a continuación, la información de conexión se recuperará de la sección de configuración de ConnectionStrings
. Se admiten dos formatos de conexión:
Usar el punto de conexión del servicio
El enfoque recomendado es usar el punto de conexión de servicio, que funciona con la propiedad AzureMessagingWebPubSubSettings.Credential
para establecer una conexión. Si no se configura ninguna credencial, se usa DefaultAzureCredential.
{
"ConnectionStrings": {
"WebPubSubConnectionName": "https://xxx.webpubsub.azure.com"
}
}
Cadena de conexión
Como alternativa, se puede usar una cadena de conexión.
{
"ConnectionStrings": {
"WebPubSubConnectionName": "Endpoint=https://xxx.webpubsub.azure.com;AccessKey==xxxxxxx"
}
}
Uso de proveedores de configuración
La biblioteca .NET AspireAzure Web PubSub admite Microsoft.Extensions.Configuration. Carga el AzureMessagingWebPubSubSettings
y el WebPubSubServiceClientOptions
desde la configuración mediante la clave Aspire:Azure:Messaging:WebPubSub
. Considere el ejemplo appsettings.json que configura algunas de las opciones:
{
"Aspire": {
"Azure": {
"Messaging": {
"WebPubSub": {
"DisableHealthChecks": true,
"HubName": "your_hub_name"
}
}
}
}
}
Uso de delegados insertados
También puede pasar el delegado de Action<AzureMessagingWebPubSubSettings> configureSettings
para configurar algunas o todas las opciones en línea, por ejemplo, para deshabilitar las comprobaciones de estado desde el código:
builder.AddAzureWebPubSubServiceClient(
"wps",
settings => settings.DisableHealthChecks = true);
También puede configurar el WebPubSubServiceClientOptions mediante el parámetro opcional Action<IAzureClientBuilder<WebPubSubServiceClient, WebPubSubServiceClientOptions>> configureClientBuilder
del método AddAzureWebPubSubHub
. Por ejemplo, para establecer el identificador de client para este client:
builder.AddAzureWebPubSubServiceClient(
"wps",
configureClientBuilder: clientBuilder =>
clientBuilder.ConfigureOptions(options => options.Retry.MaxRetries = 5));
Comprobaciones de estado
De forma predeterminada, las integraciones de .NET.NET Aspire habilitan para todos los servicios las comprobaciones de estado de . Para obtener más información, consulte .NET.NET Aspire integrations overview.
El identificador de integración de .NET AspireAzure Web PubSub expone una comprobación de estado configurable que informa como correcto, cuando el client puede conectarse correctamente al servicio Azure Web PubSub.
Observabilidad y telemetría
.NET .NET Aspire integraciones configuran automáticamente las configuraciones de registro, seguimiento y métricas, que a veces se conocen como los pilares de la observabilidad. Para obtener más información sobre la observabilidad de integración y la telemetría, consulte información general sobre las integraciones de .NET.NET Aspire. En función del servicio de respaldo, algunas integraciones solo pueden admitir algunas de estas características. Por ejemplo, algunas integraciones admiten el registro y el seguimiento, pero no las métricas. Las características de telemetría también se pueden deshabilitar mediante las técnicas presentadas en la sección Configuración.
Registro
La integración de .NET AspireAzure Web PubSub usa las siguientes categorías de registro:
Azure
Azure.Core
Azure.Identity
Azure.Messaging.WebPubSub
Rastrear
La integración de .NET AspireAzure Web PubSub emitirá las siguientes actividades de seguimiento mediante OpenTelemetry:
- "Azure.Messaging.WebPubSub.*"
Métricas
La integración de .NET AspireAzure Web PubSub actualmente no admite métricas de forma predeterminada debido a limitaciones con el SDK de Azure para .NET. Si eso cambia en el futuro, esta sección se actualizará para reflejar esos cambios.