Delen via


.NET .NET Aspire Community Toolkit Meilisearch-integratie

omvat:Hostingintegratie en Client integratie

Notitie

Deze integratie maakt deel uit van de .NET.NET Aspire Community Toolkit en wordt niet officieel ondersteund door het .NET.NET Aspire team.

In dit artikel leert u hoe u de .NET.NET Aspire Meilisearch-hostingintegratie gebruikt om Meilisearch container uit te voeren en deze te openen via de Meilisearch-client.

Hostingintegratie

Om de Meilisearch-container uit te voeren, installeer je het 📦 CommunityToolkit.Aspire.Hosting.Meilisearch NuGet-pakket in het app-hostproject.

dotnet add package CommunityToolkit.Aspire.Hosting.Meilisearch

Zie dotnet pakket toevoegen of Pakketafhankelijkheden beheren in .NET toepassingenvoor meer informatie.

Meilisearch-resource toevoegen

Registreer en gebruik in het app-hostproject de Meilisearch-integratie met behulp van de AddMeilisearch-extensiemethode om de Meilisearch-container toe te voegen aan de opbouwfunctie voor toepassingen.

var builder = DistributedApplication.CreateBuilder(args);

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

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

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

Wanneer .NET.NET Aspire een containerinstallatiekopie toevoegt aan de app-host, zoals wordt weergegeven in het vorige voorbeeld met de docker.io/getmeili/meilisearch-installatiekopie, wordt er een nieuw Meilisearch-exemplaar op uw lokale computer gemaakt. Er wordt een verwijzing naar uw Meilisearch-resource (de variabele meilisearch) toegevoegd aan de ExampleProject. De Meilisearch-resource bevat een willekeurig gegenereerde master key met behulp van de CreateDefaultPasswordParameter methode wanneer er geen hoofdsleutel is opgegeven.

Zie levenscyclus van containerresourcesvoor meer informatie.

Meilisearch-resource toevoegen met gegevensvolume

Als u een gegevensvolume wilt toevoegen aan de Meilisearch-resource, roept u de Aspire.Hosting.MeilisearchBuilderExtensions.WithDataVolume methode aan op de Meilisearch-resource:

var builder = DistributedApplication.CreateBuilder(args);

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

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

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

Het gegevensvolume wordt gebruikt om de Meilisearch-gegevens buiten de levenscyclus van de container te behouden. Het gegevensvolume wordt gekoppeld aan het /meili_data pad in de Meilisearch-container en wanneer er geen name parameter wordt opgegeven, wordt de naam willekeurig gegenereerd. Zie voor meer informatie over gegevensvolumes en details over waarom ze de voorkeur hebben boven Docker.

Meilisearch-resource toevoegen met koppeling voor gegevensbinding

Als u een data mount voor gegevensbinding wilt toevoegen aan de Meilisearch-resource, roept u de methode Aspire.Hosting.MeilisearchBuilderExtensions.WithDataBindMount aan.

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

Belangrijk

Gegevens koppelen beperkte functionaliteit hebben in vergelijking met volumes, die betere prestaties, draagbaarheid en beveiliging bieden, waardoor ze geschikter zijn voor productieomgevingen. Bind mounts bieden echter directe toegang tot en wijziging van bestanden op het hostsysteem, ideaal voor ontwikkeling en testen waar wijzigingen in realtime nodig zijn.

Gegevensbind-mounts zijn afhankelijk van het bestandssysteem van de hostmachine om de Meilisearch-gegevens bij containerherstarts te handhaven. De koppeling voor gegevensbinding wordt gekoppeld aan de C:\Meilisearch\Data in Windows (of /Meilisearch/Data op Unix) op de hostcomputer in de Meilisearch-container. Zie Docker docs: Bindingskoppelingenvoor meer informatie over koppelingskoppelingen voor gegevens.

Meilisearch-resource toevoegen met hoofdsleutelparameter

