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, utilisez l’extension de cluster Dapr dans un cluster AKS ou Kubernetes activé pour 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’avez pas d’abonnement Azure, vous pouvez créer un compte gratuit.
- Azure CLI ou Azure PowerShell 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 de cluster Dapr installée sur le cluster AKS
- kubectl installé localement.
Cloner le référentiel
Clonez le Référentiel de démarrages rapides Dapr à l’aide de la commande
git clone.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.gitAccédez au répertoire
dapr-aks-extension-quickstart.
Créer et configurer un magasin Redis
Ouvrez le portail Azure pour démarrer le flux de création d’Azure Cache pour Redis.
- Renseignez les informations recommandées en fonction des instructions de démarrage rapide « Créer un cache Redis open source ».
- 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.
- Notez :
- Nom d’hôte, situé dans la section Essentials de la page vue d’ensemble du cache. Le format de nom d’hôte ressemble à :
xxxxxx.redis.cache.windows.net. - Port SSL, situé dans le panneau Paramètres avancés du cache. La valeur par défaut est
6380.
- Nom d’hôte, situé dans la section Essentials de la page vue d’ensemble du cache. Le format de nom d’hôte ressemble à :
- Accédez au panneau Authentification et vérifiez que l’authentification Microsoft Entra est activée sur votre ressource.
Ajouter une identité managée
Dans le panneau Authentification, tapez le nom de l’identité managée que vous avez créée en tant que prérequis dans le champ sous la case à cocher Activer l’authentification Microsoft Entra.
Vérifiez que votre identité managée est ajoutée en tant qu’autorisations de stratégie d’accès au propriétaire des données attribuées par l’utilisateur Redis.
Activer l’accès public au réseau
Pour ce scénario, votre cache Redis utilise l’accès réseau public. Veillez à nettoyer les ressources une fois ce guide de démarrage rapide terminé.
- Accédez au panneau de Point de terminaison privé.
- Cliquez sur Activer l’accès au réseau public dans le menu supérieur.
Configurer les composants Dapr
Dans redis.yaml, le composant est configuré de façon à utiliser l’authentification Entra ID à l’aide de l’identité de charge de travail activée pour le cluster AKS. Aucune clé d’accès n’est requise.
- name: useEntraID
value: "true"
- name: enableTLS
value: true
Dans votre éditeur de code préféré, accédez au répertoire
deploydans l’exemple et ouvrezredis.yaml.Pour
redisHost, remplacez la valeur de l’espace réservé<REDIS_HOST>:<REDIS_PORT>par le nom d’hôte du cache Redis et le port SSL que vous avez enregistrés précédemment à partir du portail Azure.- name: redisHost value: <your-cache-name>.redis.cache.windows.net:6380
Appliquer la configuration
Exécutez le fichier
redis.yamlà l’aide de la commandekubectl apply.kubectl apply -f ./deploy/redis.yamlVérifiez que votre magasin d’états a été correctement configuré à l’aide de la commande
kubectl get components.redis.kubectl get components.redis -o yamlSortie attendue
component.dapr.io/statestore created
Déployer l’application Node.js avec le side-car Dapr
Configurer l’application Node.js
Dans node.yaml, la spécification de pod a l’étiquette ajoutée pour utiliser l’identité de charge de travail :
labels:
app: node
azure.workload.identity/use: "true"
Accédez au répertoire
deployet ouvrez le fichiernode.yaml.Remplacez la valeur de l’espace réservé
<SERVICE_ACCOUNT_NAME>pourserviceAccountNamepar le nom du compte de service que vous avez créé.- Cette valeur doit être le même compte de service que celui que vous avez utilisé pour créer les informations d’identification d’identité fédérée.
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 le
EXTERNAL-IPdans la sortie.
Vérifier le service Node.js
À l’aide de
curl, appelez le service avec votreEXTERNAL-IP.curl $EXTERNAL_IP/portsExemple de sortie
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"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 de pod a l’étiquette ajoutée pour utiliser l’identité de charge de travail :
labels:
app: node
azure.workload.identity/use: "true"
Accédez au répertoire
deployet ouvrez le fichierpython.yaml.Remplacez la valeur de l’espace réservé
<SERVICE_ACCOUNT_NAME>pourserviceAccountNamepar le nom du compte de service que vous avez créé.- Cette valeur doit être le même compte de service que celui que vous avez utilisé pour créer les informations d’identification d’identité fédérée.
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 n’envisagez plus d’utiliser les ressources de ce guide de démarrage rapide, vous pouvez supprimer toutes les ressources associées en supprimant le groupe de ressources.
Utilisez la commande az group delete pour supprimer le groupe de ressources, le cluster, l’espace de noms ainsi que toutes les ressources associées.
az group delete --name MyResourceGroup