Хостинг Meilisearch — .NET Aspire

Обратная связь

В этой статье

Включает:
Интеграция хостинга и интеграция клиентов

Интеграция хостинга

Чтобы запустить контейнер Meilisearch, установите 📦 CommunityToolkit.Aspire.Hosting.Meilisearch Пакет NuGet в проекте узла приложения.

dotnet добавить пакет CommunityToolkit.Aspire.Hosting.Meilisearch

Дополнительные сведения см. в разделах «Добавить пакет dotnet» или «Управление зависимостями пакетов в приложениях .NET».

Добавить ресурс Meilisearch

В проекте хоста приложения зарегистрируйте и используйте интеграцию Meilisearch с помощью метода расширения AddMeilisearch, чтобы добавить контейнер Meilisearch в сборщик приложений.

вар builder = DistributedApplication.CreateBuilder(args); var meilisearch = builder.AddMeilisearch(“meilisearch”); builder.AddProject() .WithReference(meilisearch); // После добавления всех ресурсов запускаем приложение…

Когда .NET Aspire добавляет образ контейнера к узлу приложения, как показано в предыдущем примере с образом docker.io/getmeili/meilisearch, он создает новый экземпляр Meilisearch на вашем локальном компьютере. Ссылка на ваш ресурс Meilisearch (переменная meilisearch) добавляется в файл exampleProject. Ресурс Meilisearch включает случайно сгенерированный главный ключ с использованием метода CreateDefaultPasswordParameter, если главный ключ не был предоставлен.

Дополнительные сведения см. в разделе Жизненный цикл ресурса контейнера.

Добавьте ресурс Meilisearch с объемом данных

Чтобы добавить том данных в ресурс Meilisearch, вызовите метод Aspire.Hosting.MeilisearchBuilderExtensions.WithDataVolume для ресурса Meilisearch:

вар builder = DistributedApplication.CreateBuilder(args); var meilisearch = builder.AddMeilisearch(“meilisearch”) .WithDataVolume(); builder.AddProject() .WithReference(meilisearch); // После добавления всех ресурсов запускаем приложение…

Том данных используется для сохранения данных Meilisearch вне жизненного цикла их контейнера. Том данных монтируется по пути /meili_data в контейнере Meilisearch, и если параметр имени не указан, имя генерируется случайным образом. Для получения дополнительной информации об объемах данных и подробностях о том, почему они предпочтительнее привязывать ездовых животныхвидеть Документация Docker: Тома.

Добавьте ресурс Meilisearch с монтированием привязки данных

Чтобы добавить привязку данных к ресурсу Meilisearch, вызовите метод Aspire.Hosting.MeilisearchBuilderExtensions.WithDataBindMount:

вар builder = DistributedApplication.CreateBuilder(args); var meilisearch = builder.AddMeilisearch(“meilisearch”) .WithDataBindMount(источник: @”C:MeilisearchData”); builder.AddProject() .WithReference(meilisearch); // После добавления всех ресурсов запускаем приложение…

Кончик

Данные привязывать ездовых животных имеют ограниченную функциональность по сравнению с объемыкоторые обеспечивают лучшую производительность, портативность и безопасность, что делает их более подходящими для производственных сред. Однако монтирование с привязкой обеспечивает прямой доступ и изменение файлов в хост-системе, что идеально подходит для разработки и тестирования, когда необходимы изменения в реальном времени.

При монтировании привязки данных используется файловая система хост-компьютера для сохранения данных Meilisearch при перезапуске контейнера. Монтирование привязки данных монтируется по пути C:MeilisearchData в Windows (или /Meilisearch/Data в Unix) на хост-компьютере в контейнере Meilisearch. Дополнительные сведения о монтировании привязки данных см. Документация Docker: привязка монтировок.

Добавьте ресурс Meilisearch с параметром главного ключа.

Если вы хотите явно указать главный ключ, используемый образом контейнера, вы можете указать эти учетные данные в качестве параметров. Рассмотрим следующий альтернативный пример:

вар builder = DistributedApplication.CreateBuilder(args); var masterkey = builder.AddParameter(“masterkey”, secret: true); var meilisearch = builder.AddMeilisearch(“meilisearch”, masterkey); builder.AddProject() .WithReference(meilisearch); // После добавления всех ресурсов запускаем приложение…

