Aracılığıyla paylaş


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:

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

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:

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.