Compartir a través de


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

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.

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.

Consulte también