Share via


Tutorial: Herstellen einer Verbindung zu einer Qdrant-Vektordatenbank in Azure Container Apps (Vorschau)

Azure Container Apps verwendet Add-Ons, um die Verbindung zu verschiedenen Clouddiensten auf Entwicklungsebene zu vereinfachen. Anstatt vorab Instanzen von Diensten zu erstellen, um Verbindungen zu komplexen Konfigurationseinstellungen herzustellen, können Sie ein Add-On verwenden, um Ihre Container-App mit einer Datenbank wie Qdrant zu verbinden.

Eine vollständige Liste der unterstützten Dienste finden Sie unter Verbinden mit Diensten in Azure Container Apps.

Die in diesem Tutorial bereitgestellte Beispielanwendung ermöglicht das Herstellen einer Verbindung zu einem Musikempfehlungsmodul, das auf der Qdrant-Vektordatenbank basiert. Das Containerimage hostet ein Jupyter Notebook, das den Code enthält, den Sie für die Datenbank ausführen können und folgende Möglichkeiten bietet:

  • Herstellen einer Verbindung zu Songdaten
  • Generieren von Einbettungen für jeden Song
  • Anzeigen von Songempfehlungen

Nach der Bereitstellung haben Sie die Möglichkeit, Code im Jupyter Notebook auszuführen, um eine Verbindung zu den Songdaten in der Datenbank herzustellen.

Screenshot of the Jupyter Notebook deployed in the container image.

In diesem Tutorial führen Sie Folgendes durch:

  • Erstellen einer Container-App
  • Verwenden eines Container Apps-Add-Ons zum Herstellen einer Verbindung zu einer Qdrant-Datenbank
  • Interagieren mit einem Jupyter Notebook, um die Daten zu erkunden

Wichtig

In diesem Tutorial werden Dienste verwendet, die sich auf Ihre Azure-Rechnung auswirken können. Wenn Sie sich dafür entscheiden, Schritt-für-Schritt zu folgen, sollten Sie die in diesem Artikel verwendeten Ressourcen deaktivieren oder löschen, um unerwartete Abrechnungen zu vermeiden.

Voraussetzungen

Zum Abschließen dieses Projekts benötigen Sie die folgenden Elemente:

Anforderung Anweisungen
Azure-Konto Erstellen Sie ein kostenloses Konto, falls Sie keines besitzen. Sie benötigen die Berechtigung Mitwirkender oder Besitzer für das Azure-Abonnement, um den Vorgang fortzusetzen.

Weitere Einzelheiten finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.
Azure CLI Installieren Sie die Azure CLI.

Setup

Damit Sie die Qdrant-Datenbank verwenden können, müssen Sie zuerst Ihre Container-App und die erforderlichen Ressourcen erstellen.

Führen Sie die folgenden Befehle aus, um Ihre Ressourcengruppe, die Container Apps-Umgebung und das Workloadprofil zu erstellen.

  1. Richten Sie Anwendungsname und Ressourcengruppenvariablen ein. Sie können diese Werte beliebig ändern.

    export APP_NAME=music-recommendations-demo-app
    export RESOURCE_GROUP=playground
    
  2. Erstellen Sie Variablen, um Ihre Anwendungskonfiguration zu unterstützen. Diese Werte werden Ihnen im Rahmen dieser Lerneinheit bereitgestellt. Ändern Sie diese Werte nicht.

    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
    
    Variable Beschreibung
    SERVICE_NAME Der Name des Add-On-Diensts, der für Ihre Container-App erstellt wurde. In diesem Fall erstellen Sie eine Instanz einer Qdrant-Datenbank auf Entwicklungsebene.
    LOCATION Der Standort der Azure-Region, an dem Sie Ihre Container-App und Ihr Add-On erstellen.
    ENVIRONMENT Der Name der Azure Container Apps-Umgebung für Ihre Demoanwendung.
    WORKLOAD_PROFILE_TYPE Der Workloadprofiltyp, der für Ihre Container-App verwendet wird. In diesem Beispiel wird ein universelles Workloadprofil mit 32 Kernen und 128 GiB Arbeitsspeicher verwendet.
    CPU_SIZE Die zugewiesene Größe der CPU.
    MEMORY_SIZE Die zugewiesene Größe des Arbeitsspeichers.
    IMAGE Das in diesem Tutorial verwendete Containerimage. Dieses Containerimage enthält das Jupyter Notebook, das die Interaktion mit Daten in der Qdrant-Datenbank ermöglicht.
  3. Melden Sie sich mit der Azure-Befehlszeilenschnittstelle (CLI) bei Azure an.

    az login
    
  4. Erstellen Sie eine Ressourcengruppe.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  5. Erstellen Sie die Container Apps-Umgebung.

    az containerapp env create \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --enable-workload-profiles
    
  6. Erstellen Sie ein dediziertes Workloadprofil mit ausreichend Ressourcen für die Verwendung einer Vektordatenbank.

    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
    

