.NET .NET Aspire Community Toolkit Meilisearch 통합
메모
이 통합은 .NET.NET Aspire 커뮤니티 도구 키트 일부이며 .NET Aspire 지원하지 않습니다.
이 문서에서는 .NET.NET Aspire Meilisearch 호스팅 통합을 사용하여 Meilisearch 컨테이너를 실행하고, Meilisearchclient을(를) 통해 접근하는 방법을 알아봅니다.
호스팅 통합
Meilisearch 컨테이너를 실행하려면 📦 CommunityToolkit를 설치합니다.Aspire. Hosting.Meilisearch는 앱 호스트 프로젝트에서 NuGet 패키지를.
dotnet add package CommunityToolkit.Aspire.Hosting.Meilisearch
자세한 내용은 dotnet add package 또는 응용 프로그램에서 패키지 종속성을 관리하기를 참조하세요 .NET.
Meilisearch 리소스 추가
앱 호스트 프로젝트에서 AddMeilisearch
확장 메서드를 사용하여 애플리케이션 빌더에 Meilisearch 컨테이너를 추가하기 위해 Meilisearch 통합을 등록하고 사용합니다.
var builder = DistributedApplication.CreateBuilder(args);
var meilisearch = builder.AddMeilisearch("meilisearch");
builder.AddProject<Projects.ExampleProject>()
.WithReference(meilisearch);
// After adding all resources, run the app...
.NET
.NET Aspire
docker.io/getmeili/meilisearch
이미지와 함께 이전 예제와 같이 앱 호스트에 컨테이너 이미지를 추가하면 로컬 머신에 새 Meilisearch 인스턴스가 만들어집니다. Meilisearch 리소스(meilisearch
변수)에 대한 참조가 ExampleProject
에 추가됩니다. Meilisearch 리소스에는 마스터 키가 제공되지 않은 경우 master key
메서드를 사용하여 임의로 생성된 CreateDefaultPasswordParameter 포함됩니다.
자세한 내용은 컨테이너 리소스 수명 주기참조하세요.
데이터 볼륨을 사용하여 Meilisearch 리소스 추가
Meilisearch 리소스에 데이터 볼륨을 추가하려면 Meilisearch 리소스에서 Aspire.Hosting.MeilisearchBuilderExtensions.WithDataVolume
메서드를 호출합니다.
var builder = DistributedApplication.CreateBuilder(args);
var meilisearch = builder.AddMeilisearch("meilisearch")
.WithDataVolume();
builder.AddProject<Projects.ExampleProject>()
.WithReference(meilisearch);
// After adding all resources, run the app...
데이터 볼륨은 컨테이너의 수명 주기 외부에 Meilisearch 데이터를 유지하는 데 사용됩니다. 데이터 볼륨은 Meilisearch 컨테이너의 /meili_data
경로에 탑재되고 name
매개 변수가 제공되지 않으면 이름이 임의로 생성됩니다. 데이터 볼륨에 대한 자세한 내용 및
데이터 바인드 마운트를 사용하여 Meilisearch 리소스를 추가합니다.
Meilisearch 리소스에 데이터 바인딩 탑재를 추가하려면 Aspire.Hosting.MeilisearchBuilderExtensions.WithDataBindMount
메서드를 호출합니다.
var builder = DistributedApplication.CreateBuilder(args);
var meilisearch = builder.AddMeilisearch("meilisearch")
.WithDataBindMount(
source: @"C:\Meilisearch\Data");
builder.AddProject<Projects.ExampleProject>()
.WithReference(meilisearch);
// After adding all resources, run the app...
중요하다
데이터 바인딩 탑재볼륨비해 기능이 제한되므로 성능, 이식성 및 보안이 향상되어 프로덕션 환경에 더 적합합니다. 그러나 바인딩 탑재를 사용하면 호스트 시스템의 파일에 직접 액세스하고 수정할 수 있으므로 실시간 변경이 필요한 개발 및 테스트에 적합합니다.
데이터 바인드 마운트는 호스트 컴퓨터의 파일 시스템을 통해 컨테이너가 다시 시작되어도 Meilisearch 데이터를 지속시킵니다. 데이터 바인드 마운트는 Meilisearch 컨테이너의 호스트 컴퓨터에서 Windows의 C:\Meilisearch\Data
경로(또는 /Meilisearch/Data
의 Unix 경로)에 마운트됩니다. 데이터 바인드 마운트에 대한 자세한 내용은 Docker 문서:바인드 마운트를 참조하세요.
마스터 키 매개 변수를 사용하여 Meilisearch 리소스 추가
컨테이너 이미지에서 사용하는 마스터 키를 명시적으로 제공하려는 경우 이러한 자격 증명을 매개 변수로 제공할 수 있습니다. 다음 대체 예제를 고려합니다.
var builder = DistributedApplication.CreateBuilder(args);
var masterkey = builder.AddParameter("masterkey", secret: true);
var meilisearch = builder.AddMeilisearch("meilisearch", masterkey);
builder.AddProject<Projects.ExampleProject>()
.WithReference(meilisearch);
// After adding all resources, run the app...
매개 변수를 제공하는 방법에 대한 자세한 내용은 외부 매개 변수참조하세요.
Client 통합
dotnet add package CommunityToolkit.Aspire.Meilisearch
Meilisearch client 추가
Program.cs사용 중인 프로젝트의 client 파일에서 특정 Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddMeilisearchClient
에 대해서 IHostApplicationBuilder 확장 메서드를 호출하여, 종속성 주입 컨테이너를 통해 사용할 MeilisearchClient
를 등록하십시오. 메서드는 연결 이름 매개 변수를 사용합니다.
builder.AddMeilisearchClient(connectionName: "meilisearch");
팁
connectionName
매개 변수는 앱 호스트 프로젝트에서 Meilisearch 리소스를 추가할 때 사용되는 이름과 일치해야 합니다. 자세한 내용은 추가 Meilisearch 리소스참조하세요.
그런 다음 종속성 주입을 사용하여 MeilisearchClient
인스턴스를 검색할 수 있습니다. 예를 들어 예제 서비스에서 연결을 검색하려면 다음을 수행합니다.
public class ExampleService(MeilisearchClient client)
{
// Use client...
}
키가 있는 Meilisearch client 추가
여러 MeilisearchClient
인스턴스를 서로 다른 연결 이름으로 등록하려는 경우가 있을 수 있습니다. 키가 지정된 Meilisearch 클라이언트를 등록하려면 Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddKeyedMeilisearchClient
을 호출하십시오.
builder.AddKeyedMeilisearchClient(name: "products");
builder.AddKeyedMeilisearchClient(name: "orders");
그런 다음 종속성 주입을 사용하여 MeilisearchClient
인스턴스를 검색할 수 있습니다. 예를 들어 예제 서비스에서 연결을 검색하려면 다음을 수행합니다.
public class ExampleService(
[FromKeyedServices("products")] MeilisearchClient productsClient,
[FromKeyedServices("orders")] MeilisearchClient ordersClient)
{
// Use clients...
}
키가 지정된 서비스에 대한 자세한 내용은 .NET 종속성 주입: 키가 지정된 서비스를 참조하십시오.
구성
.NET Aspire Meilisearch client 통합은 프로젝트의 요구 사항 및 규칙에 따라 server 연결을 구성하는 여러 옵션을 제공합니다.
연결 문자열 사용
ConnectionStrings
구성 섹션에서 연결 문자열을 사용하는 경우 builder.AddMeilisearchClient
호출할 때 연결 문자열의 이름을 제공할 수 있습니다.
builder.AddMeilisearchClient("meilisearch");
그런 다음 ConnectionStrings
구성 섹션에서 연결 문자열을 검색합니다.
{
"ConnectionStrings": {
"meilisearch": "Endpoint=http://localhost:19530/;MasterKey=123456!@#$%"
}
}
구성 공급자 사용
.NET Aspire Meilisearch Client 통합은 Microsoft.Extensions.Configuration를 지원합니다.
CommunityToolkit.Aspire.Meilisearch.MeilisearchClientSettings
키를 사용하여 구성에서 Aspire:Meilisearch:Client
로드합니다. 다음 예제 appsettings.json는 몇 가지 옵션을 구성합니다.
{
"Aspire": {
"Meilisearch": {
"Client": {
"Endpoint": "http://localhost:19530/",
"MasterKey": "123456!@#$%"
}
}
}
}
인라인 대리자를 사용하십시오
또한 Action<MeilisearchClientSettings> configureSettings
대리자를 전달하여 코드에서 API 키를 설정하는 등 일부 또는 모든 옵션을 인라인으로 설정할 수 있습니다.
builder.AddMeilisearchClient(
"meilisearch",
static settings => settings.MasterKey = "123456!@#$%");
통합 상태 검사 Client
.NET Aspire Meilisearch 통합은 설정된 client을 사용하여 IsHealthyAsync
를 수행합니다. 결과가 true
이면 건강 검진이 정상으로 간주되고, 그렇지 않으면 비정상으로 간주됩니다. 마찬가지로 예외가 있는 경우 상태 검사는 상태 검사 실패를 통해 전파되는 오류와 함께 비정상으로 간주됩니다.
참조
.NET Aspire