Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Notis
Den här integreringen Aspire är en del av Community Toolkit och stöds inte officiellt av Aspire teamet.
I den här artikeln får du lära dig hur du använder Aspire Meilisearch-värdintegreringen för att köra Meilisearch-containern och komma åt den via Meilisearch-klienten .
Hostingtjänstintegration
Installera CommunityToolkit för att köra Meilisearch-containern📦Aspire. Hosting.Meilisearch NuGet-paketet i AppHost-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 AppHost-projektet registrerar och använder du Meilisearch-integreringen AddMeilisearch med hjälp av tilläggsmetoden för att lägga till Meilisearch-containern i programverktyget.
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 Aspire lägger till en containeravbildning i AppHost, som du ser i föregående exempel med avbildningen docker.io/getmeili/meilisearch, skapas 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
För att lägga till ett databindfäste till Meilisearch-resursen, anropa 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 bind mounts har begränsad funktionalitet jämfört med volymer, som erbjuder 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
Kom igång med Aspire Meilisearch-klientintegrering genom att 📦 installera CommunityToolkit.Aspire. Meilisearch NuGet-paketet i det klientkrävande projektet, det vill säga projektet för programmet som använder Meilisearch-klienten.
dotnet add package CommunityToolkit.Aspire.Meilisearch
Lägg till Meilisearch-klient
I Program.cs-filen för ditt klientprojekt anropar du Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddMeilisearchClient-tilläggsmetoden på valfri IHostApplicationBuilder för att registrera en MeilisearchClient för användning via beroendeinjiceringscontainern. 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 AppHost-projektet. 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 meilisearch-nyckelklient
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
Meilisearch-klientintegrering Aspire innehåller flera alternativ för att konfigurera serveranslutningen 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 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. Överväg följande exempel appsettings.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
              Aspire Meilisearch-integreringen använder den konfigurerade klienten för att utföra en IsHealthyAsync. Om resultatet är trueanses 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.