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 hızlı başlangıçta AKS veya Arc özellikli Kubernetes kümesinde Dapr uzantısını kullanacaksınız. İleti oluşturan bir hello world Python uygulamasından ve iletileri kullanan ve kalıcı hale getiren bir Node.js uygulamasından oluşan bir örnek dağıtırsınız.
Önkoşullar
- Azure aboneliği. Hesabınız yoksa ücretsiz bir hesap oluşturabilirsiniz.
- Azure CLI yüklü
- Aks kümesi:
- İş yükü kimliği etkinleştirildi
- Aynı abonelikte oluşturulan yönetilen kimlik
- Kubernetes hizmet hesabı
- Federatif kimlik bilgisi
- AKS kümesinde yüklü Dapr uzantısı
- kubectl yerel olarak yüklendi
Depoyu kopyalama
Komutunu kullanarak Dapr hızlı başlangıç deposunu
git clonekopyalayın.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.gitDizine
dapr-aks-extension-quickstartgeçin.cd dapr-aks-extension-quickstart
Redis deposu oluşturma ve yapılandırma
Azure Yönetilen Redis oluşturma akışını başlatmak için Azure portalını açın.
Azure Yönetilen Redis örneği oluşturma hızlı başlangıcındaki yönergelere göre önerilen bilgileri doldurun.
Redis örneği dağıtımını başlatmak için Oluştur'u seçin.
Kaynak bilgilerini doğrulama
Redis kaynağı dağıtıldıktan sonra genel bakış sayfasına gidin.
Şunlara dikkat edin:
- Kaynağın genel bakış sayfasındaki Temel Bilgiler bölümünde bulunan ana bilgisayar adı. Konak adı biçimi şuna benzer:
<your-cache-name>.<region>.redis.azure.net. -
Ayarlar>Gelişmiş ayarlar bölümünde bulunan SSL bağlantı noktası. Varsayılan değer şudur:
10000.
- Kaynağın genel bakış sayfasındaki Temel Bilgiler bölümünde bulunan ana bilgisayar adı. Konak adı biçimi şuna benzer:
Terminalinizde, varsayılan veritabanında erişim anahtarı kimlik doğrulamasını etkinleştirin.
az redisenterprise database update \ --cluster-name <REDIS_NAME> \ --resource-group <RESOURCE_GROUP> \ --access-keys-auth EnabledVarsayılan veritabanı için birincil anahtarı alın ve bir ortam değişkenine kaydedin.
export REDIS_PRIMARY_KEY=$(az redisenterprise database list-keys \ --cluster-name <REDIS_NAME> \ --resource-group <RESOURCE_GROUP> \ --query primaryKey \ -o tsv)
Genel ağ erişimini etkinleştirme
Bu senaryoda, Azure Yönetilen Redis örneğiniz genel ağ erişimini kullanır. Bu hızlı başlangıcı tamamladıktan sonra kaynakları temizlediğinizden emin olun.
Kaynak menüsünde, Ayarlar altında Ağ'ı seçin.
Genel ağ erişiminiEtkin olarak ayarlayın.
Dapr bileşenlerini yapılandırma
redis.yaml dosyasında, bileşeni TLS ile erişim anahtarı kimlik doğrulamasını kullanacak şekilde yapılandıracaksınız.
- name: redisPassword
secretKeyRef:
name: redis-secret
key: redisPassword
- name: useEntraID
value: "false"
- name: enableTLS
value: true
Tercih ettiğiniz kod düzenleyicisinde örnek depodaki deploy dizinine gidin ve redis.yaml dosyasını açın.
redisHostiçin,<REDIS_HOST>:10000yer tutucu değerini daha önce Azure portalında kaydettiğiniz Azure Managed Redis ana bilgisayar adıyla değiştirin.- name: redisHost value: <your-cache-name>.<region>.redis.azure.net:10000redisPasswordtarafından kullanılan Kubernetes secret'ını oluşturun.kubectl create secret generic redis-secret \ --from-literal=redisPassword="$REDIS_PRIMARY_KEY"
Yapılandırmayı uygulama
komutunu kullanarak kubectl apply dosyasını uygulayın.
kubectl apply -f ./deploy/redis.yaml
Beklenen çıkış
component.dapr.io/statestore created
Dapr yan arabirimi ile Node.js uygulamasını dağıtın
Node.js uygulamasını yapılandırma
dizinine
deploygidin ve workload-identity.yaml dosyasını açın.<MANAGED_IDENTITY_CLIENT_ID>değerini, oluşturduğunuz kullanıcı tarafından atanmış yönetilen kimliğin istemci kimliğiyle değiştirin.Uygulama bildirimlerini dağıtmadan önce hizmet hesabı bildirimini uygulayın.
kubectl apply -f ./deploy/workload-identity.yaml
node.yaml dosyasında pod belirtimi iş yükü kimlik etiketini ve paylaşılan workload-sa hizmet hesabını kullanır:
labels:
app: node
azure.workload.identity/use: "true"
Yapılandırmayı uygulama
komutunu kullanarak Node.js uygulama dağıtımını
kubectl applykümenize uygulayın.kubectl apply -f ./deploy/node.yamlKubernetes dağıtımları zaman uyumsuz olduğundan, sonraki adımlara geçmeden önce aşağıdaki komutla dağıtımın tamamlanmasını doğrulayın:
kubectl rollout status deploy/nodeappkomutunu kullanarak hizmetinize erişin
kubectl get svc.kubectl get svc nodeappÇıktıdaki
EXTERNAL-IPöğesini not alın ve bunu bir ortam değişkeni olarak ayarlayın.export EXTERNAL_IP=<EXTERNAL-IP>
Node.js hizmetini doğrulama
curlkullanarak hizmetiEXTERNAL-IPile çağırın.curl $EXTERNAL_IP/portsÖrnek çıkış
{"DAPR_HTTP_ENDPOINT":"http://localhost:3500","DAPR_GRPC_ENDPOINT":"http://localhost:50001"}Uygulamaya bir sipariş gönderin.
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworderSiparişi onaylayın.
curl $EXTERNAL_IP/orderBeklenen çıkış
{ "orderId": "42" }
Python uygulamasını Dapr yan arabirim ile dağıtın
Python uygulamasını yapılandırma
python.yaml dosyasında pod belirtimi iş yükü kimlik etiketini ve paylaşılan workload-sa hizmet hesabını kullanır:
labels:
app: python
azure.workload.identity/use: "true"
Yapılandırmayı uygulama
komutunu kullanarak Python uygulamasını Kubernetes kümenize dağıtın
kubectl apply.kubectl apply -f ./deploy/python.yamlKubernetes dağıtımları zaman uyumsuz olduğundan, sonraki adımlara geçmeden önce aşağıdaki komutla dağıtımın tamamlanmasını doğrulayın:
kubectl rollout status deploy/pythonapp
İletileri gözlemleyin ve kalıcılığı onaylayın
Artık hem Node.js hem de Python uygulamaları dağıtıldığından iletilerin gelmesini izleyebilirsiniz.
kubectl logskomutunu kullanarak Node.js uygulamasının günlüklerini alın.kubectl logs --selector=app=node -c node --tail=-1Beklenen çıkış
Got a new order! Order ID: 1 Successfully persisted state Got a new order! Order ID: 2 Successfully persisted state Got a new order! Order ID: 3 Successfully persisted statekullanarak
curl, en son siparişi almak için Node.js uygulamasının sipariş uç noktasını çağırın.curl $EXTERNAL_IP/orderYanıtta en son JSON çıkışını görmeniz gerekir.
Kaynakları temizleme
Bu hızlı başlangıçtaki kaynakları artık kullanmayı planlamazsa az group delete komutunu kullanarak kaynak grubunu, kümeyi, ad alanını ve tüm ilgili kaynakları kaldırabilirsiniz.
az group delete --name <your-resource-group>