.NET .NET Aspire Community Toolkit Meilisearch tümleştirmesi

Şunları içerir:Barındırma tümleştirmesi ve Client tümleştirme

Not

Bu tümleştirme, .NET.NET Aspire Topluluk Araç Seti bir parçasıdır ve desteklenmez.

Bu makalede, Meilisearch kapsayıcısını çalıştırmak ve Meilisearch istemcisi aracılığıyla erişmek için .NET.NET Aspire Meilisearch barındırma tümleştirmesini kullanmayı öğreneceksiniz.

Barındırma entegrasyonu

Meilisearch kapsayıcısını çalıştırmak için 📦 CommunityToolkit'i yükleyin veAspireuygulama konağı projesinde Hosting.Meilisearch NuGet paketini yükleyin.

dotnet add package CommunityToolkit.Aspire.Hosting.Meilisearch

Daha fazla bilgi için bkz. dotnet add package veya .NET uygulamalarında paket bağımlılıklarını yönetme.

Meilisearch kaynağı ekleme

Uygulama barındırıcısı projesinde, Meilisearch kapsayıcısını uygulama oluşturucusuna eklemek amacıyla AddMeilisearch uzantısı yöntemini kullanarak Meilisearch tümleştirmesini kaydederek kullanın.

var builder = DistributedApplication.CreateBuilder(args);

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

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

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

.NET .NET Aspire, önceki örnekte docker.io/getmeili/meilisearch görüntüsüyle gösterildiği gibi uygulama konağına bir kapsayıcı görüntüsü eklediğinde, yerel makinenizde yeni bir Meilisearch örneği oluşturur. meilisearch'e Meilisearch kaynağınıza (ExampleProject değişkeni) bir başvuru eklenir. Meilisearch kaynağı, ana anahtar sağlanmayan master key yöntemi kullanılarak rastgele oluşturulmuş bir CreateDefaultPasswordParameter içerir.

Daha fazla bilgi için bkz. Kapsayıcı kaynak yaşam döngüsü.

Veri hacmi ile Meilisearch kaynağı ekle

Meilisearch kaynağına veri birimi eklemek için Meilisearch kaynağında Aspire.Hosting.MeilisearchBuilderExtensions.WithDataVolume yöntemini çağırın:

var builder = DistributedApplication.CreateBuilder(args);

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

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

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

Veri hacmi, Meilisearch verilerini kapsayıcısının yaşam döngüsü dışında kalıcı hale getirmek için kullanılır. Veri birimi, Meilisearch kapsayıcısının /meili_data yoluna bağlanır ve name parametresi sağlanmazsa ad rastgele oluşturulur. Veri birimleri hakkında daha fazla bilgi edinmek vebağlamaları neden tercih edildiklerine ilişkin ayrıntılar için bkz. belgeler: Birimler.

Veri bağlama montajı ile Meilisearch kaynağı ekle

Meilisearch kaynağına bir veri bağlamı eklemek için Aspire.Hosting.MeilisearchBuilderExtensions.WithDataBindMount yöntemini çağırın:

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

Önemli

Veri bağlama bağlamaları, daha iyi performans, taşınabilirlik ve güvenlik sunanbirimleriyle karşılaştırıldığında sınırlı işlevselliğe sahiptir ve bu da üretim ortamları için daha uygun olmasını sağlar. Ancak bağlama noktaları, gerçek zamanlı değişikliklerin gerekli olduğu geliştirme ve test süreçleri için ideal olan, ana bilgisayar sistemindeki dosyalara doğrudan erişim ve değişiklik yapılmasına olanak sağlar.

Veri bağlama montajları, kapsayıcı yeniden başlatıldığında Meilisearch verilerini kalıcı olarak saklamak için ana makinenin dosya sistemine dayanır. Veri bağlama bağlaması, Meilisearch konteynerinde sunucu bilgisayarında Windows üzerindeki C:\Meilisearch\Data (veya /Meilisearch/Dataüzerinde Unix) yoluna bağlanır. Veri bağlamaları hakkında daha fazla bilgi için bkz. Docker belgeleri: Bağlamalar.

Ana anahtar parametresiyle Meilisearch kaynağı ekleme

