Megosztás a következőn keresztül:


.NET .NET Aspire Community Toolkit Meilisearch integrációja

Tartalmazza:üzemeltetési integráció és Client integráció

Jegyzet

Ez az integráció a .NET.NET Aspire közösségi eszközkészlet része, és .

Ebből a cikkből megtanulhatja, hogyan használhatja a .NET.NET Aspire Meilisearch tárhelyintegrációt a Meilisearch tároló futtatásához és annak hozzáféréséhez a Meilisearch ügyfélen keresztül.

Üzemeltetési integráció

A Meilisearch-tároló futtatásához telepítse a 📦 CommunityToolkitet. Telepítse aAspire.Hosting.Meilisearch NuGet-csomagot az alkalmazásgazda projektben.

dotnet add package CommunityToolkit.Aspire.Hosting.Meilisearch

További információkért lásd: dotnet add package vagy A csomagfüggőségek kezelése .NET alkalmazásokban.

Meilisearch-erőforrás hozzáadása

Az alkalmazásgazdaprojektben regisztrálja és használja a Meilisearch-integrációt a AddMeilisearch bővítménymetódus használatával, hogy hozzáadja a Meilisearch-tárolót az alkalmazásszerkesztőhöz.

var builder = DistributedApplication.CreateBuilder(args);

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

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

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

Amikor .NET.NET Aspire egy konténerképet ad hozzá az alkalmazás gazdagépéhez, ahogyan az a docker.io/getmeili/meilisearch képpel az előző példában látható, létrehoz egy új Meilisearch-példányt a helyi gépén. A Meilisearch-erőforrásra (a meilisearch változóra) mutató hivatkozás a ExampleProject-hez kerül hozzáadásra. A Meilisearch-erőforrás egy véletlenszerűen létrehozott master key tartalmaz, amely a CreateDefaultPasswordParameter metódust használja, ha nincs megadva főkulcs.

További információért lásd: Tárolóerőforrás-életciklus.

Meilisearch-erőforrás hozzáadása adatmennyiséggel

Ha adatkötetet szeretne hozzáadni a Meilisearch erőforráshoz, hívja meg a meilisearch erőforrás Aspire.Hosting.MeilisearchBuilderExtensions.WithDataVolume metódusát:

var builder = DistributedApplication.CreateBuilder(args);

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

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

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

Az adatkötet a Meilisearch-adatok tárolójának életciklusán kívüli megőrzésére szolgál. Az adatkötet a Meilisearch tároló /meili_data elérési útjához van csatlakoztatva, és amennyiben nincs megadva name paraméter, a név véletlenszerűen generálódik. További információ az adatkötetekről és arról, hogy miért előnyben részesítik őket kötéskötések, lásd Docker dokumentumokat: Kötetek.

Meilisearch-erőforrás hozzáadása adatkötés csatlakoztatásával

Ha adatkötési csatlakoztatást szeretne hozzáadni a Meilisearch erőforráshoz, hívja meg a Aspire.Hosting.MeilisearchBuilderExtensions.WithDataBindMount metódust:

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

Fontos

Az adatkötési csatlakoztatások korlátozott funkcionalitással rendelkeznek kötetekhez képest, amelyek jobb teljesítményt, hordozhatóságot és biztonságot nyújtanak, így jobban alkalmasak az éles környezetekhez. A kötési csatlakoztatások azonban lehetővé teszik a fájlok közvetlen elérését és módosítását a gazdarendszeren, ami ideális fejlesztési és tesztelési célokra, ahol valós idejű módosításokra van szükség.

Az adatok csatolása a gazdagép fájlrendszerét használja, hogy a konténerek újraindítása között megőrizzék a Meilisearch adatait. Az adatkötés csatlakoztatása a C:\Meilisearch\Data a Windows (vagy /Meilisearch/DataUnix) útvonalán a Meilisearch tároló gazdagépén található. Az adatkötési csatlakoztatásokkal kapcsolatos további információkért lásd Docker dokumentumokat: Kötési csatlakoztatások.

