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.
Vous pouvez déployer un bot teams ou une application d’onglet sur azure Container Apps, Azure Kubernetes Service (AKS) ou un cluster Kubernetes local.
Configuration requise
Téléchargez l’exemple de bot Teams ou l’exemple d’application d’onglet Teams, qui offre une expérience prête à l’emploi pour le développement Azure Container Apps. Vous pouvez apporter quelques modifications à la configuration et les déployer sur AKS ou un cluster Kubernetes local.
Avant de commencer, vérifiez que vous disposez des outils suivants :
Accédez à votre compte Azure.
Interfaces de ligne de commande (CLI) Azure pour le déploiement Azure Container Apps ou AKS.
Remarque
- Les commandes de l’article sont basées sur Git Bash. Si vous utilisez une autre interface, mettez à jour les commandes en fonction des besoins.
- Lors du déploiement sur un service de conteneur, veillez à configurer les variables d’environnement requises comme décrit dans Configurer l’authentification dans un agent JavaScript.
Déployer sur Azure Container Apps
Azure Container Apps est un service entièrement managé qui vous permet d’exécuter des applications conteneurisées dans le cloud. Il s’agit d’un choix idéal si vous n’avez pas besoin d’un accès direct à toutes les API Kubernetes natives et à la gestion des clusters et si vous préférez une expérience entièrement managée fondée sur les meilleures pratiques.
À l’aide d’exemples d’applications, vous pouvez exécuter les commandes d’approvisionnement et de déploiement dans microsoft 365 Agents Toolkit (précédemment appelé Teams Toolkit). Agents Toolkit crée un Azure Container Registry et Azure Container Apps pour vous et construit votre application dans une image conteneur et la déploie sur Azure Container Apps.
La provision commande crée et configure les ressources suivantes :
- Une application Teams avec une fonctionnalité d’onglet ou de bot.
- Un Azure Container Registry pour héberger votre image conteneur.
- Un environnement Azure Container App et un azure Container Apps pour héberger votre application.
- Une application Microsoft Entra pour l’authentification.
Dans l’exemple de bot Teams, la provision commande crée également un Bot Service Azure pour canaliser le client Teams et Azure Container Apps.
La deploy commande exécute les actions suivantes :
- Génère l’application dans une image conteneur.
- Envoie (push) l’image conteneur à Azure Container Registry.
- Déploie l’image sur Azure Container Apps.
Déployer le bot Teams sur Azure Kubernetes Service
AKS est un service d’orchestration de conteneur managé fourni par Azure. Avec AKS, vous pouvez gérer entièrement l’expérience Kubernetes dans Azure.
Architecture
Le serveur principal Teams interagit avec votre bot par le biais d’Azure Bot Service. Ce service nécessite que votre bot soit accessible via un point de terminaison HTTPS public. Pour configurer, déployez un contrôleur d’entrée sur votre cluster Kubernetes et sécurisez-le avec un certificat TLS.
Vous pouvez utiliser Microsoft Entra ID pour authentifier votre bot auprès d’Azure Bot Service. Créez un secret Kubernetes qui inclut l’ID d’application et le mot de passe, puis intégrez le secret à la configuration d’exécution de votre conteneur.
Configurer l’entrée avec HTTPS sur AKS
Vérifiez que votre AKS est connecté à votre Azure Container Registry, qui héberge vos images conteneur. Pour plus d’informations, consultez Utiliser Azure CLI.
Exécutez la commande suivante pour installer le contrôleur d’entrée et le gestionnaire de certificats :
NAMESPACE=teams-bot helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update helm install ingress-nginx ingress-nginx/ingress-nginx --create-namespace --namespace $NAMESPACE \ --set controller.nodeSelector."kubernetes\.io/os"=linux \ --set defaultBackend.nodeSelector."kubernetes\.io/os"=linux \ --set controller.healthStatus=true \ --set controller.service.externalTrafficPolicy=Local \ --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz helm repo add jetstack https://charts.jetstack.io helm repo update helm install cert-manager jetstack/cert-manager --namespace $NAMESPACE --set installCRDs=true --set nodeSelector."kubernetes\.io/os"=linuxRemarque
Vous pouvez également suivre les instructions disponibles dans Créer un contrôleur d’entrée non managé et utiliser TLS avec Let’s encrypt certificates pour configurer les certificats d’entrée et TLS sur votre cluster Kubernetes.
Exécutez la commande suivante pour mettre à jour le DNS pour l’adresse IP publique d’entrée et obtenir le point de terminaison d’entrée :
> kubectl get services --namespace $NAMESPACE -w ingress-nginx-controller NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) ingress-nginx-controller LoadBalancer $CLUSTER_IP $EXTERNAL_IP 80:32514/TCP,443:32226/TCP > PUBLICIPID=$(az network public-ip list --query "[?ipAddress!=null]|[?contains(ipAddress, '$EXTERNAL_IP')].[id]" --output tsv) > az network public-ip update --ids $PUBLICIPID --dns-name $DNSLABEL > az network public-ip show --ids $PUBLICIPID --query "[dnsSettings.fqdn]" --output tsv $DNSLABEL.$REGION.cloudapp.azure.com
Provisionner des ressources avec agents Toolkit
Vous pouvez utiliser la provision commande dans Agents Toolkit pour créer une application Teams avec la fonctionnalité bot, incorporer l’Bot Service Azure et ajouter le Microsoft Entra ID pour l’authentification.
Pour provisionner des ressources avec agents Toolkit, procédez comme suit :
Ouvrez l’exemple d’application que vous avez téléchargé précédemment.
Accédez au
env/.env.${envName}fichier et mettez à jour laBOT_DOMAINvaleur avec votre nom de domaine complet.Accédez au
m365agents.ymlfichier et mettez à jour l’action suivantearm/deploypour vous assurer que Agents Toolkit provisionne un Bot Service Azure pendant l’exécution de laprovisioncommande :- uses: arm/deploy with: subscriptionId: ${{AZURE_SUBSCRIPTION_ID}} resourceGroupName: ${{AZURE_RESOURCE_GROUP_NAME}} templates: - path: ./infra/botRegistration/azurebot.bicep parameters: ./infra/botRegistration/azurebot.parameters.json deploymentName: Create-resources-for-bot bicepCliVersion: v0.9.1Exécutez la
provisioncommande dans agents Toolkit.Après l’approvisionnement, recherchez le dans
env/.env.${envName}leBOT_IDfichier et le chiffréSECRET_BOT_PASSWORDdans leenv/.env.${envName}.userfichier. Pour obtenir la valeur réelle deBOT_PASSWORD. Sélectionnez l’annotation Déchiffrer le secret.Pour créer un secret Kubernetes qui contient
BOT_IDetBOT_PASSWORD, enregistrez la paire clé-valeur dans le./deploy/.env.dev-secretsfichier et exécutez la commande suivante pour provisionner le secret :kubectl create secret generic dev-secrets --from-env-file ./deploy/.env.dev-secrets -n $NAMESPACE
Appliquer le déploiement
L’exemple inclut un fichier de déploiement, deploy/sso-bot.yaml, à titre de référence.
Mettez à jour les espaces réservés suivants :
<image>: Mettez à jour votre image. Par exemple :myacr.azurecr.io/sso-bot:latest.<hostname>: Mettez à jour votre nom de domaine complet d’entrée.
Pour appliquer
deploy/tab.yaml, exécutez la commande suivante :kubectl apply -f deploy/sso-bot.yaml -n $NAMESPACEAllez à Visual Studio Code.
Dans le panneau Exécuter et déboguer , sélectionnez Lancer la configuration à distance .
Pour afficher un aperçu de l’application de bot Teams déployée sur AKS, sélectionnez Démarrer le débogage (F5).
Déployer un bot Teams sur un cluster Kubernetes local
Vous pouvez déployer un bot Teams sur votre cluster Kubernetes personnel ou un service Kubernetes à partir de différents services cloud en suivant les étapes similaires utilisées pour déployer le bot Teams sur AKS.
Architecture
Le serveur principal Teams interagit avec votre bot par le biais d’Azure Bot Service. Ce service nécessite que votre bot soit accessible via un point de terminaison HTTPS public. Pour configurer, déployez un contrôleur d’entrée sur votre cluster Kubernetes et sécurisez-le avec un certificat TLS.
Vous pouvez utiliser Microsoft Entra ID pour authentifier votre bot auprès d’Azure Bot Service. Créez un secret Kubernetes qui inclut l’ID d’application et le mot de passe, puis intégrez le secret à la configuration d’exécution de votre conteneur.
Provisionner des ressources avec agents Toolkit
Vous pouvez utiliser la provision commande dans Agents Toolkit pour créer une application Teams avec la fonctionnalité bot, incorporer l’Bot Service Azure et ajouter le Microsoft Entra ID pour l’authentification.
Pour provisionner des ressources avec agents Toolkit, procédez comme suit :
Ouvrez l’exemple d’application que vous avez téléchargé précédemment.
Accédez au
env/.env.${envName}fichier et mettez à jour laBOT_DOMAINvaleur avec votre nom de domaine complet.Accédez au
m365agents.ymlfichier et mettez à jour l’action suivantearm/deploypour vous assurer que Agents Toolkit provisionne un Bot Service Azure pendant l’exécution de laprovisioncommande :- uses: arm/deploy with: subscriptionId: ${{AZURE_SUBSCRIPTION_ID}} resourceGroupName: ${{AZURE_RESOURCE_GROUP_NAME}} templates: - path: ./infra/botRegistration/azurebot.bicep parameters: ./infra/botRegistration/azurebot.parameters.json deploymentName: Create-resources-for-bot bicepCliVersion: v0.9.1Dans le
m365agents.ymlfichier, mettez à jour l’actionbotFramework/creatependant la phase de provisionnement. Cette action permet à Agents Toolkit de créer une inscription de bot avec le point de terminaison de messagerie approprié.Remarque
Nous vous recommandons d’utiliser Azure Bot Service pour le canal. Si vous n’avez pas de compte Azure et que vous ne pouvez pas créer d’Bot Service Azure, vous pouvez créer une inscription de bot.
- uses: botFramework/create with: botId: ${{BOT_ID}} name: <Bot display name> messagingEndpoint: https://${{BOT_DOMAIN}}/api/messages description: "" channels: - name: msteamsVous pouvez supprimer l’action dans
m365agents.ymllearm/deployfichier, car nous n’avons pas besoin de ressources Azure.Exécutez la
provisioncommande dans agents Toolkit.Après l’approvisionnement, recherchez le
BOT_IDdans leenv/.env.${envName}fichier et le chiffréSECRET_BOT_PASSWORDdans leenv/.env.${envName}.userfichier. Pour obtenir la valeur réelle deBOT_PASSWORD. Sélectionnez l’annotation Déchiffrer le secret.Pour créer un secret Kubernetes qui contient
BOT_IDetBOT_PASSWORD, enregistrez la paire clé-valeur dans le./deploy/.env.dev-secretsfichier et exécutez la commande suivante pour provisionner le secret :kubectl create secret generic dev-secrets --from-env-file ./deploy/.env.dev-secrets -n $NAMESPACE
Appliquer le déploiement
L’exemple inclut un fichier de déploiement, deploy/sso-bot.yaml, pour votre aide.
Mettez à jour les espaces réservés suivants :
<image>: Mettez à jour votre image. Par exemple :myacr.azurecr.io/sso-bot:latest.<hostname>: Mettez à jour votre nom de domaine complet d’entrée.
Pour appliquer
deploy/tab.yaml, exécutez la commande suivante :kubectl apply -f deploy/sso-bot.yaml -n $NAMESPACEAllez à Visual Studio Code.
Dans le panneau Exécuter et déboguer , sélectionnez Lancer la configuration à distance .
Pour afficher un aperçu de l’application de bot Teams déployée sur AKS, sélectionnez Démarrer le débogage (F5).
Déployer l’application d’onglet Teams sur Kubernetes
AKS sert de service d’orchestration de conteneur managé proposé par Azure. Avec AKS, vous pouvez gérer entièrement l’expérience Kubernetes dans Azure.
Déployer une application d’onglet Teams sur AKS est similaire au déploiement d’une application web sur AKS. Toutefois, étant donné qu’une application d’onglet Teams nécessite une connexion HTTPS, vous devez posséder un domaine et configurer l’entrée TLS dans votre AKS.
Vous pouvez également déployer une application d’onglet Teams sur votre cluster Kubernetes personnel ou un service Kubernetes sur différentes plateformes cloud. Cela implique des étapes similaires à celles utilisées lors du déploiement sur Azure Kubernetes Service.
Configurer l’entrée avec HTTPS sur AKS
Vérifiez que votre AKS est déjà connecté à votre Azure Container Registry, qui héberge vos images conteneur. Pour plus d’informations, consultez Azure CLI.
Exécutez la commande suivante pour installer le contrôleur d’entrée et le gestionnaire de certificats :
NAMESPACE=teams-tab helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update helm install ingress-nginx ingress-nginx/ingress-nginx --create-namespace --namespace $NAMESPACE \ --set controller.nodeSelector."kubernetes\.io/os"=linux \ --set defaultBackend.nodeSelector."kubernetes\.io/os"=linux \ --set controller.healthStatus=true \ --set controller.service.externalTrafficPolicy=Local \ --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz helm repo add jetstack https://charts.jetstack.io helm repo update helm install cert-manager jetstack/cert-manager --namespace $NAMESPACE --set installCRDs=true --set nodeSelector."kubernetes\.io/os"=linuxRemarque
Vous pouvez également suivre les instructions disponibles dans Créer un contrôleur d’entrée non managé et utiliser TLS avec Let’s encrypt certificates pour configurer les certificats d’entrée et TLS sur votre cluster Kubernetes.
Exécutez la commande suivante pour mettre à jour le DNS pour l’adresse IP publique d’entrée et obtenir le point de terminaison d’entrée :
> kubectl get services --namespace $NAMESPACE -w ingress-nginx-controller NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) ingress-nginx-controller LoadBalancer $CLUSTER_IP $EXTERNAL_IP 80:32514/TCP,443:32226/TCP > PUBLICIPID=$(az network public-ip list --query "[?ipAddress!=null]|[?contains(ipAddress, '$EXTERNAL_IP')].[id]" --output tsv) > az network public-ip update --ids $PUBLICIPID --dns-name $DNSLABEL > az network public-ip show --ids $PUBLICIPID --query "[dnsSettings.fqdn]" --output tsv $DNSLABEL.$REGION.cloudapp.azure.com
Provisionner des ressources avec agents Toolkit
Vous pouvez utiliser la provision commande dans Agents Toolkit pour créer une application Teams avec la fonctionnalité d’onglet, incorporer la Bot Service Azure et ajouter le Microsoft Entra ID pour l’authentification.
Pour provisionner des ressources avec agents Toolkit, procédez comme suit :
Ouvrez l’exemple d’application que vous avez téléchargé précédemment.
Accédez au
env/.env.${envName}fichier et mettez à jour laTAB_DOMAINvaleur avec votre nom de domaine complet.Accédez au
m365agents.ymlfichier et supprimez l’actionarm/deploy, car aucune ressource Azure supplémentaire n’est requise.Exécutez la
provisioncommande dans agents Toolkit.Utilisez agents Toolkit pour créer une Microsoft Entra ID, que vous souhaiterez peut-être définir comme variables d’environnement de vos applications.
Après l’approvisionnement, recherchez le
AAD_APP_CLIENT_IDdans leenv/.env.${envName}fichier et le chiffréSECRET_AAD_APP_CLIENT_SECRETdans leenv/.env.${envName}.userfichier.Pour obtenir la valeur réelle de
SECRET_AAD_APP_CLIENT_SECRET. Sélectionnez l’annotation Déchiffrer le secret.
Appliquer le déploiement
L’exemple inclut un fichier de déploiement, deploy/tab.yaml, à titre de référence.
Mettez à jour les espaces réservés suivants :
<tab-image>: Mettez à jour votre image. Par exemple :myacr.azurecr.io/tab:latest.<api-image>: Mettez à jour votre image d’API. Si vous n’avez pas d’API, supprimez lehello-world-apiservice et déployez-le à partir du fichier yaml.<hostname>: Mettez à jour votre nom de domaine complet d’entrée.
Pour appliquer
deploy/tab.yaml, exécutez la commande suivante :kubectl apply -f deploy/tab.yaml -n $NAMESPACEAllez à Visual Studio Code.
Dans le panneau Exécuter et déboguer , sélectionnez Lancer la configuration à distance .
Pour afficher un aperçu de l’application de bot Teams déployée sur AKS, sélectionnez Démarrer le débogage (F5).