Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können einen Teams-Bot oder eine Registerkarten-App in einem Azure Container Apps, Azure Kubernetes Service (AKS) oder einem lokalen Kubernetes-Cluster bereitstellen.
Voraussetzungen
Laden Sie den Teams-Beispielbot oder die Teams-Registerkarten-Beispiel-App herunter, die eine sofort einsatzbereite Erfahrung für die Entwicklung von Azure Container Apps bietet. Sie können einige Konfigurationsänderungen vornehmen und in AKS oder einem lokalen Kubernetes-Cluster bereitstellen.
Bevor Sie beginnen, stellen Sie sicher, dass Sie über die folgenden Tools verfügen:
Azure-Konto.
Azure-Befehlszeilenschnittstellen (CLI) für Azure Container Apps oder AKS-Bereitstellung.
Hinweis
- Die Befehle im Artikel basieren auf Git Bash. Wenn Sie eine andere Schnittstelle verwenden, aktualisieren Sie die Befehle nach Bedarf.
- Stellen Sie bei der Bereitstellung in einem Containerdienst sicher, dass Sie die erforderlichen Umgebungsvariablen konfigurieren, wie unter Konfigurieren der Authentifizierung in einem JavaScript-Agent beschrieben.
Bereitstellen an Azure-Container-Apps
Azure Container Apps ist ein vollständig verwalteter Dienst, mit dem Sie containerisierte Anwendungen in der Cloud ausführen können. Dies ist eine ideale Wahl, wenn Sie keinen direkten Zugriff auf alle nativen Kubernetes-APIs und Clusterverwaltung benötigen und eine vollständig verwaltete Erfahrung bevorzugen, die auf bewährten Methoden basiert.
Mithilfe von Beispielanwendungen können Sie die Bereitstellungs- und Bereitstellungsbefehle im Microsoft 365 Agents Toolkit (früher als Teams Toolkit bezeichnet) ausführen. Agents Toolkit erstellt eine Azure Container Registry und Azure Container Apps für Sie, erstellt Ihre App in einem Containerimage und stellt sie in Azure Container Apps bereit.
Der provision Befehl erstellt und konfiguriert die folgenden Ressourcen:
- Eine Teams-App mit Registerkarten- oder Botfunktion.
- An Azure Container Registry zum Hosten Ihres Containerimages
- Eine Azure Container App-Umgebung und eine Azure Container Apps zum Hosten Ihrer App.
- Eine Microsoft Entra-App zur Authentifizierung.
Im Teams-Beispielbot erstellt der provision Befehl auch eine Azure Bot Service, um den Teams-Client und Azure Container-Apps zu kanalisieren.
Der deploy Befehl führt die folgenden Aktionen aus:
- Erstellt die App in ein Containerimage.
- Überträgt das Containerimage an Azure Container Registry.
- Stellt das Image in Azure-Container-Apps bereit.
Bereitstellen eines Teams-Bots in Azure Kubernetes Service
AKS ist ein verwalteter Containerorchestrierungsdienst, der von Azure bereitgestellt wird. Mit AKS können Sie die Kubernetes-Erfahrung vollständig in Azure verwalten.
Architektur
Der Teams-Back-End-Server interagiert über die Azure Bot Service mit Ihrem Bot. Dieser Dienst erfordert, dass Ihr Bot über einen öffentlichen HTTPS-Endpunkt erreichbar ist. Stellen Sie zum Einrichten einen Eingangscontroller auf Ihrem Kubernetes-Cluster bereit, und sichern Sie ihn mit einem TLS-Zertifikat.
Sie können Microsoft Entra ID verwenden, um Ihren Bot mit Azure Bot Service zu authentifizieren. Erstellen Sie ein Kubernetes-Geheimnis, das die App-ID und das Kennwort enthält, und integrieren Sie das Geheimnis in die Laufzeitkonfiguration Ihres Containers.
Einrichten von eingehendem Datenverkehr mit HTTPS auf AKS
Stellen Sie sicher, dass Ihr AKS mit Ihrer Azure Container Registry verbunden ist, die Ihre Containerimages hostet. Weitere Informationen finden Sie unter Verwenden der Azure-Befehlszeilenschnittstelle.
Führen Sie den folgenden Befehl aus, um den Eingangscontroller und den Zertifikat-Manager zu installieren:
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"=linuxHinweis
Sie können auch die Anweisungen unter Erstellen eines nicht verwalteten Eingangs-Controllers befolgen und TLS mit Let's Encrypt Zertifikaten verwenden , um Eingangs- und TLS-Zertifikate auf Ihrem Kubernetes-Cluster einzurichten.
Führen Sie den folgenden Befehl aus, um den DNS-Namen für die öffentliche Eingangs-IP-Adresse zu aktualisieren und den Eingangsendpunkt abzurufen:
> 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
Bereitstellen von Ressourcen mit Agents Toolkit
Sie können den provision Befehl im Agents-Toolkit verwenden, um eine Teams-App mit Botfunktion zu erstellen, die Azure Bot Service einzubinden und die Microsoft Entra ID für die Authentifizierung hinzuzufügen.
Gehen Sie folgendermaßen vor, um Ressourcen mit dem Agents Toolkit bereitzustellen:
Öffnen Sie die Beispiel-App, die Sie zuvor heruntergeladen haben.
Wechseln Sie zu der
env/.env.${envName}Datei, und aktualisieren Sie denBOT_DOMAINWert mit Ihrem FQDN.Navigieren Sie zu der
m365agents.ymlDatei, und aktualisieren Sie die folgendearm/deployAktion, um sicherzustellen, dass Agents Toolkit während der Ausführung desprovisionBefehls eine Azure Bot Service bereitstellt:- 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.1Führen Sie den
provisionBefehl im Agents Toolkit aus.Suchen Sie nach der Bereitstellung nach der
BOT_IDenv/.env.${envName}In-Datei und nach der verschlüsseltenSECRET_BOT_PASSWORDenv/.env.${envName}.userIn-Datei. Um den tatsächlichen Wert vonBOT_PASSWORDzu erhalten. Wählen Sie die Anmerkung Geheimnis entschlüsseln aus.Um ein Kubernetes-Geheimnis zu erstellen, das das Schlüssel-Wert-Paar in der
./deploy/.env.dev-secretsDatei enthältBOT_IDBOT_PASSWORD, und führen Sie den folgenden Befehl aus, um das Geheimnis bereitzustellen:kubectl create secret generic dev-secrets --from-env-file ./deploy/.env.dev-secrets -n $NAMESPACE
Anwenden der Bereitstellung
Das Beispiel enthält eine Bereitstellungsdatei, deploy/sso-bot.yaml, die Sie als Referenz nutzen können.
Aktualisieren Sie die folgenden Platzhalter:
<image>: Aktualisieren Sie Ihr Image. Beispiel:myacr.azurecr.io/sso-bot:latest.<hostname>: Aktualisieren Sie Ihren Eingangs-FQDN.
Führen Sie zum Anwenden
deploy/tab.yamlden folgenden Befehl aus:kubectl apply -f deploy/sso-bot.yaml -n $NAMESPACEWechseln Sie zu Visual Studio Code.
Wählen Sie im Bereich Ausführen und Debuggen die Konfiguration Remote-starten aus.
Um eine Vorschau der auf AKS bereitgestellten Teams-Bot-Anwendung anzuzeigen, wählen Sie Debuggen starten (F5) aus.
Bereitstellen eines Teams-Bots in einem lokalen Kubernetes-Cluster
Sie können einen Teams-Bot aus verschiedenen Clouddiensten für Ihren persönlichen Kubernetes-Cluster oder einen Kubernetes-Dienst bereitstellen, indem Sie ähnliche Schritte ausführen, die für die Bereitstellung des Teams-Bots auf AKS verwendet werden.
Architektur
Der Teams-Back-End-Server interagiert über die Azure Bot Service mit Ihrem Bot. Dieser Dienst erfordert, dass Ihr Bot über einen öffentlichen HTTPS-Endpunkt erreichbar ist. Stellen Sie zum Einrichten einen Eingangscontroller auf Ihrem Kubernetes-Cluster bereit, und sichern Sie ihn mit einem TLS-Zertifikat.
Sie können Microsoft Entra ID verwenden, um Ihren Bot mit Azure Bot Service zu authentifizieren. Erstellen Sie ein Kubernetes-Geheimnis, das die App-ID und das Kennwort enthält, und integrieren Sie das Geheimnis in die Laufzeitkonfiguration Ihres Containers.
Bereitstellen von Ressourcen mit Agents Toolkit
Sie können den provision Befehl im Agents-Toolkit verwenden, um eine Teams-App mit Botfunktion zu erstellen, die Azure Bot Service einzubinden und die Microsoft Entra ID für die Authentifizierung hinzuzufügen.
Gehen Sie folgendermaßen vor, um Ressourcen mit dem Agents Toolkit bereitzustellen:
Öffnen Sie die Beispiel-App, die Sie zuvor heruntergeladen haben.
Wechseln Sie zu der
env/.env.${envName}Datei, und aktualisieren Sie denBOT_DOMAINWert mit Ihrem FQDN.Navigieren Sie zu der
m365agents.ymlDatei, und aktualisieren Sie die folgendearm/deployAktion, um sicherzustellen, dass Agents Toolkit während der Ausführung desprovisionBefehls eine Azure Bot Service bereitstellt:- 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.1Aktualisieren Sie die
botFramework/createAktion in derm365agents.ymlDatei während der Bereitstellungsphase. Mit dieser Aktion kann das Agents-Toolkit eine Bot-Registrierung mit dem entsprechenden Messaging-Endpunkt erstellen.Hinweis
Wir empfehlen, Azure Bot Service für das Channeling zu verwenden. Wenn Sie kein Azure Konto haben und keine Azure Bot Service erstellen können, können Sie eine Bot-Registrierung erstellen.
- uses: botFramework/create with: botId: ${{BOT_ID}} name: <Bot display name> messagingEndpoint: https://${{BOT_DOMAIN}}/api/messages description: "" channels: - name: msteamsSie können die Aktion in
m365agents.ymlDateiarm/deployentfernen, da wir keine Azure-Ressourcen benötigen.Führen Sie den
provisionBefehl im Agents Toolkit aus.Suchen Sie nach der Bereitstellung den
BOT_IDin derenv/.env.${envName}Datei und den verschlüsseltenSECRET_BOT_PASSWORDin derenv/.env.${envName}.userDatei. Um den tatsächlichen Wert vonBOT_PASSWORDzu erhalten. Wählen Sie die Anmerkung Geheimnis entschlüsseln aus.Um ein Kubernetes-Geheimnis zu erstellen, das das Schlüssel-Wert-Paar in der
./deploy/.env.dev-secretsDatei enthältBOT_IDBOT_PASSWORD, und führen Sie den folgenden Befehl aus, um das Geheimnis bereitzustellen:kubectl create secret generic dev-secrets --from-env-file ./deploy/.env.dev-secrets -n $NAMESPACE
Anwenden der Bereitstellung
Das Beispiel enthält eine Bereitstellungsdatei , deploy/sso-bot.yaml, die Ihnen zur Orientierung dient.
Aktualisieren Sie die folgenden Platzhalter:
<image>: Aktualisieren Sie Ihr Image. Beispiel:myacr.azurecr.io/sso-bot:latest.<hostname>: Aktualisieren Sie Ihren Eingangs-FQDN.
Führen Sie zum Anwenden
deploy/tab.yamlden folgenden Befehl aus:kubectl apply -f deploy/sso-bot.yaml -n $NAMESPACEWechseln Sie zu Visual Studio Code.
Wählen Sie im Bereich Ausführen und Debuggen die Konfiguration Remote-starten aus.
Um eine Vorschau der auf AKS bereitgestellten Teams-Bot-Anwendung anzuzeigen, wählen Sie Debuggen starten (F5) aus.
Bereitstellen der Teams-Registerkarten-App in Kubernetes
AKS dient als verwalteter Containerorchestrierungsdienst, der von Azure angeboten wird. Mit AKS können Sie die Kubernetes-Erfahrung vollständig in Azure verwalten.
Das Bereitstellen einer Teams-Registerkarten-App in AKS ähnelt dem Bereitstellen einer Web-App in AKS. Da eine Teams-Registerkarten-App jedoch eine HTTPS-Verbindung erfordert, müssen Sie eine Domäne besitzen und TLS Ingress in Ihrem AKS einrichten.
Sie können auch eine Teams-Registerkarten-App für Ihren persönlichen Kubernetes-Cluster oder einen Kubernetes-Dienst auf verschiedenen Cloudplattformen bereitstellen. Dies beinhaltet Schritte, die denen ähneln, die bei der Bereitstellung in Azure Kubernetes Service verwendet werden.
Einrichten von eingehendem Datenverkehr mit HTTPS auf AKS
Stellen Sie sicher, dass Ihr AKS bereits mit Ihrer Azure Container Registry verbunden ist, die Ihre Containerimages hostet. Weitere Informationen finden Sie unter Azure CLI.
Führen Sie den folgenden Befehl aus, um den Eingangscontroller und den Zertifikat-Manager zu installieren:
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"=linuxHinweis
Sie können auch die Anweisungen unter Erstellen eines nicht verwalteten Eingangs-Controllers befolgen und TLS mit Let's Encrypt Zertifikaten verwenden , um Eingangs- und TLS-Zertifikate auf Ihrem Kubernetes-Cluster einzurichten.
Führen Sie den folgenden Befehl aus, um den DNS-Namen für die öffentliche Eingangs-IP-Adresse zu aktualisieren und den Eingangsendpunkt abzurufen:
> 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
Bereitstellen von Ressourcen mit Agents Toolkit
Sie können den provision Befehl im Agents-Toolkit verwenden, um eine Teams-App mit Registerkartenfunktion zu erstellen, die Azure Bot Service einzubinden und die Microsoft Entra ID für die Authentifizierung hinzuzufügen.
Gehen Sie folgendermaßen vor, um Ressourcen mit dem Agents Toolkit bereitzustellen:
Öffnen Sie die Beispiel-App, die Sie zuvor heruntergeladen haben.
Wechseln Sie zu der
env/.env.${envName}Datei, und aktualisieren Sie denTAB_DOMAINWert mit Ihrem FQDN.Wechseln Sie zu der
m365agents.ymlDatei, und entfernen Sie diearm/deployAktion, da keine zusätzlichen Azure-Ressourcen erforderlich sind.Führen Sie den
provisionBefehl im Agents Toolkit aus.Verwenden Sie das Agents-Toolkit, um eine Microsoft Entra ID zu erstellen, die Sie möglicherweise als Umgebungsvariablen Ihrer Apps festlegen möchten.
Suchen Sie nach der Bereitstellung den
AAD_APP_CLIENT_IDin derenv/.env.${envName}Datei und den verschlüsseltenSECRET_AAD_APP_CLIENT_SECRETin derenv/.env.${envName}.userDatei.Um den tatsächlichen Wert von
SECRET_AAD_APP_CLIENT_SECRETzu erhalten. Wählen Sie die Anmerkung Geheimnis entschlüsseln aus.
Anwenden der Bereitstellung
Das Beispiel enthält eine Bereitstellungsdatei, deploy/tab.yaml, die Sie als Referenz nutzen können.
Aktualisieren Sie die folgenden Platzhalter:
<tab-image>: Aktualisieren Sie Ihr Image. Beispiel:myacr.azurecr.io/tab:latest.<api-image>: Aktualisieren Sie Ihr API-Image. Wenn Sie nicht über eine API verfügen, entfernen Sie denhello-world-apiDienst, und stellen Sie ihn aus der YAML-Datei bereit.<hostname>: Aktualisieren Sie Ihren Eingangs-FQDN.
Führen Sie zum Anwenden
deploy/tab.yamlden folgenden Befehl aus:kubectl apply -f deploy/tab.yaml -n $NAMESPACEWechseln Sie zu Visual Studio Code.
Wählen Sie im Bereich Ausführen und Debuggen die Konfiguration Remote-starten aus.
Um eine Vorschau der auf AKS bereitgestellten Teams-Bot-Anwendung anzuzeigen, wählen Sie Debuggen starten (F5) aus.