Nasazení a spouštění pracovních postupů s rozšířením Dapr pro Azure Kubernetes Service (AKS)
Pomocí pracovního postupu Dapr můžete snadno orchestrovat logiku zasílání zpráv, správy stavů a zpracování selhání napříč různými mikroslužbami. Pracovní postup Dapr vám pomůže vytvářet dlouhotrvající, odolné proti chybám a stavové aplikace.
V této příručce použijete zadaný příklad pracovního postupu zpracování objednávek k:
- Pro tuto ukázku vytvořte službu Azure Container Registry a cluster AKS.
- Nainstalujte rozšíření Dapr do clusteru AKS.
- Nasaďte ukázkovou aplikaci do AKS.
- Spouštění a dotazování instancí pracovního postupu pomocí volání rozhraní HTTP API
Příklad pracovního postupu je projekt ASP.NET Core s:
Program.cs
Soubor, který obsahuje nastavení aplikace, včetně registrace pracovního postupu a aktivit pracovního postupu.- Definice pracovních postupů nalezené v adresáři
Workflows
- Definice aktivit pracovního postupu nalezené v
Activities
adresáři
Poznámka:
Pracovní postup Dapr je aktuálně beta funkce a je na samoobslužné bázi. Beta rozhraní API a komponenty Dapr jsou poskytovány "tak, jak jsou" a "dostupné", a neustále se vyvíjejí, jak se pohybují směrem ke stabilnímu stavu. Na rozhraní API a komponenty beta verze se nevztahuje zákaznická podpora.
Požadavky
- Předplatné Azure s rolí vlastníka nebo správce.
- Nejnovější verze Azure CLI
- Nejnovější Docker
- Nejnovější Helm
Nastavení prostředí
Klonování ukázkového projektu
Naklonujte ukázkovou aplikaci pracovního postupu.
git clone https://github.com/Azure/dapr-workflows-aks-sample.git
Přejděte do kořenového adresáře ukázky.
cd dapr-workflows-aks-sample
Vytvoření clusteru Kubernetes
Vytvořte skupinu prostředků pro uložení clusteru AKS.
az group create --name myResourceGroup --location eastus
Vytvořte cluster AKS.
az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 2 --generate-ssh-keys
Ujistěte se, že kubectl
je nainstalovaný a odkazovaný na váš cluster AKS. Pokud používáte Azure Cloud Shell, kubectl
je už nainstalovaný.
Další informace najdete v kurzu Nasazení clusteru AKS.
Nasazení aplikace do AKS
Instalace Dapr v clusteru AKS
Nainstalujte rozšíření Dapr do clusteru AKS. Než začnete, ujistěte se, že máte:
- Nainstalováno nebo aktualizováno .
k8s-extension
Microsoft.KubernetesConfiguration
Registrace poskytovatele služeb
az k8s-extension create --cluster-type managedClusters --cluster-name myAKSCluster --resource-group myResourceGroup --name dapr --extension-type Microsoft.Dapr
Ověřte, že je nainstalovaný Dapr:
kubectl get pods -A
Nasazení komponenty úložiště stavu objektu Redis Actor
Přejděte do Deploy
adresáře ve vaší forkované verzi ukázky:
cd Deploy
Nasazení komponenty Redis:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install redis bitnami/redis
kubectl apply -f redis.yaml
Spuštění aplikace
Po nasazení Redis nasaďte aplikaci do AKS:
kubectl apply -f deployment.yaml
Zveřejnění sajdkáru Dapr a ukázkové aplikace:
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}')
Ověřte, že byly exportovány výše uvedené příkazy:
echo $APP_URL
echo $DAPR_URL
Spuštění pracovního postupu
Teď, když jsou aplikace a Dapr nasazené do clusteru AKS, teď můžete spouštět a dotazovat instance pracovních postupů. Skladové položky v inventáři pomocí následujícího volání rozhraní API do ukázkové aplikace:
curl -X GET $APP_URL/stock/restock
Spusťte pracovní postup:
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}}'
Očekávaný výstup:
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
Zkontrolujte stav pracovního postupu:
curl -i -X GET $DAPR_URL/v1.0-beta1/workflows/dapr/1234
Očekávaný výstup:
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}"
}
Všimněte si, že stav pracovního postupu je označený jako dokončený.
Další kroky
Azure Kubernetes Service