.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/Data
Unix) ú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.AddMeilisearchClient
hí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 IsHealthyAsync
vé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.