integracja .NET.NET Aspire Community Toolkit Meilisearch
obejmuje:integrację hostingu i Client integrację
Notatka
Ta integracja jest częścią
Z tego artykułu dowiesz się, jak używać integracji hostingu .NET.NET Aspire Meilisearch do uruchamiania kontenera Meilisearch i uzyskiwania do niego dostępu za pośrednictwem Meilisearchclient.
Integracja hostingu
Aby uruchomić kontener Meilisearch, zainstaluj zestaw 📦 CommunityToolkit.Aspire.Hosting.Meilisearch pakiet NuGet w projekcie hosta aplikacji .
dotnet add package CommunityToolkit.Aspire.Hosting.Meilisearch
Aby uzyskać więcej informacji, zobacz dotnet add package lub Zarządzaj zależnościami pakietów w .NET aplikacjach.
Dodawanie zasobu Meilisearch
W projekcie hosta aplikacji zarejestruj i użyj integracji Meilisearch, korzystając z metody rozszerzenia AddMeilisearch
, aby dodać kontener Meilisearch do budowniczego aplikacji.
var builder = DistributedApplication.CreateBuilder(args);
var meilisearch = builder.AddMeilisearch("meilisearch");
builder.AddProject<Projects.ExampleProject>()
.WithReference(meilisearch);
// After adding all resources, run the app...
Gdy .NET.NET Aspire dodaje obraz kontenera do hosta aplikacji, jak pokazano w poprzednim przykładzie z obrazem docker.io/getmeili/meilisearch
, tworzy nowe wystąpienie Meilisearch na komputerze lokalnym. Odwołanie do zasobu Meilisearch (zmiennej meilisearch
) jest dodawane do ExampleProject
. Zasób Meilisearch zawiera losowo wygenerowany master key
przy użyciu metody CreateDefaultPasswordParameter, gdy nie podano klucza głównego.
Aby uzyskać więcej informacji, zobacz Cykl życia zasobów kontenera.
Dodawanie zasobu Meilisearch z woluminem danych
Aby dodać wolumin danych do zasobu Meilisearch, wywołaj metodę Aspire.Hosting.MeilisearchBuilderExtensions.WithDataVolume
w zasobie Meilisearch:
var builder = DistributedApplication.CreateBuilder(args);
var meilisearch = builder.AddMeilisearch("meilisearch")
.WithDataVolume();
builder.AddProject<Projects.ExampleProject>()
.WithReference(meilisearch);
// After adding all resources, run the app...
Wolumin danych jest używany do utrwalania danych Meilisearch poza cyklem życia kontenera. Wolumin danych jest instalowany w ścieżce /meili_data
w kontenerze Meilisearch, a gdy nie podano parametru name
, nazwa jest generowana losowo. Aby uzyskać więcej informacji na temat woluminów oraz szczegóły dotyczące tego, dlaczego woluminy są preferowane nad montowaniem wiązań, zobacz dokumentację Docker: Woluminy.
Dodaj zasób Meilisearch z dołączeniem pasma danych
Aby dodać instalację powiązania danych do zasobu Meilisearch, wywołaj metodę 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...
Ważny
Instalacje powiązane danych mają ograniczoną funkcjonalność w porównaniu z woluminami , co zapewnia lepszą wydajność, przenośność i bezpieczeństwo, co czyni je bardziej odpowiednimi dla środowisk produkcyjnych. Jednak powiązania montowania umożliwiają bezpośredni dostęp i modyfikację plików w systemie hosta, co jest idealne do programowania i testowania, gdzie potrzebne są zmiany w czasie rzeczywistym.
Instalacje powiązania danych polegają na systemie plików maszyny hosta, aby utrwały dane Meilisearch między ponownymi uruchomieniami kontenera. Powiązanie danych jest zamontowane na C:\Meilisearch\Data
na Windowsie (lub /Meilisearch/Data
na Unix) na maszynie hosta w kontenerze Meilisearch. Aby uzyskać więcej informacji na temat punktów montowania danych, zobacz dokumentację Docker: Punkty montowania.
Dodaj zasób Meilisearch z parametrem klucza głównego
Jeśli chcesz wyraźnie podać klucz główny używany przez obraz kontenera, możesz podać te poświadczenia jako parametry. Rozważmy następujący przykład alternatywny:
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...
Aby uzyskać więcej informacji na temat udostępniania parametrów, zobacz Parametry zewnętrzne.
integracja Client
Aby rozpocząć pracę z integracją .NET Aspire Meilisearch client, zainstaluj pakiet NuGet 📦 CommunityToolkit.Aspire.Meilisearch w projekcie korzystającym z client, czyli w projekcie aplikacji wykorzystującej clientMeilisearch.
dotnet add package CommunityToolkit.Aspire.Meilisearch
Dodaj Meilisearch client
W pliku Program.cs projektu używającego client, wywołaj metodę rozszerzenia Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddMeilisearchClient
na dowolnym IHostApplicationBuilder, aby zarejestrować MeilisearchClient
do użycia za pośrednictwem kontenera dependency injection. Metoda przyjmuje parametr nazwy połączenia.
builder.AddMeilisearchClient(connectionName: "meilisearch");
Wskazówka
Parametr connectionName
musi być zgodny z nazwą używaną podczas dodawania zasobu Meilisearch w projekcie hosta aplikacji. Aby uzyskać więcej informacji, zobacz Dodaj zasób Meilisearch.
Następnie można pobrać wystąpienie MeilisearchClient
przy użyciu wstrzykiwania zależności. Aby na przykład pobrać połączenie z przykładowej usługi:
public class ExampleService(MeilisearchClient client)
{
// Use client...
}
Dodaj kluczowane Meilisearch client
Mogą wystąpić sytuacje, w których chcesz zarejestrować wiele wystąpień MeilisearchClient
z różnymi nazwami połączeń. Aby zarejestrować klientów Meilisearch z kluczami, wywołaj Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddKeyedMeilisearchClient
builder.AddKeyedMeilisearchClient(name: "products");
builder.AddKeyedMeilisearchClient(name: "orders");
Następnie możesz uzyskać wystąpienia MeilisearchClient
, korzystając z wstrzykiwania zależności. Aby na przykład pobrać połączenie z przykładowej usługi:
public class ExampleService(
[FromKeyedServices("products")] MeilisearchClient productsClient,
[FromKeyedServices("orders")] MeilisearchClient ordersClient)
{
// Use clients...
}
Aby uzyskać więcej informacji na temat usług z kluczami, zobacz .NET wstrzykiwanie zależności: usługi z kluczami.
Konfiguracja
Integracja .NET Aspire Meilisearch client udostępnia wiele opcji konfigurowania połączenia server na podstawie wymagań i konwencji projektu.
Używanie parametrów połączenia
W przypadku używania parametrów połączenia z sekcji konfiguracji ConnectionStrings
można podać nazwę parametrów połączenia podczas wywoływania builder.AddMeilisearchClient
:
builder.AddMeilisearchClient("meilisearch");
Następnie parametry połączenia zostaną pobrane z sekcji konfiguracji ConnectionStrings
:
{
"ConnectionStrings": {
"meilisearch": "Endpoint=http://localhost:19530/;MasterKey=123456!@#$%"
}
}
Korzystanie z dostawców konfiguracji
Integracja .NET Aspire Meilisearch Client obsługuje Microsoft.Extensions.Configuration. Ładuje CommunityToolkit.Aspire.Meilisearch.MeilisearchClientSettings
z konfiguracji przy użyciu klucza Aspire:Meilisearch:Client
. Rozważmy poniższy przykład ustawienia aplikacji.json, który konfiguruje niektóre opcje:
{
"Aspire": {
"Meilisearch": {
"Client": {
"Endpoint": "http://localhost:19530/",
"MasterKey": "123456!@#$%"
}
}
}
}
Używanie delegatów wbudowanych
Możesz również przekazać delegata Action<MeilisearchClientSettings> configureSettings
, aby skonfigurować niektóre lub wszystkie opcje bezpośrednio, na przykład w celu ustawienia klucza API z kodu.
builder.AddMeilisearchClient(
"meilisearch",
static settings => settings.MasterKey = "123456!@#$%");
Client kontroli kondycji integracji
Integracja .NET Aspire Meilisearch używa skonfigurowanego client do wykonania IsHealthyAsync
. Jeśli wynik jest true
, sprawdzanie kondycji jest uznawane za zdrowe, w przeciwnym razie jest niezdrowe. Podobnie, jeśli istnieje wyjątek, sprawdzanie kondycji jest uznawane za niezdrowe z powodu błędu propagowanego przez niepowodzenie sprawdzania kondycji.
Zobacz też
- Meilisearch
- Client Meilisearch
- .NET Aspire Zestaw narzędzi dla społeczności GitHub repozytorium