Sdílet prostřednictvím


Integrace Meilisearch nástroje Community Toolkit .NET.NET Aspire

zahrnuje:integrace hostování a integrace Client

Poznámka

Tato integrace je součástí sady .NET.NET Aspire Community Toolkit a není oficiálně podporovaná týmem .NET.NET Aspire.

V tomto článku se dozvíte, jak prostřednictvím integrace hostingu .NET.NET Aspire Meilisearch spustit kontejner Meilisearch a jak k němu přistupovat pomocí Meilisearchclient.

Integrace hostování

Pokud chcete spustit kontejner Meilisearch, nainstalujte 📦 CommunityToolkit.Aspire. Hostování.Meilisearch balíčku NuGet v projektu hostitele aplikace .

dotnet add package CommunityToolkit.Aspire.Hosting.Meilisearch

Další informace najdete v tématu dotnet add package nebo Správa závislostí balíčků v .NET aplikacích.

Přidání prostředku Meilisearch

V projektu hostitele aplikace zaregistrujte a využijte integraci Meilisearch pomocí metody rozšíření AddMeilisearch pro přidání kontejneru Meilisearch do tvůrce aplikací.

var builder = DistributedApplication.CreateBuilder(args);

var meilisearch = builder.AddMeilisearch("meilisearch");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(meilisearch);

// After adding all resources, run the app...

Když .NET.NET Aspire přidá obraz kontejneru do hostitele aplikace, jak je znázorněno v předchozím příkladu s obrazem docker.io/getmeili/meilisearch, vytvoří se na vašem místním počítači nová instance Meilisearch. Do meilisearchse přidá reference na váš prostředek Meilisearch (proměnná ExampleProject). Prostředek Meilisearch zahrnuje náhodně vygenerovaný master key pomocí metody CreateDefaultPasswordParameter, pokud nebyl poskytnut hlavní klíč.

Další informace najdete v tématu životní cyklus prostředků kontejneru.

Přidání zdroje Meilisearch s objemem dat.

Pokud chcete přidat datový svazek do prostředku Meilisearch, zavolejte metodu Aspire.Hosting.MeilisearchBuilderExtensions.WithDataVolume prostředku 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...

Objem dat se používá k uchování dat Meilisearch mimo životní cyklus kontejneru. Svazek dat se připojí k cestě /meili_data v kontejneru Meilisearch a pokud není zadaný parametr name, název se náhodně vygeneruje. Další informace o datových svazcích a podrobnosti o tom, proč se upřednostňují před vázaným připojením, najdete v dokumentaci Docker: Svazky.

Přidejte prostředek Meilisearch s připojením svazku dat

Pokud chcete přidat datový bind mount k prostředku Meilisearch, zavolejte metodu 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...

Důležitý

Připojení vazby dat mají v porovnání s svazkyomezené funkce, které nabízejí lepší výkon, přenositelnost a zabezpečení, což je vhodnější pro produkční prostředí. Připojení vazby však umožňují přímý přístup a úpravy souborů v hostitelském systému, které jsou ideální pro vývoj a testování, kde jsou potřebné změny v reálném čase.

Datové bind mounty využívají systém souborů hostitelského počítače k zachování dat Meilisearch při restartování kontejneru. Datový připojený svazek je připojen na cestě C:\Meilisearch\Data v prostředí Windows (nebo /Meilisearch/Data na Unix) na hostitelském počítači v kontejneru Meilisearch. Další informace o připojeních datových vazeb najdete v dokumentaci Docker: Připojení vazby.

Přidání prostředku Meilisearch s parametrem hlavního klíče

Pokud chcete explicitně zadat hlavní klíč používaný imagí kontejneru, můžete tyto přihlašovací údaje zadat jako parametry. Podívejte se na následující alternativní příklad:

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...

Další informace o poskytování parametrů naleznete v tématu Externí parametry.

integrace Client

