Menyebarkan dan menjalankan alur kerja dengan ekstensi Dapr untuk Azure Kubernetes Service (AKS)

Dengan Dapr Workflow, Anda dapat dengan mudah mengatur logika olahpesan, manajemen status, dan penanganan kegagalan di berbagai layanan mikro. Alur Kerja Dapr dapat membantu Anda membuat aplikasi yang berjalan lama, toleran terhadap kesalahan, dan stateful.

Dalam panduan ini, Anda menggunakan contoh alur kerja pemrosesan pesanan yang disediakan untuk:

  • Buat Azure Container Registry dan kluster AKS untuk sampel ini.
  • Instal ekstensi Dapr pada kluster AKS Anda.
  • Sebarkan aplikasi sampel ke AKS.
  • Mulai dan kueri instans alur kerja menggunakan panggilan API HTTP.

Contoh alur kerja adalah proyek ASP.NET Core dengan:

Catatan

Alur Kerja Dapr saat ini adalah fitur beta dan berdasarkan layanan mandiri. API dan komponen Dapr Beta disediakan "apa adanya" dan "sebagaimana tersedia", dan terus berkembang saat mereka bergerak menuju status stabil. API dan komponen Beta tidak tercakup oleh dukungan pelanggan.

Prasyarat

  • Langganan Azure dengan peran Pemilik atau Admin.
  • Versi terbaru Azure CLI
  • Docker Terbaru
  • Helm Terbaru

Menyiapkan lingkungan

Mengkloning proyek sampel

Kloning contoh aplikasi alur kerja.

git clone https://github.com/Azure/dapr-workflows-aks-sample.git

Navigasikan ke direktori akar sampel.

cd dapr-workflows-aks-sample

Buatlah kluster Kubernetes

Buat grup sumber daya untuk menahan kluster AKS.

az group create --name myResourceGroup --location eastus

Buat kluster AKS.

az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 2 --generate-ssh-keys 

Pastikan kubectl telah diinstal dan ditujukkan ke kluster AKS Anda. Jika Anda menggunakan Azure Cloud Shell, kubectl sudah terpasang.

Untuk informasi selengkapnya, lihat tutorial Menyebarkan kluster AKS.

Menyebarkan aplikasi ke AKS

Menginstal Dapr pada kluster AKS Anda

Instal ekstensi Dapr pada kluster AKS Anda. Sebelum memulai, pastikan Anda memiliki:

az k8s-extension create --cluster-type managedClusters --cluster-name myAKSCluster --resource-group myResourceGroup --name dapr --extension-type Microsoft.Dapr

Pastikan Dapr diinstal:

kubectl get pods -A

Menyebarkan komponen penyimpanan status Redis Actor

Navigasikan ke Deploy direktori dalam versi sampel fork Anda:

cd Deploy

Sebarkan komponen Redis:

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install redis bitnami/redis
kubectl apply -f redis.yaml

Jalankan aplikasi

Setelah Redis disebarkan, sebarkan aplikasi ke AKS:

kubectl apply -f deployment.yaml

Mengekspos sidecar Dapr dan aplikasi sampel:

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}')

Verifikasi bahwa perintah di atas diekspor:

echo $APP_URL
echo $DAPR_URL

Memulai alur kerja

Sekarang setelah aplikasi dan Dapr disebarkan ke kluster AKS, Anda sekarang dapat memulai dan mengkueri instans alur kerja. Restock item di inventarisasi menggunakan panggilan API berikut ke aplikasi sampel:

curl -X GET $APP_URL/stock/restock

Mulai alur kerja:

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}}'

Output yang diharapkan:

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

Periksa status alur kerja:

curl -i -X GET $DAPR_URL/v1.0-beta1/workflows/dapr/1234

Output yang diharapkan:

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}"
}

Perhatikan bahwa status alur kerja ditandai sebagai selesai.

Langkah berikutnya

Pelajari cara menambahkan pengaturan konfigurasi ke ekstensi Dapr pada kluster AKS Anda.