Compartilhar via


integração do .NET AspireAzure Web PubSub

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

Pré-requisitos

  • Azure assinatura: crie um gratuitamente.
  • Uma instância de serviço Azure Web PubSub existente. Para obter mais informações, consulte Criar um recurso do 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 usar a integração do .NET AspireAzure Web PubSub, instale o pacote NuGet 📦Aspire.Azure. Messaging.WebPubSub no projeto que consome client, ou seja, 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 gerenciar dependências de pacotes em .NET applications.

Exemplo de uso

No arquivo Program.cs do projeto, chame o método de extensão AddAzureWebPubSubHub para registrar um WebPubSubServiceClient para ser usado por meio 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 de 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 de Azure.Messaging.WebPubSub.

Uso do host do aplicativo

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

dotnet add package Aspire.Hosting.Azure.WebPubSub

No projeto de host do 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 servidor do aplicativo (por exemplo, de "segredos do usuário") na 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, a conexão pode ser consumida 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 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. Há suporte para dois formatos de conexão:

Usar o ponto de extremidade de serviço

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

{
  "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 dá suporte a Microsoft.Extensions.Configuration. Ele carrega o AzureMessagingWebPubSubSettings e o WebPubSubServiceClientOptions a partir 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 o delegado Action<AzureMessagingWebPubSubSettings> configureSettings para configurar algumas ou todas as opções diretamente no código, por exemplo, para desativar verificações de estado a partir do 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 a ID de client para este client:

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

Exames de saúde

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

A integração do .NET AspireAzure Web PubSub expõe uma verificação de integridade configurável que indica íntegroquando o client consegue se conectar com êxito ao serviço Web PubSub Azure.

Observabilidade e telemetria

.NET .NET Aspire integrações configuram automaticamente configurações de Log, Rastreamento e Métricas, que às vezes são conhecidas como os pilares da observabilidade. Para obter mais informações sobre a observabilidade e a telemetria de integração, consulte .NET.NET Aspire visão geral das integrações. Dependendo do serviço de backup, algumas integrações só podem dar suporte a alguns desses recursos. Por exemplo, algumas integrações dão suporte a registro em log e rastreamento, mas não a métricas. Os recursos de telemetria também podem ser desabilitados usando as técnicas apresentadas na seção Configuration.

Registro

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

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

Rastreamento

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

  • "Azure.Messaging.WebPubSub.*"

Métricas

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

Consulte também