.NET Aspire Azure integração de Documentos de Pesquisa de IA
Neste artigo, você aprenderá a usar os documentos de pesquisa de IA .NET AspireAzureclient. A biblioteca Aspire.Azure.Search.Documents
é usada para registrar um SearchIndexClient no contêiner de injeção de dependência (DI) para conectar ao Azure Search. Ele habilita verificações de integridade correspondentes e registro em log.
Para obter mais informações sobre como usar o SearchIndexClient
, consulte Como usar Azure. Search.Documents em um aplicativo .NET C#.
Começar
- Azure assinatura: criar um paragratuito.
- Azure Serviço de pesquisa: criar um recurso de serviço de pesquisa de IA Azure.
Para começar a usar a integração .NET AspireAzure AI Search Documents, instale o pacote NuGet 📦Aspire.Azure. Search.Documents no projeto de consumo de client, ou seja, o projeto do aplicativo que usa o Azure AI Search Documents client.
dotnet add package Aspire.Azure.Search.Documents
Para obter mais informações, consulte dotnet add package ou Gerenciar dependências de pacotes em aplicações .NET.
Exemplo de uso
No arquivo Program.cs do seu projeto consumidor de client, chame o método de extensão para registrar um SearchIndexClient
para uso através do contêiner de injeção de dependência. O método AddAzureSearchClient usa um parâmetro de nome de conexão.
builder.AddAzureSearchClient("searchConnectionName");
Em seguida, você pode recuperar a instância SearchIndexClient
usando a injeção de dependência. Por exemplo, para recuperar o client de um serviço de exemplo:
public class ExampleService(SearchIndexClient indexClient)
{
// Use indexClient
}
Você também pode recuperar um SearchClient
que pode ser usado para consulta, chamando o método SearchIndexClient.GetSearchClient da seguinte maneira:
public class ExampleService(SearchIndexClient indexClient)
{
public async Task<long> GetDocumentCountAsync(
string indexName,
CancellationToken cancellationToken)
{
var searchClient = indexClient.GetSearchClient(indexName);
var documentCountResponse = await searchClient.GetDocumentCountAsync(
cancellationToken);
return documentCountResponse.Value;
}
}
Para obter mais informações, consulte a biblioteca client de Pesquisa de IA Azure para .NET para obter exemplos sobre como usar o SearchIndexClient
.
Uso do host do aplicativo
Para adicionar Azure suporte à hospedagem de IA ao seu IDistributedApplicationBuilder, instale o 📦Aspire. Hospedagem.Azure. Pesquise pacote NuGet no projeto de host do aplicativo.
dotnet add package Aspire.Hosting.Azure.Search
No arquivo Program.cs de AppHost
, adicione um serviço Azure Search e consuma a conexão usando os seguintes métodos:
var builder = DistributedApplication.CreateBuilder(args);
var search = builder.ExecutionContext.IsPublishMode
? builder.AddAzureSearch("search")
: builder.AddConnectionString("search");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(search);
O método AddAzureSearch irá ler informações de conexão da configuração do AppHost (por exemplo, dos "segredos do usuário") sob a chave de configuração ConnectionStrings:search
. O método WithReference
passa essas informações de conexão para uma cadeia de conexão chamada search
no projeto MyService
. No arquivo Program.cs de MyService
, a conexão pode ser utilizada usando:
builder.AddAzureSearch("search");
Configuração
A biblioteca .NET AspireAzureAzure Pesquisa fornece várias opções para configurar o Serviço de Pesquisa Azure 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
Uma conexão pode ser estabelecida a partir da guia Chaves e ponto final com o formato Endpoint={endpoint};Key={key};
. Você pode fornecer o nome da cadeia de conexão ao chamar builder.AddAzureSearch()
:
builder.AddAzureSearch("searchConnectionName");
E, em seguida, a cadeia de conexão será recuperada da seção de configuração ConnectionStrings
. Há suporte para dois formatos de conexão:
Ponto de extremidade da conta
A abordagem recomendada é usar um Endpoint
, que funciona com a propriedade AzureSearchSettings.Credential
para estabelecer uma conexão. Se nenhuma credencial estiver configurada, o DefaultAzureCredential será usado.
{
"ConnectionStrings": {
"searchConnectionName": "https://{search_service}.search.windows.net/"
}
}
Cadeia de conexão
Como alternativa, uma cadeia de conexão personalizada pode ser usada.
{
"ConnectionStrings": {
"searchConnectionName": "Endpoint=https://{search_service}.search.windows.net/;Key={account_key};"
}
}
Usar provedores de configuração
A biblioteca de pesquisa de IA do .NET AspireAzure dá suporte a Microsoft.Extensions.Configuration. Ele carrega o AzureSearchSettings
e SearchClientOptions
da configuração usando a chave Aspire:Azure:Search:Documents
. Exemplo appsettings.json que configura algumas das opções:
{
"Aspire": {
"Azure": {
"Search": {
"Documents": {
"DisableTracing": false,
}
}
}
}
}
Usar delegados embutidos
Você também pode passar o delegado Action<AzureSearchSettings> configureSettings
para configurar algumas ou todas as opções diretamente na linha, por exemplo, para desabilitar o rastreamento a partir do código:
builder.AddAzureSearch(
"searchConnectionName",
static settings => settings.DisableTracing = true);
Você também pode configurar o SearchClientOptions usando o parâmetro Action<IAzureClientBuilder<SearchIndexClient, SearchClientOptions>> configureClientBuilder
opcional do método AddAzureSearch
. Por exemplo, para definir a ID de client para este client:
builder.AddAzureSearch(
"searchConnectionName",
configureClientBuilder: builder => builder.ConfigureOptions(
static options => options.Diagnostics.ApplicationId = "CLIENT_ID"));
Verificações de saúde
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 de integrações.
A integração .NET AspireAzure de Documentos de Pesquisa de IA implementa um teste de integridade único, que chama o método GetServiceStatisticsAsync no SearchIndexClient
para verificar se o serviço está disponível.
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 .NET AspireAzure AI Search Documents usa as seguintes categorias de log:
Azure
Azure.Core
Azure.Identity