Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.csSoubor, 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
Activitiesadresáři
Požadavky
- Předplatné Azure s rolí vlastníka nebo správce
- Administrátorská role pro Řízení přístupu na základě rolí služby Azure Kubernetes
- Nejnovější verze Azure CLI
- Nejnovější verze Dapr
- 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-Samples/dapr-workflows-aks-sample.git
Přejděte do kořenového adresáře vzorku.
cd dapr-workflows-aks-sample
Vytvoření clusteru Kubernetes
Vytvořte skupinu prostředků pro držení clusteru AKS.
az group create --name <your-resource-group> --location eastus
Vytvořte cluster AKS.
az aks create --resource-group <your-resource-group> --name <your-AKS-cluster> --node-count 2 --generate-ssh-keys
Ujistěte se, že kubectl je nainstalovaný a připojený k vašemu clusteru 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:
-
Instalace nebo aktualizace
k8s-extension -
Microsoft.KubernetesConfigurationRegistrace poskytovatele služeb
az k8s-extension create --cluster-type managedClusters --cluster-name myAKSCluster --resource-group <your-resource-group> --name dapr --extension-type Microsoft.Dapr
Po několika minutách se ve výstupu zobrazí připojení Dapr ke clusteru AKS. V dalším kroku inicializujete Dapr v clusteru.
dapr init -k
Ověřte, že je nainstalovaný Dapr:
kubectl get pods -A
Nasazení komponenty úložiště stavu objektu actor Redis
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
Spusťte pracovní postup
Teď, když jsou aplikace a Dapr nasazené do clusteru AKS, teď můžete spouštět a dotazovat instance pracovních postupů. Doplnit položky do inventáře pomocí následujícího volání API pro ukázkovou aplikaci:
curl -X GET $APP_URL/stock/restock
Spusťte pracovní postup:
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}'
Očekávaný výstup obsahuje automaticky generované ID instance:
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>"}
Zkontrolujte stav pracovního postupu:
curl -i -X GET $DAPR_URL/v1.0/workflows/dapr/OrderProcessingWorkflow/<instance-id> \
-H "dapr-app-id: dwf-app"
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
Monitorování protokolů aplikace:
kubectl logs -l run=workflows-sample -c workflows-sample --tail=20
Očekávaný výstup:
{
"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ý.