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:
- File
Program.cs
yang berisi penyiapan aplikasi, termasuk pendaftaran alur kerja dan aktivitas alur kerja. - Definisi alur kerja ditemukan di
Workflows
direktori. - Definisi aktivitas alur kerja ditemukan di
Activities
direktori.
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.
- Langganan Azure dengan peran Pemilik atau Admin.
- Versi terbaru Azure CLI
- Docker Terbaru
- Helm Terbaru
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
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.
Instal ekstensi Dapr pada kluster AKS Anda. Sebelum memulai, pastikan Anda memiliki:
- Menginstal atau memperbarui
k8s-extension
. - Mendaftarkan
Microsoft.KubernetesConfiguration
penyedia layanan
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
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
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
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.
Umpan balik Azure Kubernetes Service
Azure Kubernetes Service adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: