Aracılığıyla paylaş


Öğretici: Azure Container Apps'te Qdrant vektör veritabanına Bağlan (önizleme)

Azure Container Apps, çeşitli geliştirme sınıfı bulut hizmetlerine bağlanmayı kolaylaştırmak için eklentiler kullanır. Karmaşık yapılandırma ayarlarıyla bağlantı kurmak için önceden hizmet örnekleri oluşturmak yerine, kapsayıcı uygulamanızı Qdrant gibi bir veritabanına bağlamak için bir eklenti kullanabilirsiniz.

Desteklenen hizmetlerin tam listesi için bkz. Azure Container Apps'te hizmetlere Bağlan.

Bu öğreticide dağıtılan örnek uygulama, Qdrant vektör veritabanını temel alan bir müzik öneri altyapısıyla arabirim oluşturmanızı sağlar. Kapsayıcı görüntüsü, veritabanında çalıştırabileceğiniz kodu içeren bir Jupyter Not Defteri barındırır:

  • Şarkı verileriyle arabirim
  • Her şarkı için eklemeler oluşturma
  • Şarkı önerilerini görüntüleme

Dağıtıldıktan sonra, veritabanındaki şarkı verileriyle arabirim oluşturmak için Jupyter Notebook'ta kod çalıştırma fırsatına sahip olursunuz.

Screenshot of the Jupyter Notebook deployed in the container image.

Bu öğreticide şunlarız:

  • Kapsayıcı uygulaması oluşturma
  • Qdrant veritabanına bağlanmak için Container Apps eklentisi kullanma
  • Jupyter Notebook ile etkileşim kurarak verileri keşfetme

Önemli

Bu öğreticide Azure faturanızı etkileyebilecek hizmetler kullanılır. Adım adım izlemeye karar verirseniz, beklenmeyen faturalamayı önlemek için bu makalede öne çıkan kaynakları devre dışı bıraktığınıza veya sildiğinizden emin olun.

Ön koşullar

Bu projeyi tamamlamak için aşağıdaki öğeler gerekir:

Gereksinim Yönergeler
Azure hesabı Hesabınız yoksa ücretsiz bir hesap oluşturun. Devam etmek için Azure aboneliğinde Katkıda Bulunan veya Sahip iznine sahip olmanız gerekir.

Ayrıntılar için Bkz. Azure portalını kullanarak Azure rolleri atama.
Azure CLI Azure CLI’yi yükleyin.

Kurulum

Qdrant veritabanıyla çalışmaya başlamadan önce kapsayıcı uygulamanızı ve gerekli kaynakları oluşturmanız gerekir.

Kaynak grubunuzu, kapsayıcı uygulamaları ortamınızı ve iş yükü profilinizi oluşturmak için aşağıdaki komutları yürütebilirsiniz.

  1. Uygulama adı ve kaynak grubu değişkenlerini ayarlayın. Bu değerleri tercihinize göre değiştirebilirsiniz.

    export APP_NAME=music-recommendations-demo-app
    export RESOURCE_GROUP=playground
    
  2. Uygulama yapılandırmanızı desteklemek için değişkenler oluşturun. Bu değerler, bu dersin amaçları doğrultusunda size sağlanır. Bu değerleri değiştirmeyin.

    export SERVICE_NAME=qdrantdb
    export LOCATION=southcentralus
    export ENVIRONMENT=music-recommendations-demo-environment
    export WORKLOAD_PROFILE_TYPE=D32
    export CPU_SIZE=8.0
    export MEMORY_SIZE=16.0Gi
    export IMAGE=simonj.azurecr.io/aca-ephemeral-music-recommendation-image
    
    Değişken Tanım
    SERVICE_NAME Kapsayıcı uygulamanız için oluşturulan eklenti hizmetinin adı. Bu durumda, Qdrant veritabanının geliştirme sınıfı bir örneğini oluşturursunuz.
    LOCATION Kapsayıcı uygulamanızı ve eklentinizi oluşturduğunuz Azure bölgesi konumu.
    ENVIRONMENT Tanıtım uygulamanızın Azure Container Apps ortam adı.
    WORKLOAD_PROFILE_TYPE Kapsayıcı uygulamanız için kullanılan iş yükü profili türü. Bu örnek, 32 çekirdek 128 GiB belleğe sahip genel amaçlı bir iş yükü profili kullanır.
    CPU_SIZE CPU'nun ayrılmış boyutu.
    MEMORY_SIZE Ayrılan bellek miktarı.
    IMAGE Bu öğreticide kullanılan kapsayıcı görüntüsü. Bu kapsayıcı görüntüsü, Qdrant veritabanındaki verilerle etkileşim kurmanızı sağlayan Jupyter Not Defteri'ni içerir.
  3. Azure CLI ile Azure'da oturum açın.

    az login
    
  4. Kaynak grubu oluşturun.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  5. Kapsayıcı uygulamaları ortamınızı oluşturun.

    az containerapp env create \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --enable-workload-profiles
    
  6. Vektör veritabanıyla çalışmak için yeterli kaynakla ayrılmış bir iş yükü profili oluşturun.

    az containerapp env workload-profile add \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --workload-profile-type $WORKLOAD_PROFILE_TYPE \
      --workload-profile-name bigProfile \
      --min-nodes 0 \
      --max-nodes 2
    

