integração do .NET AspireAzure Web PubSub
Neste artigo, você aprenderá a usar a integração do .NET AspireAzure Web PubSub. A biblioteca de
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.