Kapsayıcı görüntüsü tarafından kullanılan ana anahtarı açıkça sağlamak istediğinizde, bu kimlik bilgilerini parametre olarak sağlayabilirsiniz. Aşağıdaki alternatif örneği göz önünde bulundurun:

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

Parametreleri sağlama hakkında daha fazla bilgi için, bkz. dış parametreler.

Client tümleştirmesi

.NET .NET Aspire Meilisearch istemci tümleştirmesini kullanmaya başlamak için 📦 CommunityToolkit'i yükleyin.AspireMeilisearch NuGet paketini istemciyi kullanan uygulamanın projesine yükleyin.

dotnet add package CommunityToolkit.Aspire.Meilisearch

Meilisearch istemcisi ekleme

İstemci kullanan projenizin Program.cs dosyasında, bağımlılık enjeksiyonu kapsayıcısı aracılığıyla kullanılmak üzere bir MeilisearchClient kaydetmek için herhangi bir IHostApplicationBuilder üzerinde Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddMeilisearchClient uzantı yöntemini çağırın. yöntemi bir bağlantı adı parametresi alır.

builder.AddMeilisearchClient(connectionName: "meilisearch");

Bahşiş

connectionName parametresi, uygulama ana bilgisayar projesine Meilisearch kaynağını eklerken kullanılan adla eşleşmelidir. Daha fazla bilgi için bkz. Meilisearch kaynağı ekleme.

Daha sonra bağımlılık ekleme kullanarak MeilisearchClient örneğini alabilirsiniz. Örneğin, bağlantıyı örnek bir hizmetten almak için:

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

Anahtarlı Meilisearch istemcisi ekleme

Farklı bağlantı adlarına sahip birden çok MeilisearchClient örneğini kaydetmek istediğiniz durumlar olabilir. Anahtarlı Meilisearch istemcilerini kaydetmek için Microsoft.Extensions.Hosting.AspireMeilisearchExtensions.AddKeyedMeilisearchClient'ı çağırın.

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

Daha sonra bağımlılık ekleme kullanarak MeilisearchClient örneklerini alabilirsiniz. Örneğin, bağlantıyı örnek bir hizmetten almak için:

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

Anahtarlı hizmetler hakkında daha fazla bilgi için bkz. .NET bağımlılık ekleme: Anahtarlı hizmetler.

Konfigürasyon

.NET .NET Aspire Meilisearch istemci tümleştirmesi, sunucu bağlantısını projenizin gereksinimlerine ve kurallarına göre yapılandırmak için birden çok seçenek sağlar.

Bağlantı dizesi kullanma

ConnectionStrings yapılandırma bölümünden bir bağlantı dizesi kullanırken, builder.AddMeilisearchClientçağırırken bağlantı dizesinin adını sağlayabilirsiniz:

builder.AddMeilisearchClient("meilisearch");

Ardından bağlantı dizesi ConnectionStrings yapılandırma bölümünden alınır:

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

Yapılandırma sağlayıcılarını kullanma

.NET Aspire Meilisearch Client tümleştirmesi, Microsoft.Extensions.Configurationdesteği sağlar. Bu, CommunityToolkit.Aspire.Meilisearch.MeilisearchClientSettings anahtarını kullanarak yapılandırmadan Aspire:Meilisearch:Client'ı yükler. Seçeneklerden bazılarını yapılandıran aşağıdaki örnek appsettings.json göz önünde bulundurun:

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

Satır içi temsilcileri kullanın

Ayrıca Action<MeilisearchClientSettings> configureSettings temsilcisini geçirerek satır içi seçeneklerin bazılarını veya tümünü ayarlayabilirsiniz; örneğin koddan API anahtarını ayarlayabilirsiniz:

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

Client entegrasyon sağlık kontrolleri

.NET .NET Aspire Meilisearch tümleştirmesi, IsHealthyAsyncgerçekleştirmek için yapılandırılmış istemciyi kullanarak yapılır. Sonuç trueise sağlık denetimi sağlıklı kabul edilir, aksi takdirde sağlıksızdır. Benzer şekilde, bir istisna olduğunda, sağlık denetimi, sağlık denetimi hatasının yayılmasıyla sağlıksız olarak kabul edilir.

Ayrıca bkz.