Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule wdrożysz aplikację demonstracyjną sklepu AKS na Azure Kubernetes Service (AKS) i skonfigurujesz Azure interfejsu OpenAI lub interfejsu API OpenAI w celu wygenerowania opisów produktów.
Przykładowa aplikacja natywna dla chmury obejmuje usługi napisane w wielu językach i strukturach, w tym:
- Golang z ginem
- Rust z Actix-Web
- Język JavaScript z Vue.js i funkcją Fastify
- Python za pomocą interfejsu FastAPI
Te aplikacje udostępniają frontony dla kupujących i administratorów sklepów, interfejsów API REST, które wysyłają dane do kolejki komunikatów RabbitMQ i bazy danych DocumentDB oraz aplikacji konsoli symulujących ruch.
Uwaga
Nie uruchamiaj kontenerów stanowych, takich jak DocumentDB i RabbitMQ, bez trwałego magazynu w środowisku produkcyjnym. W tym artykule są używane bez magazynu trwałego dla uproszczenia. W przypadku obciążeń produkcyjnych użyj usług zarządzanych, takich jak Azure Cosmos DB lub Azure Service Bus.
Aby uzyskać dostęp do bazy kodu GitHub dla przykładowej aplikacji, zobacz AKS Store Demo.
Zanim rozpoczniesz
- Potrzebujesz konta Azure z aktywną subskrypcją. Jeśli go nie masz, utwórz bezpłatne konto.
- Na potrzeby tego pokazu użyj Azure interfejsu OpenAI lub interfejsu API OpenAI.
- Aby użyć Azure OpenAI, musisz mieć uprawnienia do tworzenia zasobu Azure OpenAI i wdrażania modelu. Rejestracja jest wymagana tylko w przypadku modeli z ograniczonym dostępem lub zmodyfikowanych zabezpieczeń.
- Aby użyć interfejsu API OpenAI, utwórz konto w witrynie internetowej openAI.
Prerequisites
Użyj środowiska powłoki Bash w Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Rozpocznij pracę z Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj Azure CLI. Jeśli korzystasz z Windows lub macOS, rozważ uruchomienie Azure CLI w kontenerze platformy Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić Azure CLI w kontenerze platformy Docker.
Jeśli używasz instalacji lokalnej, zaloguj się do Azure CLI przy użyciu polecenia az login. Aby zakończyć proces uwierzytelniania, wykonaj kroki wyświetlane na Twoim terminalu. Aby uzyskać inne opcje logowania, zobacz Uwierzytelnianie do Azure za pomocą Azure CLI.
Po wyświetleniu monitu zainstaluj rozszerzenie Azure CLI podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Używanie rozszerzeń i zarządzanie nimi za pomocą Azure CLI.
Uruchom az version, aby sprawdzić zainstalowaną wersję i biblioteki zależne. Aby przeprowadzić uaktualnienie do najnowszej wersji, uruchom az upgrade.
Tworzenie grupy zasobów
Grupa zasobów Azure to grupa logiczna, w której wdrażasz zasoby Azure i zarządzasz nimi. Podczas tworzenia grupy zasobów zostanie wyświetlony monit o określenie lokalizacji. Ta lokalizacja to lokalizacja magazynu metadanych grupy zasobów i lokalizacja, w której zasoby są uruchamiane w Azure, jeśli nie określisz innego regionu podczas tworzenia zasobów.
W poniższym przykładzie tworzona jest grupa zasobów o nazwie myResourceGroup w lokalizacji eastus.
Utwórz grupę zasobów przy użyciu polecenia az group create.
az group create --name myResourceGroup --location eastus
Następujące przykładowe dane wyjściowe pokazują pomyślne utworzenie grupy zasobów:
{
"id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
"location": "eastus",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Utwórz klaster AKS
Poniższy przykład tworzy klaster o nazwie myAKSCluster w grupie myResourceGroup.
Utwórz klaster AKS za pomocą polecenia az aks create.
az aks create --resource-group myResourceGroup --name myAKSCluster --generate-ssh-keys
Po kilku minutach polecenie zostanie wykonane i zwróci informacje o klastrze w formacie JSON.
Połącz się z klastrem
Aby zarządzać klastrem Kubernetes, użyj klienta wiersza polecenia Kubernetes, kubectl. Jeśli korzystasz z usługi Azure Cloud Shell, narzędzie kubectl jest już zainstalowane.
Zainstaluj
kubectllokalnie przy użyciuaz aks install-clipolecenia .az aks install-cliUwaga
Jeśli system oparty na systemie Linux wymaga podwyższonych uprawnień, użyj
sudo az aks install-clipolecenia .Skonfiguruj
kubectl, aby nawiązać połączenie z klastrem Kubernetes za pomocą poleceniaaz aks get-credentials.To polecenie uruchamia następujące operacje:
- Pobiera poświadczenia i konfiguruje narzędzie CLI Kubernetes do ich użycia.
- Używa
~/.kube/config, domyślnej lokalizacji pliku konfiguracji Kubernetes. Określ inną lokalizację pliku konfiguracji platformy Kubernetes przy użyciu argumentu --file .
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterZweryfikuj połączenie z klastrem, używając polecenia
kubectl get. Ta komenda zwraca listę węzłów klastra.kubectl get nodesPoniższe przykładowe dane wyjściowe pokazują węzły utworzone w poprzednich krokach. Sprawdź, czy każdy węzeł ma stan Gotowe.
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
Uwaga
W przypadku prywatnego klastra usługi AKS nawiąż połączenie z punktu końcowego w tej samej sieci wirtualnej co klaster. Aby uzyskać instrukcje dotyczące konfiguracji, zobacz Tworzenie prywatnego klastra usługi AKS.
Wdrażanie aplikacji
Aplikacja AKS Store zawiera następujące wdrożenia i usługi Kubernetes:
- Usługa produktu: wyświetla informacje o produkcie.
- Usługa zamówień: składa zamówienia.
- Usługa makeline: Przetwarza zamówienia z kolejki i realizuje zamówienia.
- Front sklepu: aplikacja internetowa dla klientów do wyświetlania produktów i składania zamówień.
- Administrator sklepu: aplikacja internetowa dla pracowników sklepu umożliwiająca wyświetlanie zamówień w kolejce i zarządzanie informacjami o produkcie.
- Klient wirtualny: symuluje tworzenie zamówień zgodnie z harmonogramem.
- Wirtualny proces roboczy: symuluje ukończenie zamówienia zgodnie z harmonogramem.
- DocumentDB: NoSQL wystąpienie dla utrwalanych danych.
- RabbitMQ: kolejka komunikatów do obsługi kolejki zamówień.
Uwaga
Nie uruchamiaj kontenerów stanowych, takich jak DocumentDB i RabbitMQ, bez trwałego magazynu w środowisku produkcyjnym. W tym artykule są używane bez magazynu trwałego dla uproszczenia. W przypadku obciążeń produkcyjnych użyj usług zarządzanych, takich jak Azure Cosmos DB lub Azure Service Bus.
Przejrzyj manifest YAML dla aplikacji.
Wdróż aplikację przy użyciu
kubectl applypolecenia i określ nazwę manifestu YAML.kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-all-in-one.yaml
Wdrażanie usługi OpenAI
Wybierz Azure interfejsu OpenAI lub interfejsu API OpenAI dla aplikacji działającej w usłudze AKS.
- W portalu Azure utwórz wystąpienie Azure OpenAI.
- Zaloguj się do usługi Microsoft Foundry.
- Wyłącz przełącznik New Foundry , a następnie wybierz pozycję Wyświetl wszystkie zasoby w obszarze Zachowaj kompilowanie za pomocą narzędzia Foundry.
- Wybierz utworzony zasób openAI Azure, a następnie wybierz pozycję Wdrożenia w obszarze Udostępnione zasoby.
- Wybierz Wdróż model>Wdróż model podstawowy.
- Wybierz model gpt-4o-mini base, wprowadź nazwę wdrożenia, a następnie wdróż model. Zapisz nazwę wdrożenia dla następnej sekcji.
Aby uzyskać więcej informacji na temat tworzenia wdrożenia Azure OpenAI, zobacz Wprowadzenie do generowania tekstu przy użyciu Azure OpenAI.
Wdrażanie mikrousługi sztucznej inteligencji
Wdróż mikrousługę sztucznej inteligencji opartą na Python, która automatycznie generuje opisy produktów przy użyciu interfejsu OpenAI. Ta mikrousługa łączy się z aplikacją ze Sklepu AKS wdrożonym w poprzedniej sekcji.
Użyj Azure wdrożenia zasobu OpenAI i modelu utworzonego w sekcji Wdrażanie usługi OpenAI. Skonfiguruj następujące zmienne środowiskowe w manifeście mikrousługi sztucznej inteligencji:
| Zmienna środowiskowa | Wartość |
|---|---|
USE_AZURE_OPENAI |
Ustaw wartość na wartość , aby "True" użyć Azure OpenAI. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Nazwa gpt-4o-mini wdrożenia modelu w usłudze Microsoft Foundry. |
AZURE_OPENAI_ENDPOINT |
Punkt końcowy ze strony Klucze i punkt końcowy zasobu Azure OpenAI. |
OPENAI_API_KEY |
Klucz interfejsu API ze strony Klucze i punkt końcowy zasobu Azure OpenAI. |
Utwórz plik o nazwie
ai-service.yamli skopiuj go w następującym manifeście: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-serviceUstaw zmienną środowiskową
USE_AZURE_OPENAIna"True".W Microsoft Foundry skopiuj nazwę wdrożenia Azure OpenAI i ustaw
AZURE_OPENAI_DEPLOYMENT_NAMEwartość .W portalu Azure wybierz pozycję Klucze i punkt końcowy w zasobie Azure OpenAI. Skopiuj punkt końcowy i klucz interfejsu API, a następnie ustaw
AZURE_OPENAI_ENDPOINTwartości iOPENAI_API_KEY.Wdróż aplikację przy użyciu
kubectl applypolecenia i określ nazwę manifestu YAML.kubectl apply -f ai-service.yamlW poniższych przykładowych danych wyjściowych przedstawiono pomyślnie utworzone wdrożenia i usługi:
deployment.apps/ai-service created service/ai-service created
Uwaga
Przechowywanie kluczy interfejsu API bezpośrednio w manifestach platformy Kubernetes jest niezabezpieczone i może uwidaczniać wpisy tajne w kontroli źródła. W tym przykładzie użyto wartości manifestu dla uproszczenia. W przypadku obciążeń produkcyjnych należy uwierzytelnić się w usłudze Azure OpenAI przy użyciu tożsamości zarządzanej lub przechowywać wpisy tajne w Azure Key Vault.
Testowanie aplikacji
Sprawdź stan wdrożonych zasobników za pomocą polecenia
kubectl get pods.kubectl get podsPrzed kontynuowaniem sprawdź, czy wszystkie zasobniki mają stan Uruchomiono .
Pobierz zewnętrzny adres IP administratora magazynu przy użyciu
kubectl get servicepolecenia .kubectl get service store-adminUsługa Kubernetes uwidacznia administratora magazynu za pośrednictwem publicznego modułu równoważenia obciążenia. Przypisanie adresu przez moduł równoważenia obciążenia może potrwać kilka minut. Wartość EXTERNAL-IP jest wyświetlana jako oczekująca do momentu udostępnienia adresu.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-admin LoadBalancer 10.0.142.228 40.64.86.161 80:32494/TCP 50mPowtórz poprzedni krok dla
store-frontusługi.W przeglądarce internetowej przejdź do zewnętrznego adresu IP administratora sklepu. W tym przykładzie adres to 40.64.86.161.
W obszarze Administrator sklepu wybierz pozycję Produkty>Dodaj produkt.
Po
ai-serviceuruchomieniu obok pola opisu zostanie wyświetlony przycisk Zapytaj asystenta sztucznej inteligencji . Wprowadź nazwę, cenę i słowa kluczowe, wybierz pozycję Zapytaj Asystenta sztucznej inteligencji, aby wygenerować opis produktu, a następnie wybierz pozycję Zapisz produkt.Sprawdź, czy w obszarze Administrator sklepu jest wyświetlany przycisk Dog Smart Collar.
Przejdź do zewnętrznego adresu IP aplikacji Store Front i sprawdź, czy jest wyświetlany pies Smart Collar.
Dalsze kroki
Po dodaniu funkcji OpenAI do aplikacji usługi AKS możesz zabezpieczyć dostęp do Azure OpenAI z usług Azure Kubernetes Service (AKS).
Aby dowiedzieć się więcej na temat przypadków użycia generatywnej sztucznej inteligencji, zobacz następujące zasoby.