.NET Aspire Azure AI検索ドキュメントの統合
この記事では、.NET AspireAzure AI 検索ドキュメント clientを使用する方法について説明します。
Aspire.Azure.Search.Documents
ライブラリは、Azure Search に接続するための依存関係挿入 (DI) コンテナーに SearchIndexClient を登録するために使用されます。 対応する正常性チェックとログ記録が有効になります。
SearchIndexClient
の使用方法について詳しく知りたい場合は、「Azureの使用方法」をご覧ください。C# .NET アプリケーションにおけるドキュメント検索について。
作業の開始
- Azure サブスクリプション: 無料の用に作成します。
Search サービス: AI Search サービス リソースを作成 。
.NET Aspire Azure AI Search Documents の統合を開始するには、📦Aspireをインストールします。Azure.Search.Documents NuGet パッケージは、clientを使用するプロジェクト、つまり、Azure AI Search Documents clientを使用するアプリケーションのプロジェクトです。
dotnet add package Aspire.Azure.Search.Documents
詳細については、「dotnet パッケージ の追加」または「.NET アプリケーションでのパッケージの依存関係の管理」を参照してください。
使用例
client-consuming プロジェクトの Program.cs ファイルで、拡張メソッドを呼び出して、依存関係挿入コンテナーを介して使用する SearchIndexClient
を登録します。
AddAzureSearchClient メソッドは、接続名パラメーターを受け取ります。
builder.AddAzureSearchClient("searchConnectionName");
その後、依存関係の挿入を使用して SearchIndexClient
インスタンスを取得できます。 たとえば、サービスの例から client を取得するには、次のようにします。
public class ExampleService(SearchIndexClient indexClient)
{
// Use indexClient
}
SearchIndexClient.GetSearchClient メソッドを次のように呼び出すことで、クエリに使用できる SearchClient
を取得することもできます。
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;
}
}
詳細については、SearchIndexClient
の使用例については、Azure AI Search client ライブラリの .NET を参照してください。
アプリ ホストの使用状況
IDistributedApplicationBuilder Azure AI ホスティング のサポートを追加するには、📦Aspireをインストールします。ホスティング。Azure.アプリ ホスト プロジェクトで NuGet パッケージ 検索します。
dotnet add package Aspire.Hosting.Azure.Search
AppHost
の Program.cs ファイルで、Azure Search サービスを追加し、次の方法を使用して接続を使用します。
var builder = DistributedApplication.CreateBuilder(args);
var search = builder.ExecutionContext.IsPublishMode
? builder.AddAzureSearch("search")
: builder.AddConnectionString("search");
var myService = builder.AddProject<Projects.MyService>()
.WithReference(search);
AddAzureSearch メソッドは、ConnectionStrings:search
構成キーの下にある AppHost の構成 ("ユーザー シークレット" など) から接続情報を読み取ります。
WithReference
メソッドは、その接続情報を、MyService
プロジェクトの search
という名前の接続文字列に渡します。
MyService
の Program.cs ファイルでは、次を使用して接続を消費できます。
builder.AddAzureSearch("search");
設定
.NET Aspire
Azure
Azure 検索ライブラリには、プロジェクトの要件と規則に基づいて Azure Search Service を構成するための複数のオプションが用意されています。
Endpoint
または ConnectionString
を指定する必要があることに注意してください。
接続文字列を使用する
接続は、Endpoint={endpoint};Key={key};
形式の [キーとエンドポイント] タブから構築できます。
builder.AddAzureSearch()
を呼び出すときに接続文字列の名前を指定できます。
builder.AddAzureSearch("searchConnectionName");
接続文字列は、ConnectionStrings
構成セクションから取得されます。 次の 2 つの接続形式がサポートされています。
アカウント エンドポイント
Endpoint
を使用することをお勧めします。AzureSearchSettings.Credential
プロパティを使用して接続を確立します。 資格情報が構成されていない場合は、DefaultAzureCredential が使用されます。
{
"ConnectionStrings": {
"searchConnectionName": "https://{search_service}.search.windows.net/"
}
}
接続文字列
または、カスタム接続文字列を使用することもできます。
{
"ConnectionStrings": {
"searchConnectionName": "Endpoint=https://{search_service}.search.windows.net/;Key={account_key};"
}
}
構成プロバイダーを使用する
.NET Aspire
Azure AI Search ライブラリでは、Microsoft.Extensions.Configurationがサポートされています。
Aspire:Azure:Search:Documents
キーを使用して、構成から AzureSearchSettings
と SearchClientOptions
を読み込みます。 いくつかのオプションを構成する appsettings.json の例:
{
"Aspire": {
"Azure": {
"Search": {
"Documents": {
"DisableTracing": false,
}
}
}
}
}
インライン デリゲートを使用する
Action<AzureSearchSettings> configureSettings
デリゲートを渡して、コードからのトレースを無効にするなど、一部またはすべてのオプションをインラインで設定することもできます。
builder.AddAzureSearch(
"searchConnectionName",
static settings => settings.DisableTracing = true);
AddAzureSearch
メソッドの省略可能な Action<IAzureClientBuilder<SearchIndexClient, SearchClientOptions>> configureClientBuilder
パラメーターを使用して、SearchClientOptions を設定することもできます。 たとえば、この clientの client ID を設定するには、
builder.AddAzureSearch(
"searchConnectionName",
configureClientBuilder: builder => builder.ConfigureOptions(
static options => options.Diagnostics.ApplicationId = "CLIENT_ID"));
健康診断
既定では、.NET.NET Aspire 統合により、すべてのサービス 正常性チェック が有効になります。 詳細については、.NET.NET Aspire 統合の概要を参照してください。
.NET Aspire
Azure AI Search Documents 統合では、SearchIndexClient
で GetServiceStatisticsAsync メソッドを呼び出してサービスが使用可能であることを確認する 1 つの正常性チェックが実装されます。
可観測性とテレメトリ
伐採
.NET Aspire Azure AI Search Documents 統合では、次のログ カテゴリが使用されます。
Azure
Azure.Core
Azure.Identity
関連項目
.NET Aspire