Azure Kubernetes Service (AKS) için Dapr uzantısıyla iş akışlarını dağıtma ve çalıştırma
Dapr İş Akışı ile çeşitli mikro hizmetlerde mesajlaşmayı, durum yönetimini ve hata işleme mantığını kolayca düzenleyebilirsiniz. Dapr İş Akışı uzun süre çalışan, hataya dayanıklı ve durum bilgisi olan uygulamalar oluşturmanıza yardımcı olabilir.
Bu kılavuzda , aşağıdakiler için sağlanan sipariş işleme iş akışı örneğini kullanırsınız:
- Bu örnek için bir Azure Container Registry ve aks kümesi oluşturun.
- AKS kümenize Dapr uzantısını yükleyin.
- Örnek uygulamayı AKS'ye dağıtın.
- HTTP API çağrılarını kullanarak iş akışı örneklerini başlatın ve sorgular.
İş akışı örneği, aşağıdakiler içeren bir ASP.NET Core projesidir:
Program.cs
İş akışı ve iş akışı etkinliklerinin kaydı dahil olmak üzere uygulamanın kurulumunu içeren bir dosya.- Dizinde
Workflows
bulunan iş akışı tanımları. - Dizinde
Activities
bulunan iş akışı etkinliği tanımları.
Not
Dapr workflow şu anda bir beta özelliğidir ve self servis, kabul temelindedir. Beta Dapr API'leri ve bileşenleri "olduğu gibi" ve "kullanılabilir" olarak sağlanır ve kararlı duruma doğru ilerledikçe sürekli gelişmektedir. Beta API'ler ve bileşenler müşteri desteği kapsamında değildir.
Önkoşullar
- Sahip veya Yönetici rolüne sahip bir Azure aboneliği .
- Azure CLI'nin en son sürümü
- En Son Docker
- En Son Helm
Ortamı ayarlama
Örnek projeyi kopyalama
Örnek iş akışı uygulamasını kopyalama.
git clone https://github.com/Azure/dapr-workflows-aks-sample.git
Örneğin kök dizinine gidin.
cd dapr-workflows-aks-sample
Kubernetes kümesi oluşturma
AKS kümesini tutmak için bir kaynak grubu oluşturun.
az group create --name myResourceGroup --location eastus
AKS kümesi oluşturma.
az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 2 --generate-ssh-keys
Yüklü olduğundan ve AKS kümenize işaretlendiğinden emin kubectl
olun. Azure Cloud Shell'i kullanıyorsanız kubectl
zaten yüklüdür.
Daha fazla bilgi için AKS kümesi dağıtma öğreticisine bakın.
Uygulamayı AKS'ye dağıtma
AKS kümenize Dapr yükleme
AKS kümenize Dapr uzantısını yükleyin. Başlamadan önce şunları yaptığınızdan emin olun:
- yüklendi veya güncelleştirildi
k8s-extension
. - Hizmet sağlayıcısı kaydedildi
Microsoft.KubernetesConfiguration
az k8s-extension create --cluster-type managedClusters --cluster-name myAKSCluster --resource-group myResourceGroup --name dapr --extension-type Microsoft.Dapr
Dapr'ın yüklü olduğunu doğrulayın:
kubectl get pods -A
Redis Actor durum deposu bileşenini dağıtma
Deploy
Örneğin çatalı oluşturulmuş sürümündeki dizine gidin:
cd Deploy
Redis bileşenini dağıtma:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install redis bitnami/redis
kubectl apply -f redis.yaml
Uygulamayı çalıştırma
Redis dağıtıldıktan sonra uygulamayı AKS'ye dağıtın:
kubectl apply -f deployment.yaml
Dapr sepetini ve örnek uygulamayı kullanıma sunma:
kubectl apply -f service.yaml
export APP_URL=$(kubectl get svc/workflows-sample -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
export DAPR_URL=$(kubectl get svc/workflows-sample-dapr -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
Yukarıdaki komutların dışarı aktarıldığını doğrulayın:
echo $APP_URL
echo $DAPR_URL
İş akışını başlatma
Artık uygulama ve Dapr AKS kümesine dağıtıldığından iş akışı örneklerini başlatabilir ve sorgulayabilirsiniz. Örnek uygulamaya aşağıdaki API çağrısını kullanarak stoktaki öğeleri yeniden stokla:
curl -X GET $APP_URL/stock/restock
İş akışını başlatın:
curl -i -X POST $DAPR_URL/v1.0-beta1/workflows/dapr/OrderProcessingWorkflow/start?instanceID=1234 \
-H "Content-Type: application/json" \
-d '{ "input" : {"Name": "Paperclips", "TotalCost": 99.95, "Quantity": 1}}'
Beklenen çıktı:
HTTP/1.1 202 Accepted
Content-Type: application/json
Traceparent: 00-00000000000000000000000000000000-0000000000000000-00
Date: Tue, 23 Apr 2024 15:35:00 GMT
Content-Length: 21
İş akışı durumunu denetleyin:
curl -i -X GET $DAPR_URL/v1.0-beta1/workflows/dapr/1234
Beklenen çıktı:
HTTP/1.1 200 OK
Content-Type: application/json
Traceparent: 00-00000000000000000000000000000000-0000000000000000-00
Date: Tue, 23 Apr 2024 15:51:02 GMT
Content-Length: 580
{
"instanceID":"1234",
"workflowName":"OrderProcessingWorkflow",
"createdAt":"2024-04-23T15:35:00.156714334Z",
"lastUpdatedAt":"2024-04-23T15:35:00.176459055Z",
"runtimeStatus":"COMPLETED",
"dapr.workflow.input":"{ \"input\" : {\"Name\": \"Paperclips\", \"TotalCost\": 99.95, \"Quantity\": 1}}",
"dapr.workflow.output":"{\"Processed\":true}"
}
İş akışı durumunun tamamlandı olarak işaretlendiğini fark edin.
Sonraki adımlar
AKS kümenizdeki Dapr uzantısına yapılandırma ayarlarını eklemeyi öğrenin.
Azure Kubernetes Service
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin