Munkafolyamatok üzembe helyezése és futtatása az Azure Kubernetes Service (AKS) Dapr bővítményével
A Dapr Workflow segítségével egyszerűen vezényelheti az üzenetkezelést, az állapotkezelést és a hibakezelési logikát a különböző mikroszolgáltatásokban. A Dapr Workflow segítségével hosszú ideig futó, hibatűrő és állapotalapú alkalmazásokat hozhat létre.
Ebben az útmutatóban a megadott rendelésfeldolgozási munkafolyamat-példát használja a következőre:
- Hozzon létre egy Azure Container Registryt és egy AKS-fürtöt ehhez a mintához.
- Telepítse a Dapr-bővítményt az AKS-fürtre.
- Telepítse a mintaalkalmazást az AKS-ben.
- Munkafolyamat-példányok indítása és lekérdezése HTTP API-hívások használatával.
A munkafolyamat-példa egy ASP.NET Core-projekt a következőkkel:
- Az
Program.cs
alkalmazás beállítását tartalmazó fájl , beleértve a munkafolyamat és a munkafolyamat-tevékenységek regisztrációját. - A címtárban található munkafolyamat-definíciók.
Workflows
- A címtárban található munkafolyamat-tevékenységdefiníciók.
Activities
Feljegyzés
A Dapr Workflow jelenleg bétaverziós funkció, és önkiszolgáló, opt-in alapon működik. A Béta Dapr API-k és -összetevők "ahogy vannak" és "rendelkezésre állnak", és folyamatosan fejlődnek, miközben a stabil állapot felé haladnak. A béta API-kra és az összetevőkre az ügyfélszolgálat nem vonatkozik.
Előfeltételek
- Azure-előfizetés tulajdonosi vagy rendszergazdai szerepkörrel.
- Az Azure CLI legújabb verziója
- Legújabb Docker
- Legújabb Helm
A környezet beállítása
A mintaprojekt klónozása
Klónozza a példa munkafolyamat-alkalmazást.
git clone https://github.com/Azure/dapr-workflows-aks-sample.git
Lépjen a minta gyökérkönyvtárára.
cd dapr-workflows-aks-sample
Kubernetes-fürt létrehozása
Hozzon létre egy erőforráscsoportot az AKS-fürt tárolásához.
az group create --name myResourceGroup --location eastus
AKS-fürt létrehozása.
az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 2 --generate-ssh-keys
Győződjön meg arról, hogy kubectl
telepítve van, és az AKS-fürtre mutat. Ha az Azure Cloud Shellt használja, a kubectl
már telepítve van.
További információ: Az AKS-fürt üzembe helyezése oktatóanyag.
Az alkalmazás üzembe helyezése az AKS-ben
A Dapr telepítése az AKS-fürtre
Telepítse a Dapr-bővítményt az AKS-fürtre. Mielőtt hozzákezd, győződjön meg arról, hogy:
- Telepítette vagy frissítette a
k8s-extension
. - Regisztrálta a szolgáltatót
Microsoft.KubernetesConfiguration
az k8s-extension create --cluster-type managedClusters --cluster-name myAKSCluster --resource-group myResourceGroup --name dapr --extension-type Microsoft.Dapr
Ellenőrizze, hogy a Dapr telepítve van-e:
kubectl get pods -A
A Redis Actor állapottároló összetevő üzembe helyezése
Keresse meg a könyvtárat a Deploy
minta elágazott verziójában:
cd Deploy
A Redis-összetevő üzembe helyezése:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install redis bitnami/redis
kubectl apply -f redis.yaml
Az alkalmazás futtatása
A Redis üzembe helyezése után telepítse az alkalmazást az AKS-ben:
kubectl apply -f deployment.yaml
A Dapr oldalkocsi és a mintaalkalmazás közzététele:
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}')
Ellenőrizze, hogy a fenti parancsok exportálva lettek-e:
echo $APP_URL
echo $DAPR_URL
A munkafolyamat indítása
Most, hogy az alkalmazás és a Dapr üzembe lett helyezve az AKS-fürtben, elindíthatja és lekérdezheti a munkafolyamat-példányokat. A leltár elemeinek újralétrehozása a mintaalkalmazáshoz a következő API-hívással:
curl -X GET $APP_URL/stock/restock
Indítsa el a munkafolyamatot:
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}}'
Várt kimenet:
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
Ellenőrizze a munkafolyamat állapotát:
curl -i -X GET $DAPR_URL/v1.0-beta1/workflows/dapr/1234
Várt kimenet:
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}"
}
Figyelje meg, hogy a munkafolyamat állapota befejezettként van megjelölve.
Következő lépések
Azure Kubernetes Service