Qdrant eklentisini kullanma

Artık bir ortamınız ve iş yükü profiliniz olduğuna göre kapsayıcı uygulamanızı oluşturabilir ve bunu Qdrant'ın eklenti örneğine bağlayabilirsiniz.

  1. Qdrant eklenti hizmetini oluşturun.

    az containerapp add-on qdrant create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $SERVICE_NAME
    
  2. Kapsayıcı uygulamasını oluşturun.

    az containerapp create \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --environment $ENVIRONMENT \
      --workload-profile-name bigProfile \
      --cpu $CPU_SIZE \
      --memory $MEMORY_SIZE \
      --image $IMAGE \
      --min-replicas 1 \
      --max-replicas 1 \
      --env-vars RESTARTABLE=yes \
      --ingress external \
      --target-port 8888 \
      --transport auto \
      --query properties.outputs.fqdn
    

    Bu komut, kapsayıcı uygulamanızın tam etki alanı adını (FQDN) döndürür. Bu konumu, bir metin düzenleyicisine, gelecek bir adımda ihtiyacınız olduğu şekilde kopyalayın.

    Yaklaşan bir adım, kapsayıcı uygulaması tarafından barındırılan uygulamada oturum açmak için bir erişim belirteci istemenizi sağlar. Kapsayıcı uygulamasını oluşturduktan sonra erişim belirtecine yönelik isteği yürütmeye çalışmadan önce, gerekli tüm kaynakları ayarlamak için yeterli zaman tanıyacak şekilde üç-beş dakika beklemeyi unutmayın.

  3. Qdrant eklenti hizmetini kapsayıcı uygulamasına bağlayın.

    az containerapp update \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --bind qdrantdb
    

Kapsayıcı uygulamasını yapılandırma

Kapsayıcı uygulamanız çalışmaya ve Qdrant'a bağlı olduğuna göre, kapsayıcı uygulamanızı gelen istekleri kabul etmek üzere yapılandırabilirsiniz.

  1. Kapsayıcı uygulamasında CORS ayarlarını yapılandırın.

    az containerapp ingress cors enable \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --allowed-origins "*" \
      --allow-credentials true
    
  2. Uygulamanın kurulum işlemlerini tamamlaması için üç-beş dakika bekledikten sonra barındırılan Jupyter Notebook için bir erişim belirteci isteyin.

    echo Your access token is: `az containerapp logs show -g $RESOURCE_GROUP --name $APP_NAME --tail 300 | \
      grep token |  cut -d= -f 2 | cut -d\" -f 1 | uniq`
    

    Bu komutu çalıştırdığınızda belirteciniz terminale yazdırılır. İleti aşağıdaki örnekteki gibi görünmelidir.

    Your access token is: 348c8aed080b44f3aaab646287624c70aed080b44f
    

    Jupyter Not Defteri'nde oturum açmak için kullanmak üzere belirteç değerinizi metin düzenleyicinize kopyalayın.

Jupyter Not Defteri'ni kullanma

  1. Bir web tarayıcısı açın ve bir metin düzenleyicisinde ayırdığınız kapsayıcı uygulamanızın URL'sini yapıştırın.

    Sayfa yüklendiğinde, erişim belirtecinizi girmeniz için bir giriş kutusu gösterilir.

  2. Belirteç parolası etiketinin yanındaki giriş kutusuna belirtecinizi girin ve Oturum Aç'ı seçin.

    Kimlik doğrulaması yaptıktan sonra Jupyter Not Defteri'ndeki kod ve verilerle etkileşim kurabilirsiniz.

    Screenshot of the deployed Jupyter Notebook in the container image.

    Not defteri başlatıldığında, kod ve verilerle etkileşime geçmek için yönergeleri izleyin.

Kaynakları temizleme

Bu öğreticide oluşturulan kaynakların Azure faturanız üzerinde etkisi vardır. Bu hizmetleri uzun süreli kullanmayacaksanız, bu öğreticide oluşturulan her şeyi kaldırmak için aşağıdaki komutu çalıştırın.

az group delete \
  --resource-group $RESOURCE_GROUP

Sonraki adımlar