Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dzięki przepływowi pracy języka Dapr można łatwo organizować obsługę komunikatów, zarządzanie stanami i logikę obsługi błędów w różnych mikrousługach. Dapr Workflow może pomóc w tworzeniu długotrwałych, odpornych na uszkodzenia i zachowujących stan aplikacji.
W tym przewodniku użyto podanego przykładu przepływu pracy przetwarzania zamówień w celu:
- Utwórz usługę Azure Container Registry i klaster usługi AKS dla tego przykładu.
- Zainstaluj rozszerzenie Dapr w klastrze usługi AKS.
- Wdróż przykładową aplikację do AKS.
- Uruchamianie wystąpień przepływu pracy i wykonywanie zapytań przy użyciu wywołań interfejsu API PROTOKOŁU HTTP.
Przykładowy przepływ pracy to projekt ASP.NET Core z:
-
Program.csPlik zawierający ustawienia aplikacji, w tym rejestrację przepływu pracy i działań przepływu pracy. - Definicje przepływu pracy znalezione w
Workflowskatalogu. - Definicje działań przepływu pracy znalezione w
Activitieskatalogu.
Prerequisites
- Subskrypcja platformy Azure z rolą właściciela lub administratora.
- Rola administratora kontroli dostępu opartej na rolach usługi Azure Kubernetes Service
- Najnowsza wersja interfejsu wiersza polecenia platformy Azure
- Najnowsza wersja Dapr
- Najnowsza wersja platformy Docker
- Najnowszy Helm
Konfigurowanie środowiska
Klonowanie przykładowego projektu
Sklonuj przykładową aplikację przepływu pracy.
git clone https://github.com/Azure-Samples/dapr-workflows-aks-sample.git
Przejdź do katalogu głównego przykładu.
cd dapr-workflows-aks-sample
Tworzenie klastra Kubernetes
Utwórz grupę zasobów, aby pomieścić klaster AKS.
az group create --name myResourceGroup --location eastus
Utwórz klaster Azure Kubernetes Service (AKS).
az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 2 --generate-ssh-keys
Upewnij się, że kubectl jest zainstalowany i skonfigurowany do współpracy z twoim klastrem AKS. Jeśli korzystasz z usługi Azure Cloud Shell, narzędzie kubectl jest już zainstalowane.
Aby uzyskać więcej informacji, zobacz samouczek Wdrażanie klastra usługi AKS .
Wdrażaj aplikację do AKS
Instalowanie narzędzia Dapr w klastrze usługi AKS
Zainstaluj rozszerzenie Dapr w klastrze usługi AKS. Przed rozpoczęciem upewnij się, że masz następujące elementy:
-
Zainstalowano lub zaktualizowano element
k8s-extension. -
Zarejestrowano dostawcę
Microsoft.KubernetesConfigurationusług
az k8s-extension create --cluster-type managedClusters --cluster-name myAKSCluster --resource-group myResourceGroup --name dapr --extension-type Microsoft.Dapr
Po upływie kilku minut zobaczysz dane wyjściowe przedstawiające połączenie Dapr z twoim klastrem AKS. Następnie zainicjuj Dapr w klastrze.
dapr init -k
Sprawdź, czy język Dapr jest zainstalowany:
kubectl get pods -A
Zaimplementuj komponent magazynu stanów dla aktora Redis
Przejdź do katalogu Deploy w sforkowanej wersji przykładu.
cd Deploy
Wdróż składnik Redis:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install redis bitnami/redis
kubectl apply -f redis.yaml
Uruchamianie aplikacji
Po wdrożeniu Redis, wdróż aplikację na AKS.
kubectl apply -f deployment.yaml
Uwidocznij przyczepkę Dapr i przykładową aplikację:
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}')
Sprawdź, czy powyższe polecenia zostały wyeksportowane:
echo $APP_URL
echo $DAPR_URL
Uruchamianie przepływu pracy
Teraz, po wdrożeniu aplikacji i frameworka Dapr w klastrze AKS, możesz uruchamiać wystąpienia przepływu pracy i wykonywać zapytania. Uzupełnij zapasy elementów w spisie przy użyciu następującego wywołania interfejsu API do przykładowej aplikacji:
curl -X GET $APP_URL/stock/restock
Uruchom przepływ pracy:
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}'
Oczekiwane dane wyjściowe zawierają identyfikator wystąpienia generowanego automatycznie:
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>"}
Sprawdź stan przepływu pracy:
curl -i -X GET $DAPR_URL/v1.0/workflows/dapr/OrderProcessingWorkflow/<instance-id> \
-H "dapr-app-id: dwf-app"
Oczekiwane dane wyjściowe:
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
Monitorowanie dzienników aplikacji:
kubectl logs -l run=workflows-sample -c workflows-sample --tail=20
Oczekiwane dane wyjściowe:
{
"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}"
}
Zwróć uwagę, że stan przepływu pracy jest oznaczony jako ukończony.