Integración del .NET.NET Aspire Community Toolkit con Meilisearch
Incluye:integración con alojamiento y Client integración
Nota
Esta integración forma parte del
En este artículo, aprenderá a usar la integración de hospedaje .NET.NET Aspire Meilisearch para ejecutar contenedor de Meilisearch y acceder a él a través de Meilisearchclient.
Integración de hospedaje
Para ejecutar el contenedor Meilisearch, instale el 📦 CommunityToolkit.Aspire.Hosting.Meilisearch paquete NuGet en el proyecto host de la aplicación .
dotnet add package CommunityToolkit.Aspire.Hosting.Meilisearch
Para obtener más información, consulte dotnet add package o Administrar dependencias de paquetes en aplicaciones .NET.
Adición del recurso Meilisearch
En el proyecto host de la aplicación, registre y consuma la integración de Meilisearch mediante el método de extensión AddMeilisearch
para agregar el contenedor Meilisearch al generador de aplicaciones.
var builder = DistributedApplication.CreateBuilder(args);
var meilisearch = builder.AddMeilisearch("meilisearch");
builder.AddProject<Projects.ExampleProject>()
.WithReference(meilisearch);
// After adding all resources, run the app...
Cuando .NET.NET Aspire agrega una imagen de contenedor al host de la aplicación, como se muestra en el ejemplo anterior con la imagen docker.io/getmeili/meilisearch
, crea una nueva instancia de Meilisearch en el equipo local. Se agrega una referencia al recurso Meilisearch (la variable meilisearch
) al ExampleProject
. El recurso Meilisearch incluye un master key
generado aleatoriamente mediante el método CreateDefaultPasswordParameter cuando no se proporcionó una clave maestra.
Para obtener más información, consulte ciclo de vida de los recursos de contenedor.
Añadir un recurso Meilisearch con volumen de datos
Para agregar un volumen de datos al recurso Meilisearch, llame al método Aspire.Hosting.MeilisearchBuilderExtensions.WithDataVolume
en el recurso 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...
El volumen de datos se usa para conservar los datos de Meilisearch fuera del ciclo de vida de su contenedor. El volumen de datos se monta en la ruta de acceso /meili_data
en el contenedor de Meilisearch y cuando no se proporciona un parámetro name
, el nombre se genera de forma aleatoria. Para obtener más información sobre los volúmenes de datos y los detalles sobre por qué se prefieren a enlazar montajes, consulte Docker documentos: Volúmenes.
Añadir un recurso Meilisearch con montaje de vinculación de datos
Para agregar un montaje de enlace de datos al recurso Meilisearch, llame al método 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...
Importante
Los montajes de enlace de datos tienen una funcionalidad limitada en comparación con los volúmenes , que ofrecen mejor rendimiento, portabilidad y seguridad, lo que los hace más adecuados para entornos de producción. Sin embargo, los montajes de enlace permiten el acceso directo y la modificación de archivos en el sistema host, lo cual es ideal para el desarrollo y las pruebas en las que se necesitan los cambios en tiempo real.
Los montajes de enlace de datos dependen del sistema de archivos del equipo host para conservar los datos de Meilisearch en los reinicios del contenedor. El montaje de enlace de datos se monta en la ruta de acceso C:\Meilisearch\Data
en Windows (o /Meilisearch/Data
en Unix) en el equipo host dentro del contenedor de Meilisearch. Para obtener más información sobre los montajes de enlace de datos, consulte la documentación de Docker: Montajes de enlace.
Adición del recurso Meilisearch con el parámetro de clave maestra
Si desea proporcionar explícitamente la clave maestra usada por la imagen de contenedor, puede proporcionar estas credenciales como parámetros. Considere el siguiente ejemplo alternativo:
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...
Para obtener más información sobre cómo proporcionar parámetros, consulte Parámetros externos.
integración de Client
Para empezar a trabajar con la integración Meilisearch .NET Aspireclient, instale el paquete NuGet 📦 CommunityToolkit.Aspire.Meilisearch en el proyecto consumidor client, es decir, el proyecto de la aplicación que usa Meilisearch client.
dotnet add package CommunityToolkit.Aspire.Meilisearch
Agregar Meilisearch client
En el archivo Program.cs del proyecto que consume client, llame al método de extensión Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddMeilisearchClient
en cualquier IHostApplicationBuilder para registrar un MeilisearchClient
para su uso a través del contenedor de inserción de dependencias. El método toma un parámetro de nombre de conexión.
builder.AddMeilisearchClient(connectionName: "meilisearch");
Propina
El parámetro connectionName
debe coincidir con el nombre usado al agregar el recurso Meilisearch en el proyecto host de la aplicación. Para obtener más información, consulte el recursode Meilisearch
A continuación, puede recuperar la instancia de MeilisearchClient
utilizando inyección de dependencias. Por ejemplo, para recuperar la conexión de un servicio de ejemplo:
public class ExampleService(MeilisearchClient client)
{
// Use client...
}
Agregar Meilisearch con una clave client
Puede haber situaciones en las que quiera registrar varias instancias de MeilisearchClient
con nombres de conexión diferentes. Para registrar clientes meilisearch con clave, llame al Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddKeyedMeilisearchClient
builder.AddKeyedMeilisearchClient(name: "products");
builder.AddKeyedMeilisearchClient(name: "orders");
A continuación, puede recuperar las instancias de MeilisearchClient
mediante inyección de dependencias. Por ejemplo, para recuperar la conexión de un servicio de ejemplo:
public class ExampleService(
[FromKeyedServices("products")] MeilisearchClient productsClient,
[FromKeyedServices("orders")] MeilisearchClient ordersClient)
{
// Use clients...
}
Para obtener más información sobre los servicios con clave, consulte .NET Inserción de Dependencias: Servicios con Clave.
Configuración
La integración .NET Aspire Meilisearch client proporciona varias opciones para configurar la conexión server en función de los requisitos y convenciones de tu proyecto.
Uso de una cadena de conexión
Al usar una cadena de conexión de la sección de configuración de ConnectionStrings
, puede proporcionar el nombre de la cadena de conexión al llamar a builder.AddMeilisearchClient
:
builder.AddMeilisearchClient("meilisearch");
A continuación, la cadena de conexión se recuperará de la sección de configuración ConnectionStrings
.
{
"ConnectionStrings": {
"meilisearch": "Endpoint=http://localhost:19530/;MasterKey=123456!@#$%"
}
}
Uso de proveedores de configuración
La integración .NET Aspire Meilisearch Client admite Microsoft.Extensions.Configuration. Carga el CommunityToolkit.Aspire.Meilisearch.MeilisearchClientSettings
desde la configuración mediante la clave Aspire:Meilisearch:Client
. Considere el ejemplo siguiente appsettings.json que configura algunas de las opciones:
{
"Aspire": {
"Meilisearch": {
"Client": {
"Endpoint": "http://localhost:19530/",
"MasterKey": "123456!@#$%"
}
}
}
}
Usar delegados en línea
También puede pasar el delegado Action<MeilisearchClientSettings> configureSettings
para configurar algunas o todas las opciones en línea, por ejemplo, para establecer la clave de API desde el código:
builder.AddMeilisearchClient(
"meilisearch",
static settings => settings.MasterKey = "123456!@#$%");
Client comprobaciones de salud de integración
La integración de .NET Aspire Meilisearch usa el client configurado para realizar una IsHealthyAsync
. Si el resultado es true
, la verificación de salud se considera saludable; de lo contrario, se considera no saludable. Del mismo modo, si hay una excepción, la comprobación de estado se considera no saludable, con el error propagándose a través de la falla de la comprobación de estado.
Consulte también
-
Meilisearch - Client Meilisearch
- .NET Aspire Community Toolkit GitHub repositorio de