Partilhar via


.NET Aspire Azure Integração Web PubSub

Neste artigo, você aprenderá a usar a integração .NET AspireAzure Web PubSub. A biblioteca Aspire.Azure.Messaging.WebPubSub oferece opções para registrar um WebPubSubServiceClient no contêiner DI para se conectar a Azure Web PubSub.

Pré-requisitos

  • Azure assinatura: criar uma gratuitamente.
  • Uma instância existente do serviço Azure Web PubSub. Para obter mais informações, consulte Criar um recurso Web PubSub. Como alternativa, você pode usar uma cadeia de conexão, que não é recomendada em ambientes de produção.

Começar

Para começar a integrar o .NET AspireAzure Web PubSub, instale o pacote NuGet 📦Aspire.Azure.Messaging.WebPubSub no projeto que consome client, isto é, o projeto para o aplicativo que usa o Azure Web PubSub client.

dotnet add package Aspire.Azure.Messaging.WebPubSub

Para obter mais informações, consulte dotnet add package ou Gerir dependências de pacotes em aplicações .NET.

Exemplo de utilização

No arquivo Program.cs do seu projeto, chame o método de extensão AddAzureWebPubSubHub para registar um WebPubSubServiceClient para uso através do contêiner de injeção de dependência. O método usa um parâmetro de nome de conexão.

builder.AddAzureWebPubSubServiceClient("wps");

Em seguida, você pode recuperar a instância WebPubSubServiceClient usando a injeção de dependência. Por exemplo, para recuperar o client de um serviço:

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

Para obter mais informações, consulte a documentação do AzureMessaging.WebPubSub.

Uso do host da aplicação

Para adicionar o suporte de hospedagem Azure Web PubSub ao seu IDistributedApplicationBuilder, instale o 📦Aspire.Hosting.Azure.WebPubSub pacote NuGet no projeto do app host .

dotnet add package Aspire.Hosting.Azure.WebPubSub

Em seu projeto de host de aplicativo, adicione uma conexão Web PubSub e consuma a conexão usando os seguintes métodos:

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

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

O método AddAzureWebPubSubHub lê informações de conexão da configuração do host do aplicativo (por exemplo, de "segredos do usuário") sob a chave de configuração ConnectionStrings:wps. O método WithReference passa essas informações de conexão para uma cadeia de conexão chamada wps no projeto ExampleService. No arquivo Program.cs de ExampleService, pode-se consumir a conexão usando:

builder.AddAzureWebPubSubServiceClient("wps");

Configuração

A biblioteca .NET AspireAzure Web PubSub fornece várias opções para configurar a conexão Azure Web PubSub com base nos requisitos e convenções do seu projeto. Observe que é necessário fornecer um Endpoint ou um ConnectionString.

Usar uma cadeia de conexão

Ao usar uma cadeia de conexão da seção de configuração de ConnectionStrings, você pode fornecer o nome da cadeia de conexão ao chamar builder.AddAzureWebPubSubHub():

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

E, em seguida, as informações de conexão serão recuperadas da seção de configuração ConnectionStrings. Dois formatos de conexão são suportados:

Usar o endpoint de serviço

A abordagem recomendada é usar o endpoint de serviço, que funciona com a propriedade AzureMessagingWebPubSubSettings.Credential para estabelecer ligação. Se nenhuma credencial estiver configurada, DefaultAzureCredential será utilizada.

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

Cadeia de conexão

Como alternativa, uma cadeia de conexão pode ser usada.

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

Usar provedores de configuração

A biblioteca .NET AspireAzure Web PubSub suporta Microsoft.Extensions.Configuration. Ele carrega os AzureMessagingWebPubSubSettings e os WebPubSubServiceClientOptions da configuração usando a chave Aspire:Azure:Messaging:WebPubSub. Considere o exemplo appsettings.json que configura algumas das opções:

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

Usar delegados embutidos

Você também pode passar a função de delegação Action<AzureMessagingWebPubSubSettings> configureSettings para configurar algumas ou todas as opções em linha, por exemplo, para desativar as verificações de integridade através de código:

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

Você também pode configurar o WebPubSubServiceClientOptions usando o parâmetro Action<IAzureClientBuilder<WebPubSubServiceClient, WebPubSubServiceClientOptions>> configureClientBuilder opcional do método AddAzureWebPubSubHub. Por exemplo, para definir o ID de client para este client:

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

Controlos sanitários

Por padrão, as integrações .NET.NET Aspire habilitam verificações de integridade para todos os serviços. Para obter mais informações, consulte .NET.NET Aspire visão geral das integrações.

O .NET AspireAzure Web PubSub integration handles expõe uma verificação de integridade configurável que relata como íntegro, quando o client pode se conectar com êxito ao serviço Azure Web PubSub.

Observabilidade e telemetria

.NET .NET Aspire as integrações configuram automaticamente registos, rastreio e métricas, que são por vezes referidos como os pilares da observabilidade. Para obter mais informações sobre observabilidade e telemetria de integração, consulte Visão geral de integrações .NET.NET Aspire. Dependendo do serviço de suporte, algumas integrações podem suportar apenas alguns desses recursos. Por exemplo, algumas integrações suportam registro em log e rastreamento, mas não métricas. Os recursos de telemetria também podem ser desativados usando as técnicas apresentadas na seção Configuração.

Registo

A integração .NET AspireAzure Web PubSub usa as seguintes categorias de log:

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

Rastreio

A integração .NET AspireAzure Web PubSub emitirá as seguintes atividades de rastreamento usando OpenTelemetry:

  • "Azure.Messaging.WebPubSub.*"

Métricas

A integração .NET AspireAzure Web PubSub atualmente não suporta métricas por padrão devido a limitações com o SDK Azure para .NET. Se isso mudar no futuro, esta seção será atualizada para refletir essas alterações.

Ver também