Meilisearch-erőforrás hozzáadása főkulcsparaméterrel

Ha explicit módon meg szeretné adni a tárolólemezkép által használt főkulcsot, paraméterekként megadhatja ezeket a hitelesítő adatokat. Tekintse meg a következő alternatív példát:

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

További információ a paraméterek megadásáról: Külső paraméterek.

Client integráció

A .NET.NET Aspire Meilisearch ügyfélintegrációjának megkezdéséhez telepítse a 📦 CommunityToolkitet.Aspire. A Meilisearch NuGet-csomagot az ügyfél-használó projektben, vagyis a Meilisearch-ügyfelet használó alkalmazás projektjében.

dotnet add package CommunityToolkit.Aspire.Meilisearch

Meilisearch-ügyfél hozzáadása

Az ügyféloldali projekt Program.cs fájljában hívja meg a Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddMeilisearchClient bővítménymetódusát bármelyik IHostApplicationBuilder-n a MeilisearchClient regisztrálásához a függőséginjektáló konténeren keresztül történő használatra. A metódus egy kapcsolatnévparamétert használ.

builder.AddMeilisearchClient(connectionName: "meilisearch");

Borravaló

A connectionName paraméternek meg kell egyeznie a Meilisearch-erőforrás alkalmazásgazdaprojektben való hozzáadásakor használt névvel. További információ: Meilisearch-erőforrás hozzáadása.

Ezután függőséginjektálással lekérheti a MeilisearchClient-példányt. Ha például egy példaszolgáltatásból szeretné lekérni a kapcsolatot:

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

Kulcsos Meilisearch-ügyfél hozzáadása

Előfordulhatnak olyan helyzetek, amikor több MeilisearchClient példányt szeretne regisztrálni különböző kapcsolatnevekkel. A kulcsos Meilisearch-ügyfelek regisztrálásához hívja meg a Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddKeyedMeilisearchClient

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

Ezután függőséginjektálással lekérheti a MeilisearchClient példányokat. Ha például egy példaszolgáltatásból szeretné lekérni a kapcsolatot:

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

További információ a kulcsos szolgáltatásokról: .NET függőséginjektálás: Kulcsos szolgáltatások.

Konfiguráció

A .NET.NET Aspire Meilisearch-ügyfélintegráció több lehetőséget is kínál a kiszolgálókapcsolat konfigurálásához a projekt követelményei és konvenciók alapján.

Kapcsolati lánc használata

Ha kapcsolati sztringet használ a ConnectionStrings konfigurációs szakaszból, megadhatja a kapcsolati sztring nevét builder.AddMeilisearchClienthívásakor:

builder.AddMeilisearchClient("meilisearch");

A kapcsolati karakterlánc ezután a ConnectionStrings konfigurációs szakaszból lesz lekérve.

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

Konfigurációs szolgáltatók használata

A .NET Aspire Meilisearch Client integráció a Microsoft.Extensions.Configurationtámogatását nyújtja. A konfigurációból a CommunityToolkit.Aspire.Meilisearch.MeilisearchClientSettings elemet a Aspire:Meilisearch:Client kulccsal tölti be. Tekintse meg az alábbi appsettings.json példát, amely konfigurál néhány beállítást:

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

Beágyazott delegáltak használata

A Action<MeilisearchClientSettings> configureSettings delegáltat is átadhatja a beállítások beágyazott megadásához, például a kódból történő API-kulcs beállításához:

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

Client integrációs állapot ellenőrzése

A .NET.NET Aspire Meilisearch-integráció a konfigurált ügyfelet használja egy IsHealthyAsyncvégrehajtásához. Ha az eredmény true, az állapot-ellenőrzés kifogástalannak minősül, ellenkező esetben nem megfelelő. Hasonlóképpen, ha kivétel van, az állapot-ellenőrzés nem megfelelőnek minősül, mivel a hiba az állapot-ellenőrzési hibán keresztül terjed.

Lásd még: