Samouczek: Połączenie do bazy danych wektorów Qdrant w usłudze Azure Container Apps (wersja zapoznawcza)

Usługa Azure Container Apps używa dodatków , aby ułatwić nawiązywanie połączenia z różnymi usługami w chmurze klasy programistycznej. Zamiast tworzyć wystąpienia usług z wyprzedzeniem w celu nawiązania połączeń ze złożonymi ustawieniami konfiguracji, możesz użyć dodatku, aby połączyć aplikację kontenera z bazą danych, na przykład Qdrant.

Aby uzyskać pełną listę obsługiwanych usług, zobacz Połączenie do usług w usłudze Azure Container Apps.

Przykładowa aplikacja wdrożona w tym samouczku umożliwia interfejs z aparatem rekomendacji muzycznych opartym na bazie danych wektorów Qdrant. Obraz kontenera hostuje notes Jupyter Notebook zawierający kod, który można uruchomić względem bazy danych w celu:

  • Interfejs z danymi piosenek
  • Generowanie osadzania dla każdej piosenki
  • Wyświetlanie zaleceń dotyczących piosenek

Po wdrożeniu możesz uruchomić kod w notesie Jupyter Notebook w celu interfejsu z danymi piosenek w bazie danych.

Screenshot of the Jupyter Notebook deployed in the container image.

W tym samouczku wykonasz następujące elementy:

  • Tworzenie aplikacji kontenera
  • Nawiązywanie połączenia z bazą danych Qdrant za pomocą dodatku Container Apps
  • Interakcja z notesem Jupyter Notebook w celu eksplorowania danych

Ważne

W tym samouczku są używane usługi, które mogą mieć wpływ na rachunek za korzystanie z platformy Azure. Jeśli zdecydujesz się wykonać kroki krok po kroku, upewnij się, że zdezaktywujesz lub usuniesz zasoby opisane w tym artykule, aby uniknąć nieoczekiwanych rozliczeń.

Wymagania wstępne

Do ukończenia tego projektu potrzebne są następujące elementy:

Wymaganie Instrukcje
Konto platformy Azure Jeśli go nie masz, utwórz bezpłatne konto. Aby kontynuować, musisz mieć uprawnienie Współautor lub Właściciel w subskrypcji platformy Azure.

Aby uzyskać szczegółowe informacje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal .
Interfejs wiersza polecenia platformy Azure Zainstaluj interfejs wiersza polecenia platformy Azure.

Ustawienia

Przed rozpoczęciem pracy z bazą danych Qdrant należy najpierw utworzyć aplikację kontenera i wymagane zasoby.

Wykonaj następujące polecenia, aby utworzyć grupę zasobów, środowisko aplikacji kontenerów i profil obciążenia.

  1. Skonfiguruj zmienne nazwy aplikacji i grupy zasobów. Możesz zmienić te wartości na swoje preferencje.

    export APP_NAME=music-recommendations-demo-app
    export RESOURCE_GROUP=playground
    
  2. Utwórz zmienne do obsługi konfiguracji aplikacji. Te wartości są udostępniane na potrzeby tej lekcji. Nie zmieniaj tych wartości.

    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
    
    Zmienna opis
    SERVICE_NAME Nazwa usługi dodatku utworzonej dla aplikacji kontenera. W tym przypadku utworzysz wystąpienie klasy programistycznej bazy danych Qdrant.
    LOCATION Lokalizacja regionu świadczenia usługi Azure, w której tworzysz aplikację kontenera i dodatek.
    ENVIRONMENT Nazwa środowiska usługi Azure Container Apps dla aplikacji demonstracyjnej.
    WORKLOAD_PROFILE_TYPE Typ profilu obciążenia używany dla aplikacji kontenera. W tym przykładzie użyto profilu obciążenia ogólnego przeznaczenia z 32 rdzeniami 128 GiB pamięci.
    CPU_SIZE Przydzielony rozmiar procesora CPU.
    MEMORY_SIZE Przydzielona ilość pamięci.
    IMAGE Obraz kontenera używany w tym samouczku. Ten obraz kontenera zawiera notes Jupyter Notebook, który umożliwia interakcję z danymi w bazie danych Qdrant.
  3. Zaloguj się do platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure.

    az login
    
  4. Utwórz grupę zasobów.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  5. Utwórz środowisko aplikacji kontenera.

    az containerapp env create \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --enable-workload-profiles
    
  6. Utwórz dedykowany profil obciążenia z wystarczającą ilością zasobów do pracy z wektorową bazą danych.

    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
    

Korzystanie z dodatku Qdrant

Teraz, gdy masz istniejące środowisko i profil obciążenia, możesz utworzyć aplikację kontenera i powiązać ją z wystąpieniem dodatku Qdrant.

  1. Utwórz usługę dodatku Qdrant.

    az containerapp add-on qdrant create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $SERVICE_NAME
    
  2. Utwórz aplikację kontenera.

    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
    

    To polecenie zwraca w pełni kwalifikowaną nazwę domeny (FQDN) aplikacji kontenera. Skopiuj tę lokalizację do edytora tekstów, ponieważ będzie ona potrzebna w następnym kroku.

    Nadchodzący krok nakazuje zażądanie tokenu dostępu w celu zalogowania się do aplikacji hostowanej przez aplikację kontenera. Pamiętaj, aby poczekać od trzech do pięciu minut przed podjęciem próby wykonania żądania tokenu dostępu po utworzeniu aplikacji kontenera, aby dać wystarczająco dużo czasu na skonfigurowanie wszystkich wymaganych zasobów.

  3. Powiąż usługę dodatku Qdrant z aplikacją kontenera.

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

Konfigurowanie aplikacji kontenera

Teraz, gdy aplikacja kontenera jest uruchomiona i połączona z usługą Qdrant, możesz skonfigurować aplikację kontenera do akceptowania żądań przychodzących.

  1. Skonfiguruj ustawienia mechanizmu CORS w aplikacji kontenera.

    az containerapp ingress cors enable \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --allowed-origins "*" \
      --allow-credentials true
    
  2. Gdy poczekasz od trzech do pięciu minut, aż aplikacja ukończy operacje instalacji, zażądaj tokenu dostępu dla hostowanego notesu Jupyter Notebook.

    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`
    

    Po uruchomieniu tego polecenia token zostanie wydrukowany w terminalu. Komunikat powinien wyglądać podobnie do poniższego przykładu.

    Your access token is: 348c8aed080b44f3aaab646287624c70aed080b44f
    

    Skopiuj wartość tokenu do edytora tekstów, aby użyć polecenia w celu zalogowania się do notesu Jupyter Notebook.

Korzystanie z notesu Jupyter

  1. Otwórz przeglądarkę internetową i wklej adres URL aplikacji kontenera, którą odłożysz w edytorze tekstów.

    Po załadowaniu strony zostanie wyświetlone pole wejściowe w celu wprowadzenia tokenu dostępu.

  2. Obok etykiety Hasło do tokenuwprowadź token w polu wejściowym i wybierz pozycję Zaloguj.

    Po uwierzytelnieniu możesz wchodzić w interakcje z kodem i danymi w notesie Jupyter Notebook.

    Screenshot of the deployed Jupyter Notebook in the container image.

    Po uruchomieniu notesu postępuj zgodnie z instrukcjami dotyczącymi interakcji z kodem i danymi.

Czyszczenie zasobów

Zasoby utworzone w tym samouczku mają wpływ na rachunek za platformę Azure. Jeśli nie zamierzasz korzystać z tych usług długoterminowych, uruchom następujące polecenie, aby usunąć wszystkie elementy utworzone w tym samouczku.

az group delete \
  --resource-group $RESOURCE_GROUP

Następne kroki