Sdílet prostřednictvím


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ík nebo Správa.
  • 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:

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

Zjistěte, jak přidat nastavení konfigurace do rozšíření Dapr v clusteru AKS.