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.
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.
Richten Sie Anwendungsname und Ressourcengruppenvariablen ein. Sie können diese Werte beliebig ändern.
export APP_NAME=music-recommendations-demo-app export RESOURCE_GROUP=playground
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. Melden Sie sich mit der Azure-Befehlszeilenschnittstelle (CLI) bei Azure an.
az login
Erstellen Sie eine Ressourcengruppe.
az group create --name $RESOURCE_GROUP --location $LOCATION
Erstellen Sie die Container Apps-Umgebung.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --enable-workload-profiles
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.
Erstellen Sie den Qdrant-Add-On-Dienst.
az containerapp add-on qdrant create \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $SERVICE_NAME
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.
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.
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
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
Ö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.
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.
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