Дополнительные сведения о предоставлении параметров см. в разделе Внешние параметры.

Клиентская интеграция

Чтобы начать интеграцию клиента .NET Aspire Meilisearch, установите 📦 CommunityToolkit.Aspire.Meilisearch NuGet в проекте, использующем клиент, то есть в проекте приложения, использующего клиент Meilisearch.

dotnet добавить пакет CommunityToolkit.Aspire.Meilisearch

Добавить клиент Meilisearch

В Программа.cs файл вашего проекта, использующего клиент, вызовите метод расширения Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddMeilisearchClient в любом IHostApplicationBuilder, чтобы зарегистрировать MeilisearchClient для использования через контейнер внедрения зависимостей. Метод принимает параметр имени соединения.

builder.AddMeilisearchClient(connectionName: “meilisearch”);

Кончик

Параметр ConnectionName должен соответствовать имени, используемому при добавлении ресурса Meilisearch в проект хоста приложения. Для получения дополнительной информации см. Добавить ресурс Meilisearch.

Затем вы можете получить экземпляр MeilisearchClient с помощью внедрения зависимостей. Например, чтобы получить соединение из примера службы:

public class exampleService(MeilisearchClient client) { // Используем клиент… }

Добавить клиент Meilisearch с ключом

Могут возникнуть ситуации, когда вы захотите зарегистрировать несколько экземпляров MeilisearchClient с разными именами соединений. Чтобы зарегистрировать клиентов Meilisearch с ключом, вызовите Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddKeyedMeilisearchClient.

builder.AddKeyedMeilisearchClient(имя: “продукты”); builder.AddKeyedMeilisearchClient(имя: “заказы”);

Затем вы можете получить экземпляры MeilisearchClient с помощью внедрения зависимостей. Например, чтобы получить соединение из примера службы:

публичный класс SampleService(
[FromKeyedServices(“products”)] MeilisearchКлиентские продуктыКлиент,
[FromKeyedServices(“orders”)] MeilisearchClientordersClient) { // Используем клиентов… }

Дополнительные сведения о службах с ключами см. в разделе Внедрение зависимостей .NET: службы с ключами.

Конфигурация

Интеграция клиента .NET Aspire Meilisearch предоставляет несколько вариантов настройки подключения к серверу в зависимости от требований и соглашений вашего проекта.

Используйте строку подключения

При использовании строки подключения из раздела конфигурации ConnectionStrings вы можете указать имя строки подключения при вызове builder.AddMeilisearchClient:

builder.AddMeilisearchClient(“meilisearch”);

Затем строка подключения будет получена из раздела конфигурации ConnectionStrings:

{ “ConnectionStrings”: { “meilisearch”: “Endpoint= } }

Используйте поставщиков конфигурации

Интеграция клиента .NET Aspire Meilisearch поддерживает Microsoft.Extensions.Configuration. Он загружает CommunityToolkit.Aspire.Meilisearch.MeilisearchClientSettings из конфигурации с помощью ключа Aspire:Meilisearch:Client. Рассмотрим следующий пример appsettings.json который настраивает некоторые параметры:

{ “Aspire”: { “Meilisearch”: { “Client”: { “Endpoint”: ” “MasterKey”: “123456!@#$%” } } } }

Используйте встроенные делегаты

Также вы можете передать делегат Action configureSettings, чтобы настроить некоторые или все встроенные параметры, например, чтобы установить ключ API из кода:

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

Проверка работоспособности интеграции клиента

Интеграция .NET Aspire Meilisearch использует настроенный клиент для выполнения IsHealthyAsync. Если результат верен, проверка работоспособности считается работоспособной, в противном случае — неработоспособной. Аналогично, если есть исключение, проверка работоспособности считается неработоспособной, а ошибка распространяется из-за сбоя проверки работоспособности.

См. также

#Хостинг #Meilisearch #.NET #Aspire

Read more:  Недвижимость в Китае: Link Reit полностью приобретет торговый центр Shanghai у Vanke за 331 миллион долларов США

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.