Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel stellen Sie die AKS Store Demo-Anwendung auf Azure Kubernetes Service (AKS) bereit und konfigurieren Azure OpenAI oder die OpenAI-API zum Generieren von Produktbeschreibungen.
Die Cloud-native Beispielanwendung umfasst Dienste, die in mehreren Sprachen und Frameworks geschrieben wurden, darunter:
- Golang mit Gin
- Rust mit Actix-Web
- JavaScript mit Vue.js und Fastify
- Python mit FastAPI
Diese Anwendungen bieten Front-Ends für Käufer und Speichern von Administratoren, REST-APIs, die Daten an eine RabbitMQ-Nachrichtenwarteschlange und DocumentDB-Datenbank senden, sowie Konsolen-Apps, die Datenverkehr simulieren.
Hinweis
Führen Sie keine zustandsbehafteten Container aus, z. B. DocumentDB und RabbitMQ, ohne permanente Lagerung in der Produktion. In diesem Artikel werden sie ohne beständigen Speicher aus Gründen der Einfachheit verwendet. Verwenden Sie für Produktionsworkloads verwaltete Dienste wie Azure Cosmos DB oder Azure Service Bus.
Informationen zum Zugriff auf die GitHub-Codebasis für die Beispielanwendung finden Sie unter AKS Store Demo.
Bevor Sie beginnen
- Sie benötigen ein Azure Konto mit einem aktiven Abonnement. Wenn Sie kein Konto besitzen, erstellen Sie kostenlos ein Konto.
- Verwenden Sie für diese Demo entweder Azure OpenAI oder die OpenAI-API.
- Um Azure OpenAI zu verwenden, benötigen Sie Berechtigungen zum Erstellen einer Azure OpenAI-Ressource und zum Bereitstellen eines Modells. Die Registrierung ist nur für Modelle mit eingeschränktem Zugriff oder geänderte Schutzmaßnahmen erforderlich.
- Um die OpenAI-API zu verwenden, registrieren Sie sich auf der OpenAI-Website.
Voraussetzungen
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Get started with Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen möchten, install die Azure CLI. Wenn Sie Windows oder macOS verwenden, sollten Sie Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter How to run the Azure CLI in a Docker container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mit dem Befehl az login beim Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Weitere Anmeldeoptionen finden Sie unter Authentifizieren bei Azure mit Azure CLI.
Wenn Sie dazu aufgefordert werden, installieren Sie die Azure CLI Erweiterung bei der ersten Verwendung. Weitere Informationen zu Erweiterungen finden Sie unter Use and manage extensions with the Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um auf die neueste Version zu aktualisieren.
Erstellen einer Ressourcengruppe
Eine Azure-Ressourcengruppe ist eine logische Gruppe, in der Sie Azure Ressourcen bereitstellen und verwalten. Wenn Sie eine Ressourcengruppe erstellen, werden Sie zur Angabe eines Speicherorts aufgefordert. Dieser Speicherort ist der Speicherort ihrer Ressourcengruppenmetadaten und der Speicherort, an dem Ihre Ressourcen in Azure ausgeführt werden, wenn Sie während der Ressourcenerstellung keine andere Region angeben.
Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus.
Erstellen Sie mit dem Befehl az group create eine Ressourcengruppe.
az group create --name myResourceGroup --location eastus
Die folgende Beispielausgabe zeigt, dass die Ressourcengruppe erfolgreich erstellt wurde.
{
"id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
"location": "eastus",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Erstellen eines AKS-Clusters
Im folgenden Beispiel wird ein Cluster mit dem Namen myAKSCluster in myResourceGroup erstellt.
Erstellen Sie mit dem Befehl az aks create einen AKS-Cluster.
az aks create --resource-group myResourceGroup --name myAKSCluster --generate-ssh-keys
Nach wenigen Minuten ist die Ausführung des Befehls abgeschlossen, und es werden Informationen zum Cluster im JSON-Format zurückgegeben.
Herstellen einer Verbindung mit dem Cluster
Verwenden Sie zum Verwalten eines Kubernetes-Clusters den Kubernetes-Befehlszeilenclient kubectl. Wenn Sie Azure Cloud Shell verwenden, ist kubectl bereits installiert.
Installieren Sie
kubectlmithilfe des Befehlsaz aks install-clilokal.az aks install-cliHinweis
Wenn Ihr linuxbasiertes System erhöhte Berechtigungen erfordert, verwenden Sie den
sudo az aks install-cliBefehl.Mit dem Befehl
kubectlkönnen Sieaz aks get-credentialsfür die Verbindungsherstellung mit Ihrem Kubernetes-Cluster konfigurieren.Dieser Befehl führt die folgenden Vorgänge aus:
- Herunterladen von Anmeldeinformationen und Konfigurieren der Kubernetes-Befehlszeilenschnittstelle für ihre Verwendung
- Verwenden von
~/.kube/config(Standardspeicherort für die Kubernetes-Konfigurationsdatei). Geben Sie einen anderen Speicherort für Ihre Kubernetes-Konfigurationsdatei mithilfe des Arguments "-file " an.
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterÜberprüfen Sie die Verbindung mit dem Cluster mithilfe des Befehls
kubectl get. Dieser Befehl gibt eine Liste der Clusterknoten zurück.kubectl get nodesDie folgende Beispielausgabe zeigt die Knoten, die in den vorherigen Schritten erstellt wurden. Stellen Sie sicher, dass jeder Knoten den Status "Bereit" aufweist.
NAME STATUS ROLES AGE VERSION aks-nodepool1-31469198-vmss000000 Ready agent 3h29m v1.25.6 aks-nodepool1-31469198-vmss000001 Ready agent 3h29m v1.25.6 aks-nodepool1-31469198-vmss000002 Ready agent 3h29m v1.25.6
Hinweis
Stellen Sie für einen privaten AKS-Cluster eine Verbindung von einem Endpunkt im selben virtuellen Netzwerk wie der Cluster her. Konfigurationsanweisungen finden Sie unter Erstellen eines privaten AKS-Clusters.
Bereitstellen der Anwendung
Das Manifest AKS Store umfasst die folgenden Kubernetes-Bereitstellungen und -Dienste:
- Produktservice: Zeigt Produktinformationen an.
- Bestellservice: Bestellungen aufgeben.
- Makeline Service: verarbeitet Bestellungen aus der Warteschlange und schließt die Bestellungen ab.
- Store Front: Webanwendung für Kund*innen zum Anzeigen von Produkten und Aufgeben von Bestellungen
- Store Admin: Webanwendung für Filialmitarbeiter*innen zum Anzeigen von Bestellungen in der Warteschlange und zum Verwalten von Produktinformationen
- Virtual Customer: simuliert die Auftragserstellung nach Zeitplan.
- Virtual Worker: simuliert die Auftragserfüllung nach Zeitplan.
- DocumentDB: NoSQL Instanz für gespeicherte Daten.
- RabbitMQ: Message-Queue für eine Auftragswarteschlange.
Hinweis
Führen Sie keine zustandsbehafteten Container aus, z. B. DocumentDB und RabbitMQ, ohne permanente Lagerung in der Produktion. In diesem Artikel werden sie ohne beständigen Speicher aus Gründen der Einfachheit verwendet. Verwenden Sie für Produktionsworkloads verwaltete Dienste wie Azure Cosmos DB oder Azure Service Bus.
Überprüfen Sie das YAML-Manifest für die Anwendung.
Stellen Sie die Anwendung über den Befehl „
kubectl apply“ bereit, und geben Sie den Namen Ihres YAML-Manifests an.kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-all-in-one.yaml
Bereitstellen eines OpenAI-Diensts
Wählen Sie Azure OpenAI oder die OpenAI-API für die Anwendung aus, die auf AKS ausgeführt wird.
- Erstellen Sie im Azure-Portal eine Azure OpenAI-Instanz.
- Melden Sie sich bei Microsoft Foundry an.
- Deaktivieren Sie die Umschaltfläche "Neue Gießerei ", und wählen Sie dann " Alle Ressourcen unter "Erstellen mit Gießerei beibehalten" aus.
- Wählen Sie die Azure OpenAI-Ressource aus, die Sie erstellt haben, und wählen Sie dann "Bereitstellungen" unter "Freigegebene Ressourcen" aus.
- Wählen Sie Modell bereitstellen>Basismodell bereitstellen aus.
- Wählen Sie das gpt-4o-mini-Basismodell aus, geben Sie einen Bereitstellungsnamen ein, und stellen Sie dann das Modell bereit. Speichern Sie den Bereitstellungsnamen für den nächsten Abschnitt.
Weitere Informationen zum Erstellen einer Azure OpenAI-Bereitstellung finden Sie unter "Erste Schritte beim Generieren von Text mithilfe von Azure OpenAI".
Bereitstellen des KI-Microservice
Stellen Sie den Python-basierten KI-Mikroservice bereit, der OpenAI zum automatischen Generieren von Produktbeschreibungen verwendet. Dieser Microservice stellt eine Verbindung mit der AKS Store-Anwendung herstellt, die Sie im vorherigen Abschnitt bereitgestellt haben.
Verwenden Sie die Azure OpenAI-Ressourcen- und Modellbereitstellung, die Sie im Abschnitt "Bereitstellen eines OpenAI-Diensts" erstellt haben. Konfigurieren Sie die folgenden Umgebungsvariablen im AI Microservice-Manifest:
| Umgebungsvariable | Wert |
|---|---|
USE_AZURE_OPENAI |
Legen Sie fest, dass "True" Azure OpenAI verwendet werden soll. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Der Name der gpt-4o-mini Modellbereitstellung in Microsoft Foundry. |
AZURE_OPENAI_ENDPOINT |
Der Endpunkt von der Seite "Schlüssel" und "Endpunkt" Ihrer Azure OpenAI-Ressource. |
OPENAI_API_KEY |
Ein API-Schlüssel auf der Seite "Schlüssel und Endpunkt" Ihrer Azure OpenAI-Ressource. |
Erstellen Sie eine Datei namens
ai-service.yaml, und fügen Sie das folgende Manifest ein:apiVersion: apps/v1 kind: Deployment metadata: name: ai-service spec: replicas: 1 selector: matchLabels: app: ai-service template: metadata: labels: app: ai-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: ai-service image: ghcr.io/azure-samples/aks-store-demo/ai-service:2.2.0 ports: - containerPort: 5001 env: - name: USE_AZURE_OPENAI value: "True" - name: AZURE_OPENAI_DEPLOYMENT_NAME value: "" - name: AZURE_OPENAI_ENDPOINT value: "" - name: OPENAI_API_KEY value: "" resources: requests: cpu: 20m memory: 50Mi limits: cpu: 50m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: ai-service spec: type: ClusterIP ports: - name: http port: 5001 targetPort: 5001 selector: app: ai-serviceLegen Sie die Umgebungsvariable
USE_AZURE_OPENAIauf"True"fest.Kopieren Sie in Microsoft Foundry den Azure OpenAI-Bereitstellungsnamen, und legen Sie den
AZURE_OPENAI_DEPLOYMENT_NAMEWert fest.Wählen Sie im Azure-Portal Schlüssel und Endpunkt in Ihrer Azure OpenAI-Ressource aus. Kopieren Sie den Endpunkt und den API-Schlüssel, und legen Sie dann die
AZURE_OPENAI_ENDPOINTWerte festOPENAI_API_KEY.Stellen Sie die Anwendung über den Befehl „
kubectl apply“ bereit, und geben Sie den Namen Ihres YAML-Manifests an.kubectl apply -f ai-service.yamlDie folgende Beispielausgabe zeigt die erfolgreich erstellten Bereitstellungen und Dienste:
deployment.apps/ai-service created service/ai-service created
Hinweis
Das direkte Speichern von API-Schlüsseln in Kubernetes-Manifesten ist unsicher und kann geheime Schlüssel in der Quellcodeverwaltung verfügbar machen. In diesem Beispiel werden Manifestwerte zur Einfachheit verwendet. Authentifizieren Sie sich für Produktionsworkloads bei Azure OpenAI mithilfe einer verwalteten Identität oder speichern Sie geheime Schlüssel in Azure Key Vault.
Testen der Anwendung
Überprüfen Sie den Status der bereitgestellten Pods mithilfe des Befehls
kubectl get pods.kubectl get podsVergewissern Sie sich, dass alle Pods den Status " Ausführen " aufweisen, bevor Sie den Vorgang fortsetzen.
Rufen Sie die externe IP-Adresse für den Store-Administrator mithilfe des
kubectl get serviceBefehls ab.kubectl get service store-adminEin Kubernetes-Dienst macht den Store-Administrator über einen öffentlichen Lastenausgleich verfügbar. Das Lastenausgleichsmodul kann einige Minuten dauern, um eine Adresse zuzuweisen. Der EXTERNAL-IP-Wert wird bis zur Verfügbarkeit der Adresse ausstehend angezeigt.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-admin LoadBalancer 10.0.142.228 40.64.86.161 80:32494/TCP 50mWiederholen Sie den vorherigen Schritt für den
store-frontDienst.Wechseln Sie in einem Webbrowser zur externen IP-Adresse für den Store-Administrator. In diesem Beispiel ist die Adresse 40.64.86.161.
Wählen Sie im Store-Administrator "Produkte>hinzufügen" aus.
Nach
ai-servicedem Start wird neben dem Beschreibungsfeld die Schaltfläche " Ki-Assistent fragen " angezeigt. Geben Sie den Namen, den Preis und die Schlüsselwörter ein, wählen Sie "Ki-Assistent fragen" aus, um eine Produktbeschreibung zu generieren, und wählen Sie dann " Produkt speichern" aus.Vergewissern Sie sich, dass hunde smarte Kragen im Store-Administrator angezeigt wird.
Wechseln Sie zur externen IP-Adresse für die Store-Front, und überprüfen Sie, ob Dog Smart Collar angezeigt wird.
Nächste Schritte
Nachdem Sie einer AKS-Anwendung die OpenAI-Funktionalität hinzugefügt haben, können Sie gesicherten Zugriff auf Azure OpenAI vom Azure Kubernetes Service (AKS) erhalten.
Weitere Informationen zu generativen KI-Anwendungsfällen finden Sie in den folgenden Ressourcen: