Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
-
File
Program.csyang berisi penyiapan aplikasi, termasuk pendaftaran alur kerja dan aktivitas alur kerja. - Definisi alur kerja ditemukan di
Workflowsdirektori. - Definisi aktivitas alur kerja ditemukan di
Activitiesdirektori.
Prerequisites
- Langganan Azure dengan peran Pemilik atau Admin
- Peran Admin Kontrol Akses Berbasis Peran Azure Kubernetes Service
- Versi terbaru Azure CLI
- Dapr versi terbaru
- Docker Terbaru
- Helm Terbaru
Menyiapkan lingkungan kerja
Melakukan kloning proyek contoh
Kloning contoh aplikasi alur kerja.
git clone https://github.com/Azure-Samples/dapr-workflows-aks-sample.git
Navigasikan ke direktori akar sampel.
cd dapr-workflows-aks-sample
Buatlah kluster Kubernetes
Buat kelompok sumber daya untuk menampung kluster AKS.
az group create --name <your-resource-group> --location eastus
Buat kluster AKS.
az aks create --resource-group <your-resource-group> --name <your-AKS-cluster> --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:
-
Menginstal atau memperbarui
k8s-extension -
Mendaftarkan
Microsoft.KubernetesConfigurationpenyedia layanan
az k8s-extension create --cluster-type managedClusters --cluster-name myAKSCluster --resource-group <your-resource-group> --name dapr --extension-type Microsoft.Dapr
Setelah beberapa menit, output menunjukkan koneksi Dapr ke kluster AKS Anda. Selanjutnya, inisialisasi Dapr pada kluster Anda.
dapr init -k
Verifikasi bahwa Dapr diinstal:
kubectl get pods -A
Menyebarkan komponen penyimpanan status aktor Redis
Masuklah ke direktori Deploy pada versi fork dari sampel yang Anda gunakan.
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
Memaparkan 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 dalam inventaris menggunakan pemanggilan API berikut ke aplikasi contoh.
curl -X GET $APP_URL/stock/restock
Mulai alur kerja:
curl -i -X POST $DAPR_URL/v1.0/workflows/dapr/OrderProcessingWorkflow/start \
-H "Content-Type: application/json" \
-H "dapr-app-id: dwf-app" \
-d '{"Name": "Paperclips", "TotalCost": 99.95, "Quantity": 1}'
Output yang diharapkan mencakup ID instans yang dihasilkan secara otomatis:
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
{"instanceID":"<generated-id>"}
Periksa status alur kerja:
curl -i -X GET $DAPR_URL/v1.0/workflows/dapr/OrderProcessingWorkflow/<instance-id> \
-H "dapr-app-id: dwf-app"
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
Pantau log aplikasi:
kubectl logs -l run=workflows-sample -c workflows-sample --tail=20
Output yang diharapkan:
{
"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.