.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.
- .NET CLI
- ReferênciaPacote
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 .
- .NET CLI
- PackageReference
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.