Pokud chcete začít s integrací .NET Aspire Meilisearch client, nainstalujte sadu 📦 CommunityToolkit.Aspire. Meilisearch balíček NuGet v projektu, který spotřebovává client, to znamená projekt pro aplikaci, která používá clientMeilisearch.

dotnet add package CommunityToolkit.Aspire.Meilisearch

Přidejte Meilisearch client

V souboru Program.cs projektu, který využívá client, zavolejte metodu rozšíření Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddMeilisearchClient na libovolném IHostApplicationBuilder a zaregistrujte MeilisearchClient pro použití prostřednictvím kontejneru injektáže závislostí. Metoda přebírá parametr názvu připojení.

builder.AddMeilisearchClient(connectionName: "meilisearch");

Spropitné

Parametr connectionName se musí shodovat s názvem použitým při přidávání prostředku Meilisearch do hostitelského projektu aplikace. Další informace naleznete v části Přidejte prostředek Meilisearch.

Potom můžete načíst instanci MeilisearchClient pomocí injekce závislostí. Pokud například chcete načíst připojení z příkladové služby:

public class ExampleService(MeilisearchClient client)
{
    // Use client...
}

Přidejte Meilisearch s klíčem client

Mohou nastat situace, kdy chcete zaregistrovat více instancí MeilisearchClient s různými názvy připojení. Pro registraci klientů Meilisearch s klíčem zavolejte Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddKeyedMeilisearchClient

builder.AddKeyedMeilisearchClient(name: "products");
builder.AddKeyedMeilisearchClient(name: "orders");

Potom můžete načíst instance MeilisearchClient pomocí injekce závislostí. Pokud například chcete načíst připojení z příkladové služby:

public class ExampleService(
    [FromKeyedServices("products")] MeilisearchClient productsClient,
    [FromKeyedServices("orders")] MeilisearchClient ordersClient)
{
    // Use clients...
}

Další informace o klíčových službách najdete v tématu .NET injektování závislostí: Klíčové služby.

Konfigurace

Integrace .NET Aspire Meilisearch client nabízí několik možností konfigurace připojení server na základě požadavků a konvencí projektu.

Použijte připojovací řetězec

Při použití připojovacího řetězce z oddílu konfigurace ConnectionStrings můžete při volání builder.AddMeilisearchClientzadat název připojovacího řetězce:

builder.AddMeilisearchClient("meilisearch");

Řetězec připojení se pak načte z konfiguračního oddílu ConnectionStrings.

{
  "ConnectionStrings": {
    "meilisearch": "Endpoint=http://localhost:19530/;MasterKey=123456!@#$%"
  }
}

Použití zprostředkovatelů konfigurace

Integrace .NET Aspire Meilisearch Client podporuje Microsoft.Extensions.Configuration. Načte CommunityToolkit.Aspire.Meilisearch.MeilisearchClientSettings z konfigurace pomocí klíče Aspire:Meilisearch:Client. Podívejte se na následující příklad nastavení aplikace.json, která konfiguruje některé z možností:

{
  "Aspire": {
    "Meilisearch": {
      "Client": {
        "Endpoint": "http://localhost:19530/",
        "MasterKey": "123456!@#$%"
      }
    }
  }
}

Použití vložených delegátů

Můžete také předat delegáta Action<MeilisearchClientSettings> configureSettings pro nastavení některých nebo všech vložených možností, například pro nastavení klíče API přímo z kódu:

builder.AddMeilisearchClient(
    "meilisearch",
    static settings => settings.MasterKey = "123456!@#$%");

Client kontroly stavu integrace

Integrace .NET Aspire Meilisearch využívá nakonfigurované client k realizaci IsHealthyAsync. Pokud je výsledek true, je kontrola stavu považována za v pořádku, jinak není v pořádku. Podobně platí, že pokud dojde k výjimce, je kontrola stavu považována za neúspěšnou a chyba se šíří prostřednictvím selhání kontroly stavu.

Viz také