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:

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 Rendszergazda 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:

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

Megtudhatja, hogyan adhat hozzá konfigurációs beállításokat az AKS-fürt Dapr-bővítményéhez.