intégration .NET.NET Aspire Community Toolkit Meilisearch
inclut :intégration d’hébergement et
Client intégration
Note
Cette intégration fait partie du community Toolkit
Dans cet article, vous allez apprendre à utiliser l'intégration d'hébergement .NET.NET Aspire Meilisearch pour exécuter le conteneur Meilisearch et y accéder via le client Meilisearch .
Intégration de l’hébergement
Pour exécuter le conteneur Meilisearch, installez le 📦 CommunityToolkit.Aspire. Hosting.Meilisearch package NuGet dans le projet hôte d’application .
dotnet add package CommunityToolkit.Aspire.Hosting.Meilisearch
Pour plus d’informations, consultez dotnet add package ou Gérer les dépendances des packages dans les applications .NET.
Ajouter une ressource Meilisearch
Dans le projet hôte d’application, inscrivez et utilisez l’intégration de Meilisearch à l’aide de la méthode d’extension AddMeilisearch
pour ajouter le conteneur Meilisearch au générateur d’applications.
var builder = DistributedApplication.CreateBuilder(args);
var meilisearch = builder.AddMeilisearch("meilisearch");
builder.AddProject<Projects.ExampleProject>()
.WithReference(meilisearch);
// After adding all resources, run the app...
Lorsque .NET.NET Aspire ajoute une image conteneur à l’hôte de l’application, comme illustré dans l’exemple précédent avec l’image docker.io/getmeili/meilisearch
, il crée une instance Meilisearch sur votre ordinateur local. Une référence à votre ressource Meilisearch (la variable meilisearch
) est ajoutée au ExampleProject
. La ressource Meilisearch inclut une master key
générée de manière aléatoire à l’aide de la méthode CreateDefaultPasswordParameter lorsqu’une clé principale n’a pas été fournie.
Pour plus d'informations, consultez cycle de vie des ressources du conteneur.
Ajouter une ressource Meilisearch avec un volume de données
Pour ajouter un volume de données à la ressource Meilisearch, appelez la méthode Aspire.Hosting.MeilisearchBuilderExtensions.WithDataVolume
sur la ressource 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...
Le volume de données est utilisé pour conserver les données Meilisearch en dehors du cycle de vie de son conteneur. Le volume de données est monté sur le chemin /meili_data
dans le conteneur Meilisearch et lorsqu’un paramètre name
n’est pas fourni, le nom est généré de manière aléatoire. Pour plus d'informations sur les volumes de données et sur les raisons pour lesquelles ils sont préférés par rapport aux liaisons de montage , consultez la documentation Docker : Volumes.
Ajouter une ressource Meilisearch avec montage de liaison de données
Pour ajouter un montage de liaison de données à la ressource Meilisearch, appelez la méthode 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...
Important
Les montages de liaison de données ont des fonctionnalités limitées comparé aux volumes , qui offrent de meilleures performances, la portabilité, et la sécurité, les rendant ainsi plus adaptés aux environnements de production. Toutefois, les montages de liens autorisent l’accès direct et la modification des fichiers sur le système hôte, ce qui est idéal pour le développement et le test où les modifications en temps réel sont nécessaires.
Les montages de liaison de données s'appuient sur le système de fichiers de l'ordinateur hôte pour préserver les données Meilisearch à travers les redémarrages des conteneurs. Le montage de liaison des données est monté au chemin C:\Meilisearch\Data
sur Windows (ou /Meilisearch/Data
sur Unix) de la machine hôte dans le cadre du conteneur Meilisearch. Pour plus d’informations sur les montages de liaison de données, consultez Docker docs : montages de liaison.
Ajouter une ressource Meilisearch avec un paramètre de clé principale
Lorsque vous souhaitez fournir explicitement la clé principale utilisée par l’image conteneur, vous pouvez fournir ces informations d’identification en tant que paramètres. Prenons l’exemple de remplacement suivant :
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...
Pour plus d’informations sur la fourniture de paramètres, consultez paramètres externes.
intégration de Client
Pour commencer à utiliser l’intégration du client .NET.NET Aspire Meilisearch, installez le 📦 CommunityToolkit.Aspire. Meilisearch package NuGet dans le projet consommant le client, c’est-à-dire le projet pour l’application qui utilise le client Meilisearch.
dotnet add package CommunityToolkit.Aspire.Meilisearch
Ajouter un client Meilisearch
Dans le fichier Program.cs de votre projet qui utilise un client, appelez la méthode d’extension Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddMeilisearchClient
sur une IHostApplicationBuilder pour enregistrer un MeilisearchClient
à utiliser via le conteneur d’injection de dépendances. La méthode prend un paramètre de nom de connexion.
builder.AddMeilisearchClient(connectionName: "meilisearch");
Pourboire
Le paramètre connectionName
doit correspondre au nom utilisé lors de l’ajout de la ressource Meilisearch dans le projet hôte d’application. Pour plus d’informations, consultez Ajouter une ressource Meilisearch.
Vous pouvez ensuite récupérer l’instance MeilisearchClient
à l’aide de l’injection de dépendances. Par exemple, pour récupérer la connexion à partir d’un exemple de service :
public class ExampleService(MeilisearchClient client)
{
// Use client...
}
Ajouter un client Meilisearch keyed
Il peut arriver que vous souhaitiez inscrire plusieurs instances de MeilisearchClient
avec différents noms de connexion. Pour enregistrer des clients Meilisearch munis de clés, appelez le Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddKeyedMeilisearchClient
builder.AddKeyedMeilisearchClient(name: "products");
builder.AddKeyedMeilisearchClient(name: "orders");
Vous pouvez ensuite récupérer les instances MeilisearchClient
à l’aide de l’injection de dépendances. Par exemple, pour récupérer la connexion à partir d’un exemple de service :
public class ExampleService(
[FromKeyedServices("products")] MeilisearchClient productsClient,
[FromKeyedServices("orders")] MeilisearchClient ordersClient)
{
// Use clients...
}
Pour plus d’informations sur les services à clé, consultez .NET injection de dépendances : services à clé.
Configuration
L’intégration du client Meilisearch .NET.NET Aspire fournit plusieurs options pour configurer la connexion serveur en fonction des exigences et des conventions de votre projet.
Utiliser une chaîne de connexion
Lorsque vous utilisez une chaîne de connexion à partir de la section de configuration ConnectionStrings
, vous pouvez fournir le nom de la chaîne de connexion lors de l’appel de builder.AddMeilisearchClient
:
builder.AddMeilisearchClient("meilisearch");
Ensuite, la chaîne de connexion est récupérée à partir de la section de configuration ConnectionStrings
:
{
"ConnectionStrings": {
"meilisearch": "Endpoint=http://localhost:19530/;MasterKey=123456!@#$%"
}
}
Utiliser des fournisseurs de configuration
L’intégration .NET Aspire Meilisearch Client prend en charge Microsoft.Extensions.Configuration. Il charge le CommunityToolkit.Aspire.Meilisearch.MeilisearchClientSettings
depuis la configuration en utilisant la clé Aspire:Meilisearch:Client
. Prenons l’exemple suivant appsettings.json qui configure certaines des options suivantes :
{
"Aspire": {
"Meilisearch": {
"Client": {
"Endpoint": "http://localhost:19530/",
"MasterKey": "123456!@#$%"
}
}
}
}
Utiliser des délégués en ligne
Vous pouvez également transmettre le délégué Action<MeilisearchClientSettings> configureSettings
pour configurer certaines ou toutes les options directement, par exemple pour définir la clé API à partir du code :
builder.AddMeilisearchClient(
"meilisearch",
static settings => settings.MasterKey = "123456!@#$%");
Client contrôles de santé de l'intégration
L’intégration Meilisearch .NET.NET Aspire utilise le client configuré pour effectuer une IsHealthyAsync
. Si le résultat est true
, le contrôle d’intégrité est considéré comme sain, sinon il n’est pas sain. De même, s'il y a une exception, le contrôle d'intégrité est considéré comme non sain, et l’erreur se propage à travers l'échec de celui-ci.