Wanneer u expliciet de hoofdsleutel wilt opgeven die wordt gebruikt door de containerafbeelding, kunt u deze referenties opgeven als parameters. Bekijk het volgende alternatieve voorbeeld:

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

Zie Externe parametersvoor meer informatie over het opgeven van parameters.

integratie van Client

Installeer de 📦 CommunityToolkit om aan de slag te gaan met de .NET.NET Aspire Meilisearch-clientintegratie.Aspire. Meilisearch NuGet-pakket in het clientintensieve project, dat wil gezegd, het project voor de toepassing die gebruikmaakt van de Meilisearch-client.

dotnet add package CommunityToolkit.Aspire.Meilisearch

Meilisearch-client toevoegen

Roep in het Program.cs bestand van het clientgebruikte project de Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddMeilisearchClient-extensiemethode aan op elke IHostApplicationBuilder om een MeilisearchClient te registreren voor gebruik via de container voor afhankelijkheidsinjectie. De methode gebruikt een verbindingsnaamparameter.

builder.AddMeilisearchClient(connectionName: "meilisearch");

Tip

De parameter connectionName moet overeenkomen met de naam die wordt gebruikt bij het toevoegen van de Meilisearch-resource in het app-hostproject. Voor meer informatie, zie Meilisearch-resource toevoegen.

Vervolgens kunt u het MeilisearchClient exemplaar ophalen met behulp van afhankelijkheidsinjectie. Als u bijvoorbeeld de verbinding wilt ophalen uit een voorbeeldservice:

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

Keyed Meilisearch-client toevoegen

Er kunnen situaties zijn waarin u meerdere MeilisearchClient exemplaren met verschillende verbindingsnamen wilt registreren. Als u Meilisearch-clients met sleutel wilt registreren, roept u Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddKeyedMeilisearchClient aan.

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

Vervolgens kunt u de MeilisearchClient exemplaren ophalen met behulp van afhankelijkheidsinjectie. Als u bijvoorbeeld de verbinding wilt ophalen uit een voorbeeldservice:

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

Voor meer informatie over sleutelservices, zie .NET afhankelijkheidsinjectie: sleutelservices.

Configuratie

De .NET.NET Aspire Meilisearch-clientintegratie biedt meerdere opties voor het configureren van de serververbinding op basis van de vereisten en conventies van uw project.

Een verbindingsreeks gebruiken

Wanneer u een verbindingsreeks uit de sectie ConnectionStrings configuratie gebruikt, kunt u de naam van de verbindingsreeks opgeven bij het aanroepen van builder.AddMeilisearchClient:

builder.AddMeilisearchClient("meilisearch");

Vervolgens wordt de verbindingsreeks opgehaald uit de ConnectionStrings configuratiesectie:

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

Configuratieproviders gebruiken

De integratie van .NET Aspire Meilisearch Client ondersteunt Microsoft.Extensions.Configuration. Het laadt de CommunityToolkit.Aspire.Meilisearch.MeilisearchClientSettings vanuit de configuratie met behulp van de Aspire:Meilisearch:Client-sleutel. Bekijk het volgende voorbeeld appsettings.json waarmee enkele van de opties worden geconfigureerd:

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

Inline gedelegeerden gebruiken

U kunt de Action<MeilisearchClientSettings> configureSettings delegate ook doorgeven om enkele of alle opties inline in te stellen, bijvoorbeeld om de API-sleutel in te stellen vanuit code.

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

gezondheidscontroles voor Client-integratie

De .NET.NET Aspire Meilisearch-integratie maakt gebruik van de geconfigureerde client om een IsHealthyAsyncuit te voeren. Als het resultaat trueis, wordt de gezondheidscontrole als gezond beschouwd, anders is deze ongezond. Als er een uitzondering is, wordt de statuscontrole als ongezond geacht, waarbij de fout zich voortzet door de mislukking van de statuscontrole.

Zie ook