Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede AKS Store Tanıtım uygulamasını Azure Kubernetes Service (AKS) dağıtacak ve Azure OpenAI veya OpenAI API'sini ürün açıklamaları oluşturacak şekilde yapılandıracaksınız.
Buluta özel örnek uygulama, aşağıdakiler dahil olmak üzere birden çok dilde ve çerçevede yazılmış hizmetlerden oluşur:
- Gin ile Golang
- Actix-Web ile Rust
- Vue.js ve Fastify ile JavaScript
- FastAPI ile Python
Bu uygulamalar alışveriş yapanlara ve mağaza yöneticilerine ön uçlar, Bir RabbitMQ ileti kuyruğuna ve DocumentDB veritabanına veri gönderen REST API'leri ve trafiğin simülasyonunu yapan konsol uygulamaları sağlar.
Note
DocumentDB ve RabbitMQ gibi durum bilgisi olan kapsayıcıları üretimde kalıcı depolama olmadan çalıştırmayın. Bu makalede kolaylık sağlamak için kalıcı depolama olmadan kullanılır. Üretim iş yükleri için Azure Cosmos DB veya Azure Service Bus gibi yönetilen hizmetleri kullanın.
Örnek uygulamanın GitHub kod tabanına erişmek için bkz. AKS Store Tanıtımı.
Başlamadan önce
- Etkin aboneliği olan bir Azure hesabınız olmalıdır. Hesabınız yoksa ücretsiz bir hesap oluşturun.
- Bu tanıtım için OpenAI Azure veya OpenAI API'sini kullanın.
- OpenAI Azure kullanmak için Azure OpenAI kaynağı oluşturma ve model dağıtma izinlerine sahip olmanız gerekir. Kayıt yalnızca sınırlı erişimli modeller veya değiştirilmiş korumalar için gereklidir.
- OpenAI API'sini kullanmak için OpenAI web sitesine kaydolun.
Önkoşullar
bash ortamını Azure Cloud Shell kullanın. Daha fazla bilgi için bkz. Azure Cloud Shell ile çalışmaya başlama.
CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yi yükleyin. Windows veya macOS üzerinde çalıştırıyorsanız Azure CLI Docker kapsayıcısında çalıştırmayı göz önünde bulundurun. Daha fazla bilgi için bkz. Docker kapsayıcısında Azure CLI çalıştırma.
Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz. Azure CLI kullanarak Azure'a kimlik doğrulama.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma ve yönetme.
Yüklü olan sürümü ve bağımlı kütüphaneleri bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
Kaynak grubu oluşturma
Azure kaynak grubu Azure kaynakları dağıtıp yönettiğiniz mantıksal bir grupdur. Bir kaynak grubu oluşturduğunuzda, bir konum belirtmeniz istenir. Bu konum, kaynak grubu meta verilerinizin depolama konumudur ve kaynak oluşturma sırasında başka bir bölge belirtmezseniz kaynaklarınızın Azure içinde çalıştığı konumdur.
Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur.
az group create komutunu kullanarak bir kaynak grubu oluşturun.
az group create --name myResourceGroup --location eastus
Aşağıdaki örnek çıktıda kaynak grubunun başarıyla oluşturulduğu gösterilmektedir:
{
"id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
"location": "eastus",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
AKS kümesi oluşturma
Aşağıdaki örnek, myResourceGroup içinde myAKSCluster adlı bir küme oluşturur.
az aks create komutunu kullanarak bir AKS kümesi oluşturun.
az aks create --resource-group myResourceGroup --name myAKSCluster --generate-ssh-keys
Birkaç dakika sonra komut tamamlanıp kümeyle ilgili JSON biçimli bilgileri döndürür.
Kümeye bağlanma
Kubernetes kümesini yönetmek için Kubernetes komut satırı istemcisini kubectlkullanın. Azure Cloud Shell kullanıyorsanız kubectl zaten yüklüdür.
kubectlyerel olarakaz aks install-clikomutunu kullanarak yükleyin.az aks install-cliNote
Linux tabanlı sisteminiz yükseltilmiş izinler gerektiriyorsa komutunu kullanın
sudo az aks install-cli.kubectl'yi,az aks get-credentialskomutunu kullanarak Kubernetes kümenize bağlanmak için yapılandırın.Bu komut aşağıdaki işlemleri çalıştırır:
- Kubernetes CLI'yi kimlik bilgilerini kullanacak şekilde yapılandırmak için kimlik bilgilerini indirir.
- Kubernetes yapılandırma dosyası
~/.kube/configvarsayılan konumu kullanır. --file bağımsız değişkenini kullanarak Kubernetes yapılandırma dosyanız için farklı bir konum belirtin.
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterKümelenize olan bağlantınızı
kubectl getkomutunu kullanarak doğrulayın. Bu komut, küme düğümlerinin listesini döndürür.kubectl get nodesAşağıdaki örnek çıktı, önceki adımlarda oluşturulan düğümleri gösterir. Her düğümün Durumunun Hazır olduğunu doğrulayın.
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
Note
Özel aks kümesi için, kümeyle aynı sanal ağdaki bir uç noktadan bağlanın. Yapılandırma yönergeleri için bkz. Özel AKS kümesi oluşturma.
Uygulamayı dağıt
AKS Store uygulaması bildirimi aşağıdaki Kubernetes dağıtımlarını ve hizmetlerini içerir:
- Ürün hizmeti: Ürün bilgilerini gösterir.
- Sipariş hizmeti: Sipariş verir.
- Satır içi hizmet: Kuyruktan gelen siparişleri işler ve siparişleri tamamlar.
- Mağaza ön: Müşterilerin ürünleri görüntülemesi ve sipariş vermesi için web uygulaması.
- Mağaza yöneticisi: Mağaza çalışanlarının kuyruktaki siparişleri görüntülemesi ve ürün bilgilerini yönetmesi için web uygulaması.
- Sanal müşteri: Sipariş oluşturma işlemini zamanlanmış olarak simüle eder.
- Sanal çalışan: Sipariş tamamlamayı belirli bir program dahilinde simüle eder.
- DocumentDB: Kalıcı veriler için NoSQL örneği.
- RabbitMQ: Sipariş kuyruğu için ileti kuyruğu.
Note
DocumentDB ve RabbitMQ gibi durum bilgisi olan kapsayıcıları üretimde kalıcı depolama olmadan çalıştırmayın. Bu makalede kolaylık sağlamak için kalıcı depolama olmadan kullanılır. Üretim iş yükleri için Azure Cosmos DB veya Azure Service Bus gibi yönetilen hizmetleri kullanın.
Uygulama için YAML bildirimi gözden geçirin.
komutunu kullanarak uygulamayı dağıtın
kubectl applyve YAML bildiriminizin adını belirtin.kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-all-in-one.yaml
OpenAI hizmeti dağıtma
AKS üzerinde çalışan uygulama için OpenAI Azure veya OpenAI API'sini seçin.
- Azure portalında bir Azure OpenAI örneği oluşturun.
- Microsoft Foundry'ye giriş yapın.
- Yeni Dökümhane iki durumlu düğmesini kapatın ve Ardından Foundry ile oluşturmaya devam et'in altında Tüm kaynakları görüntüle'yi seçin.
- Oluşturduğunuz Azure OpenAI kaynağını seçin ve ardından Paylaşılan kaynaklar'ın altında Dağıtımlar'ı seçin.
- Deploy modeli seçin Temel modeli dağıt.
- gpt-4o-mini temel modelini seçin, bir dağıtım adı girin ve modeli dağıtın. Sonraki bölüm için dağıtım adını kaydedin.
Azure OpenAI dağıtımı oluşturma hakkında daha fazla bilgi için bkz. Azure OpenAI kullanarak metin oluşturmaya başlama.
Yapay zeka mikro hizmetini dağıtma
Otomatik olarak ürün açıklamaları oluşturmak için OpenAI kullanan Python tabanlı yapay zeka mikro hizmetini dağıtın. Bu mikro hizmet, önceki bölümde dağıtılan AKS Mağazası uygulamasına bağlanır.
OpenAI hizmetini dağıtma bölümünde oluşturduğunuz Azure OpenAI kaynağını ve model dağıtımını kullanın. AI mikro hizmet bildiriminde aşağıdaki ortam değişkenlerini yapılandırın:
| Ortam değişkeni | Değer |
|---|---|
USE_AZURE_OPENAI |
"True" Azure OpenAI kullanmak için olarak ayarlayın. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Microsoft Foundry'de model dağıtımınızın gpt-4o-mini adı. |
AZURE_OPENAI_ENDPOINT |
Azure OpenAI kaynağınızın Anahtarlar ve Uç Nokta sayfasından uç nokta. |
OPENAI_API_KEY |
Azure OpenAI kaynağınızın Anahtarlar ve Uç Nokta sayfasından bir API anahtarı. |
Adlı
ai-service.yamlbir dosya oluşturun ve aşağıdaki bildirimde kopyalayın: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-serviceOrtam değişkenini
USE_AZURE_OPENAIolarak"True"ayarlayın.Microsoft Foundry'de Azure OpenAI dağıtım adını kopyalayın ve değeri ayarlayın
AZURE_OPENAI_DEPLOYMENT_NAME.Azure portalında, Azure OpenAI kaynağınızda Anahtarlar ve Uç Nokta'yı seçin. Uç nokta ve API anahtarını kopyalayın ve ve
OPENAI_API_KEYdeğerlerini ayarlayınAZURE_OPENAI_ENDPOINT.komutunu kullanarak uygulamayı dağıtın
kubectl applyve YAML bildiriminizin adını belirtin.kubectl apply -f ai-service.yamlAşağıdaki örnek çıktı, başarıyla oluşturulan dağıtımları ve hizmetleri gösterir:
deployment.apps/ai-service created service/ai-service created
Note
API anahtarlarını doğrudan Kubernetes bildirimlerinde depolamak güvenli değildir ve kaynak denetiminde gizli dizileri kullanıma açabilir. Bu örnek, kolaylık sağlamak için bildirim değerlerini kullanır. Üretim iş yükleri için, yönetilen kimlik kullanarak OpenAI Azure kimliğini doğrulayın veya gizli dizileri Azure Key Vault'de depolayın.
Uygulamayı test etme
komutunu kullanarak
kubectl get podsdağıtılan podların durumunu denetleyin.kubectl get podsDevam etmeden önce tüm podların Çalışıyor durumunda olduğunu doğrulayın.
komutunu kullanarak
kubectl get serviceMağaza Yöneticisi'nin dış IP adresini alın.kubectl get service store-adminKubernetes hizmeti, genel yük dengeleyici aracılığıyla Mağaza Yöneticisi'ni kullanıma sunar. Yük dengeleyicinin adres ataması birkaç dakika sürebilir. EXTERNAL-IP değeri, adres kullanılabilir olana kadar beklemede olarak görüntülenir.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-admin LoadBalancer 10.0.142.228 40.64.86.161 80:32494/TCP 50mHizmet için
store-frontönceki adımı yineleyin.Web tarayıcısında Mağaza Yöneticisi'nin dış IP adresine gidin. Bu örnekte adres 40.64.86.161'dir.
Mağaza Yöneticisi'nde Ürünler>Ürün Ekle'yi seçin.
Başladıktan sonra
ai-service, açıklama alanının yanında Yapay Zeka Yardımcısı'na Sor düğmesi görüntülenir. Adı, fiyatı ve anahtar sözcükleri girin, AI Yardımcısı'na sorun'u seçerek ürün açıklaması oluşturun ve ardından Ürünü Kaydet'i seçin.Köpek Akıllı Yaka'nın Mağaza Yöneticisi'nde göründüğünü doğrulayın.
Mağaza Ön'e yönelik dış IP adresine gidin ve Köpek Akıllı Yaka'nın göründüğünü doğrulayın.
Sonraki adımlar
Bir AKS uygulamasına OpenAI işlevselliği eklediğinize göre, Azure Kubernetes Service (AKS) üzerinden Azure OpenAI'ye güvenli erişimi sağlayabilirsiniz.
Yapay zeka kullanım örnekleri hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın: