Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce guide de démarrage rapide, vous utilisez l’extension Dapr dans un cluster Kubernetes avec AKS ou Arc. Vous déployez un hello world exemple, qui se compose d’une application Python qui génère des messages et d’une application Node.js qui consomme et conserve les messages.
Prérequis
- Un abonnement Azure. Si vous n’en avez pas, vous pouvez créer un compte gratuit.
- Azure CLI installé
- Un cluster AKS avec :
- Identité de charge de travail activée
- Identité managée créée dans le même abonnement
- Compte de service Kubernetes
- Informations d’identification d’identité fédérée
- Extension Dapr installée sur le cluster AKS
- kubectl installé localement
Cloner le référentiel
Clonez le référentiel de démarrage rapide Dapr à l’aide de la
git clonecommande.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.gitAccédez au répertoire
dapr-aks-extension-quickstart.cd dapr-aks-extension-quickstart
Créer et configurer un magasin Redis
Ouvrez le portail Azure pour démarrer le flux de création Azure Redis managé.
Saisissez les informations recommandées conformément au guide de démarrage rapide Créer une instance Azure Managed Redis.
Sélectionnez Créer pour démarrer le déploiement instance Redis.
Vérifier les informations de la ressource
Une fois la ressource Redis déployée, accédez à sa page de vue d’ensemble.
Prenez note des points suivants :
- Nom d’hôte, trouvé dans la section Essentials de la page vue d’ensemble de la ressource. Le format de nom d’hôte ressemble à :
<your-cache-name>.<region>.redis.azure.net. - Port SSL, trouvé dans paramètres>avancés. La valeur par défaut est
10000.
- Nom d’hôte, trouvé dans la section Essentials de la page vue d’ensemble de la ressource. Le format de nom d’hôte ressemble à :
Dans votre terminal, activez l’authentification par clé d’accès sur la base de données par défaut.
az redisenterprise database update \ --cluster-name <REDIS_NAME> \ --resource-group <RESOURCE_GROUP> \ --access-keys-auth EnabledRécupérez la clé primaire de la base de données par défaut et enregistrez-la dans une variable d’environnement.
export REDIS_PRIMARY_KEY=$(az redisenterprise database list-keys \ --cluster-name <REDIS_NAME> \ --resource-group <RESOURCE_GROUP> \ --query primaryKey \ -o tsv)
Activer l’accès public au réseau
Pour ce scénario, votre instance Redis gérée Azure utilise l’accès réseau public. Veillez à nettoyer les ressources une fois ce guide de démarrage rapide terminé.
Dans le menu de la ressource, sous Paramètres, sélectionnez Réseau.
Définissez l’accès réseau public sur Activé.
Configurer les composants Dapr
Dans le fichier redis.yaml , vous configurez le composant pour utiliser l’authentification par clé d’accès avec TLS.
- name: redisPassword
secretKeyRef:
name: redis-secret
key: redisPassword
- name: useEntraID
value: "false"
- name: enableTLS
value: true
Dans votre éditeur de code préféré, accédez au répertoire de déploiement dans l’exemple de dépôt et ouvrez redis.yaml.
Pour
redisHost, remplacez la valeur de l’espace réservé<REDIS_HOST>:10000par le nom d’hôte Azure Managed Redis que vous avez enregistré précédemment dans le portail Azure.- name: redisHost value: <your-cache-name>.<region>.redis.azure.net:10000Créez le secret Kubernetes utilisé par
redisPassword.kubectl create secret generic redis-secret \ --from-literal=redisPassword="$REDIS_PRIMARY_KEY"
Appliquer la configuration
Appliquez le fichier redis.yaml à l’aide de la kubectl apply commande.
kubectl apply -f ./deploy/redis.yaml
Sortie attendue
component.dapr.io/statestore created
Déployer l’application Node.js avec le side-car Dapr
Configurer l’application Node.js
Accédez au
deployrépertoire et ouvrez workload-identity.yaml.Remplacez
<MANAGED_IDENTITY_CLIENT_ID>par l’ID client de l’identité managée affectée par l’utilisateur que vous avez créée.Appliquez le manifeste du compte de service avant de déployer des manifestes d’application.
kubectl apply -f ./deploy/workload-identity.yaml
Dans node.yaml, la spécification du pod utilise le libellé Workload Identity et le workload-sa compte de service partagé :
labels:
app: node
azure.workload.identity/use: "true"
Appliquer la configuration
Appliquez le déploiement de l’application Node.js à votre cluster avec la commande
kubectl apply.kubectl apply -f ./deploy/node.yamlLes déploiements Kubernetes sont asynchrones. Avant de passer aux étapes suivantes, vérifiez que le déploiement est terminé avec la commande suivante :
kubectl rollout status deploy/nodeappDéployez le service à l’aide de la commande
kubectl get svc.kubectl get svc nodeappNotez la
EXTERNAL-IPsortie et définissez-la en tant que variable d’environnement.export EXTERNAL_IP=<EXTERNAL-IP>
Vérifier le service Node.js
À l’aide de
curl, appelez le service avec votreEXTERNAL-IP.curl $EXTERNAL_IP/portsExemple de sortie
{"DAPR_HTTP_ENDPOINT":"http://localhost:3500","DAPR_GRPC_ENDPOINT":"http://localhost:50001"}Ensuite, envoyez un ordre à l’application.
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworderConfirmez la commande.
curl $EXTERNAL_IP/orderSortie attendue
{ "orderId": "42" }
Déployer l’application Python avec le side-car Dapr
Configurer l’application Python
Dans python.yaml, la spécification du pod utilise le libellé Workload Identity et le compte de service partagé workload-sa :
labels:
app: python
azure.workload.identity/use: "true"
Appliquer la configuration
Déployez l’application Python sur votre cluster Kubernetes avec la commande
kubectl apply.kubectl apply -f ./deploy/python.yamlLes déploiements Kubernetes sont asynchrones. Avant de passer aux étapes suivantes, vérifiez que le déploiement est terminé avec la commande suivante :
kubectl rollout status deploy/pythonapp
Observer les messages et confirmer la persistance
Maintenant que les applications Node.js et Python sont déployées, vous pouvez observer les messages qui arrivent.
Obtenez les journaux de l’application Node.js à l’aide de la commande
kubectl logs.kubectl logs --selector=app=node -c node --tail=-1Sortie attendue
Got a new order! Order ID: 1 Successfully persisted state Got a new order! Order ID: 2 Successfully persisted state Got a new order! Order ID: 3 Successfully persisted stateAppelez le point de terminaison d’ordre de l’application Node.js à l'aide de
curlpour obtenir le dernier ordre.curl $EXTERNAL_IP/orderVous devez voir la sortie de code JSON la plus récente dans la réponse.
Nettoyer les ressources
Si vous ne prévoyez plus d’utiliser les ressources de ce guide de démarrage rapide, vous pouvez supprimer le groupe de ressources, le cluster, l’espace de noms et toutes les ressources associées à l’aide de la commande az group delete .
az group delete --name <your-resource-group>