Verwenden des Qdrant-Add-Ons

Nachdem nun eine Umgebung und ein Workloadprofil vorhanden sind, können Sie Ihre Container-App erstellen und an eine Add-On-Instanz von Qdrant binden.

  1. Erstellen Sie den Qdrant-Add-On-Dienst.

    az containerapp add-on qdrant create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $SERVICE_NAME
    
  2. Erstellen Sie die Container-App.

    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
    

    Dieser Befehl gibt den vollqualifizierten Domänennamen Ihrer Container-App zurück. Kopieren Sie diesen Speicherort in einen Text-Editor, da Sie ihn in einem späteren Schritt benötigen.

    In einem späteren Schritt werden Sie angewiesen, ein Zugriffstoken anzufordern, um sich bei der Anwendung anzumelden, die von der Container-App gehostet wird. Warten Sie drei bis fünf Minuten, bevor Sie versuchen, die Anforderung für das Zugriffstoken auszuführen, nachdem Sie die Container-App erstellt haben, damit genügend Zeit zum Einrichten aller erforderlichen Ressourcen besteht.

  3. Binden Sie den Qdrant-Add-On-Dienst an die Container-App.

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

Konfigurieren der Container-App

Nachdem Ihre Container-App ausgeführt und die Verbindung zu Qdrant hergestellt wurde, können Sie Ihre Container-App so konfigurieren, dass eingehende Anforderungen akzeptiert werden.

  1. Konfigurieren Sie CORS-Einstellungen in der Container-App.

    az containerapp ingress cors enable \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --allowed-origins "*" \
      --allow-credentials true
    
  2. Warten Sie drei bis fünf Minuten, bis die App die Einrichtungsvorgänge abgeschlossen hat, und fordern Sie dann ein Zugriffstoken für das gehostete Jupyter Notebook an.

    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`
    

    Wenn Sie diesen Befehl ausführen, wird Ihr Token im Terminal ausgegeben. Die Meldung sollte wie im folgenden Beispiel aussehen.

    Your access token is: 348c8aed080b44f3aaab646287624c70aed080b44f
    

    Kopieren Sie den Tokenwert in Ihren Text-Editor, damit Sie ihn für die Anmeldung beim Jupyter Notebook verwenden können.

Verwenden des Jupyter Notebooks

  1. Öffnen Sie einen Webbrowser, und fügen Sie die URL für Ihre Container-App ein, die Sie in einem Text-Editor gespeichert haben.

    Beim Laden der Seite wird ein Eingabefeld angezeigt, in dem Sie das Zugriffstoken eingeben können.

  2. Geben Sie neben Password to token Ihr Token in das Eingabefeld ein, und wählen Sie Login aus.

    Nachdem Sie authentifiziert wurden, können Sie mit dem Code und den Daten im Jupyter Notebook interagieren.

    Screenshot of the deployed Jupyter Notebook in the container image.

    Befolgen Sie die Anweisungen für die Interaktion mit dem Code und den Daten, nachdem das Notebook gestartet wurde.

Bereinigen von Ressourcen

Die in diesem Tutorial erstellten Ressourcen wirken sich auf Ihre Azure-Abrechnung aus. Führen Sie den folgenden Befehl aus, um alle in diesem Tutorial erstellten Ressourcen zu entfernen, wenn Sie diese Dienste nicht langfristig verwenden werden.

az group delete \
  --resource-group $RESOURCE_GROUP

Nächste Schritte