.NET .NET Aspire Community Toolkit Meilisearch-integrering
omfattar:Hosting-integration och
Client integration
Not
Den här integreringen är en del av .NET.NET Aspire Community Toolkit och stöds inte officiellt av .NET.NET Aspire-teamet.
I den här artikeln får du lära dig hur du använder .NET.NET Aspire Meilisearch hostingintegration för att köra Meilisearch behållare och komma åt den via Meilisearchclient.
Hostingtjänstintegration
För att köra Meilisearch-containern, installera 📦 CommunityToolkit.Aspire.Hosting.Meilisearch NuGet-paketet i appvärd projektet.
dotnet add package CommunityToolkit.Aspire.Hosting.Meilisearch
För mer information, se dotnet add package eller Hantera paketberoenden i .NET applikationer.
Lägg till Meilisearch-resurs
I värdprojektet registrerar och använder du Meilisearch-integreringen med hjälp av AddMeilisearch
-tilläggsmetoden för att lägga till Meilisearch-containern i applikationsbyggaren.
var builder = DistributedApplication.CreateBuilder(args);
var meilisearch = builder.AddMeilisearch("meilisearch");
builder.AddProject<Projects.ExampleProject>()
.WithReference(meilisearch);
// After adding all resources, run the app...
När .NET.NET Aspire lägger till en containerbild till applikationsvärden, såsom visas i det föregående exemplet med docker.io/getmeili/meilisearch
-bilden, skapar den en ny Meilisearch-instans på den lokala datorn. En referens till din Meilisearch-resurs (variabeln meilisearch
) läggs till i ExampleProject
. Meilisearch-resursen innehåller en slumpmässigt genererad master key
med hjälp av metoden CreateDefaultPasswordParameter när en huvudnyckel inte angavs.
Mer information finns i Livscykel för containerresurser.
Lägg till Meilisearch-resurs med datavolym
Om du vill lägga till en datavolym i Meilisearch-resursen anropar du metoden Aspire.Hosting.MeilisearchBuilderExtensions.WithDataVolume
på Meilisearch-resursen:
var builder = DistributedApplication.CreateBuilder(args);
var meilisearch = builder.AddMeilisearch("meilisearch")
.WithDataVolume();
builder.AddProject<Projects.ExampleProject>()
.WithReference(meilisearch);
// After adding all resources, run the app...
Datavolymen används för att bevara Meilisearch-data utanför livscykeln för containern. Datavolymen monteras på /meili_data
-sökvägen i Meilisearch-containern och när name
-parameter inte anges genereras namnet slumpmässigt. Mer information om datavolymer och varför de föredras framför bindningsmonteringarfinns i Docker dokumentation: Volymer.
Lägg till Meilisearch-resurs med databindningsmontering
Om du vill lägga till en databindningsmontering till Meilisearch-resursen anropar du metoden 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...
Viktig
Data bindningsmonteringar har begränsade funktioner jämfört med volymer, vilket ger bättre prestanda, portabilitet och säkerhet, vilket gör dem mer lämpliga för produktionsmiljöer. Bindningsmonteringar tillåter dock direkt åtkomst och ändring av filer i värdsystemet, perfekt för utveckling och testning där realtidsändringar behövs.
Databindningsmonteringar förlitar sig på värddatorns filsystem för att bevara Meilisearch-data mellan omstarter av containrar. Databindningsmonteringen monteras på sökvägen C:\Meilisearch\Data
i Windows (eller /Meilisearch/Data
på Unix) på värddatorn i Meilisearch-containern. Mer information om databindningsfästen hittar du i Docker dokument: Bind fästen.
Lägg till Meilisearch-resurs med huvudnyckelparametern
När du uttryckligen vill ange huvudnyckeln som används av containeravbildningen kan du ange dessa autentiseringsuppgifter som parametrar. Tänk dig följande alternativa exempel:
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...
Mer information om hur du tillhandahåller parametrar finns i Externa parametrar.
Client integrering
Om du vill komma igång med .NET Aspire Meilisearch client integration installerar du 📦 CommunityToolkit.Aspire. Meilisearch NuGet-paketet i det client-konsumerande projektet, det vill säga projektet för programmet som använder Meilisearch-client.
dotnet add package CommunityToolkit.Aspire.Meilisearch
Lägg till Meilisearch client
I den Program.cs-filen för ditt client-konsumerande projekt anropar du Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddMeilisearchClient
-tilläggsmetoden för varje IHostApplicationBuilder för att registrera en MeilisearchClient
för användning via dependency injection-containern. Metoden tar en parameter för anslutningsnamn.
builder.AddMeilisearchClient(connectionName: "meilisearch");
Tips
Parametern connectionName
måste matcha namnet som används när du lägger till Meilisearch-resursen i appvärdprojektet. För mer information, se Lägg till Meilisearch-resurs.
Du kan sedan hämta MeilisearchClient
-instansen med hjälp av dependency injection. Om du till exempel vill hämta anslutningen från en exempeltjänst:
public class ExampleService(MeilisearchClient client)
{
// Use client...
}
Lägg till nycklade Meilisearch client
Det kan finnas situationer där du vill registrera flera MeilisearchClient
instanser med olika anslutningsnamn. Om du vill registrera nyckelade Meilisearch-klienter anropar du Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddKeyedMeilisearchClient
builder.AddKeyedMeilisearchClient(name: "products");
builder.AddKeyedMeilisearchClient(name: "orders");
Sedan kan du hämta MeilisearchClient
-instanser med hjälp av beroendeinjektion. Om du till exempel vill hämta anslutningen från en exempeltjänst:
public class ExampleService(
[FromKeyedServices("products")] MeilisearchClient productsClient,
[FromKeyedServices("orders")] MeilisearchClient ordersClient)
{
// Use clients...
}
Mer information om nyckelade tjänster finns i .NET beroendeinjektion: Nyckelade tjänster.
Konfiguration
Integreringen .NET Aspire Meilisearch client innehåller flera alternativ för att konfigurera server-anslutningen baserat på kraven och konventionerna i ditt projekt.
Använda en anslutningssträng
När du använder en anslutningssträng från ConnectionStrings
konfigurationsavsnittet kan du ange namnet på anslutningssträngen när du anropar builder.AddMeilisearchClient
:
builder.AddMeilisearchClient("meilisearch");
Sedan hämtas anslutningssträngen från ConnectionStrings
-konfigurationsavsnittet:
{
"ConnectionStrings": {
"meilisearch": "Endpoint=http://localhost:19530/;MasterKey=123456!@#$%"
}
}
Använda konfigurationsprovidrar
Integrationen .NET Aspire Meilisearch Client stöder Microsoft.Extensions.Configuration. Den läser in CommunityToolkit.Aspire.Meilisearch.MeilisearchClientSettings
från konfigurationen med hjälp av nyckeln Aspire:Meilisearch:Client
. Tänk på följande exempel apparinställningar.json som konfigurerar några av alternativen:
{
"Aspire": {
"Meilisearch": {
"Client": {
"Endpoint": "http://localhost:19530/",
"MasterKey": "123456!@#$%"
}
}
}
}
Använd inline-delegater
Du kan också skicka delegeringen Action<MeilisearchClientSettings> configureSettings
för att konfigurera vissa eller alla alternativ direkt, till exempel för att ange API-nyckeln från kod:
builder.AddMeilisearchClient(
"meilisearch",
static settings => settings.MasterKey = "123456!@#$%");
Client hälsokontroller för integrering
.NET Aspire Meilisearch-integrationen använder den konfigurerade client för att genomföra en IsHealthyAsync
. Om resultatet är true
anses hälsokontrollen vara hälsosam, annars är den ohälsosam. På samma sätt, om det finns ett undantag, anses hälsokontrollen vara ohälsosam och felet sprids genom hälsokontrollens misslyckande.
Se även
.NET Aspire