Implementación y ejecución de flujos de trabajo con la extensión Dapr para Azure Kubernetes Service (AKS)
Con el flujo de trabajo de Dapr, puede organizar fácilmente la mensajería, la administración de estados y la lógica de control de errores en varios microservicios. El flujo de trabajo de Dapr puede ayudarle a crear aplicaciones de ejecución prolongada, tolerantes a errores y con estado.
En esta guía, usará el ejemplo de flujo de trabajo de procesamiento de pedidos proporcionado para:
- Cree un Azure Container Registry y un clúster de AKS para este ejemplo.
- Instale la extensión Dapr en el clúster de AKS.
- Implemente la misma aplicación de ejemplo en AKS.
- Inicie y consulte instancias de flujo de trabajo mediante llamadas API HTTP.
El ejemplo de flujo de trabajo es un proyecto de ASP.NET Core con:
- Un
Program.cs
archivo que contiene la configuración de la aplicación, incluido el registro del flujo de trabajo y las actividades de flujo de trabajo. - Definiciones de flujo de trabajo encontradas en el
Workflows
directorio. - Actividades de flujo de trabajo encontradas en el
Activities
directorio.
Nota
El flujo de trabajo de Dapr es actualmente una característica beta y está en modo de autoservicio. Las API y los componentes de Dapr beta se proporcionan "tal cual" y "como están disponibles", y evolucionan continuamente a medida que avanzan hacia un estado estable. Las API y los componentes beta no están cubiertos por el soporte técnico al cliente.
- Una suscripción de Azure con el rol Propietario o Administrador.
- La última versión de la CLI de Azure
- Docker más reciente
- Helm más reciente
Clone la aplicación de flujo de trabajo de ejemplo.
git clone https://github.com/Azure/dapr-workflows-aks-sample.git
Vaya a la raíz del directorio de ejemplo.
cd dapr-workflows-aks-sample
Cree un grupo de recursos para contener el clúster de AKS.
az group create --name myResourceGroup --location eastus
Cree un clúster de AKS.
az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 2 --generate-ssh-keys
Asegúrese de que kubectl
está instalado y apuntado al clúster de AKS. Si usa Azure Cloud Shell, kubectl
ya está instalado.
Para más información, consulte el tutorial Implementación de un clúster de AKS.
Instale la extensión Dapr en el clúster de AKS. Antes de empezar, asegúrese de que dispone de lo siguiente:
- Instaló o actualizó
k8s-extension
- Registró
Microsoft.KubernetesConfiguration
el proveedor de servicios
az k8s-extension create --cluster-type managedClusters --cluster-name myAKSCluster --resource-group myResourceGroup --name dapr --extension-type Microsoft.Dapr
Compruebe que Dapr está instalado:
kubectl get pods -A
Vaya al directorio Deploy
en la versión bifurcada del ejemplo:
cd Deploy
Implemente el componente Redis:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install redis bitnami/redis
kubectl apply -f redis.yaml
Una vez implementado Redis, implementa la aplicación en AKS:
kubectl apply -f deployment.yaml
Exponga el sidecar de Dapr y la aplicación de ejemplo:
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}')
Compruebe que se exportaron los comandos anteriores:
echo $APP_URL
echo $DAPR_URL
Ahora que la aplicación y Dapr se implementan en el clúster de AKS, puede iniciar y consultar instancias de flujo de trabajo. Vuelva a cargar los elementos del inventario mediante la siguiente llamada API a la aplicación de ejemplo:
curl -X GET $APP_URL/stock/restock
Inicio del flujo de trabajo:
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}}'
Resultado esperado:
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
Compruebe el estado del flujo de trabajo:
curl -i -X GET $DAPR_URL/v1.0-beta1/workflows/dapr/1234
Resultado esperado:
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}"
}
Observe que el estado del flujo de trabajo está marcado como completado.
Comentarios de Azure Kubernetes Service
Azure Kubernetes Service es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: