Bereitstellen von Cloudressourcen

TeamsFx lässt sich in Azure und die Microsoft 365-Cloud integrieren, sodass Sie Ihre App mit einem einzigen Befehl in Azure platzieren können. TeamsFx lässt sich in Azure Resource Manager (ARM) integrieren, wodurch Azure-Ressourcen bereitgestellt werden können, die Ihre Anwendung für den Codeansatz benötigt.

Bereitstellen mithilfe des Teams-Toolkits in Microsoft Visual Studio Code

Sie können den Bereitstellungsbefehl in Teams Toolkit oder teamsFx CLI auslösen, um Ressourcen für Ihre Anwendung zu erstellen oder zu aktualisieren. Die Schritte des Bereitstellungsbefehls werden in der Datei unter provision der teamsapp.yml -Eigenschaft definiert. Sie können die Datei anzeigen, um zu verstehen, welche Ressourcen erstellt werden.

Hinweis

Azure-Dienste verursachen Kosten in Ihrem Abonnement. Weitere Informationen zur Kostenschätzung finden Sie unter Preisrechner.

Bereitstellen von Aktionen

In der folgenden Liste sind die Aktionen aufgeführt, die für die Bereitstellung entwickelt wurden.

teamsApp/create

Was es ist

Wenn die Umgebungsvariable, die die Teams-App-ID speichert, leer ist oder die App-ID nicht im Teams-Entwicklerportal gefunden wird, erstellt diese Aktion eine neue Teams-App.

Welche Ressource verwendet wird

Teams-App im Teams-Entwicklerportal.

Hinweise zur Verwendung

  - uses: teamsApp/create
    with:
      # #required. Name of Teams app
      name: <your-preferred-app-name>
    # Write the information of created resources into environment file for the specified environment variable(s).
    writeToEnvironmentFile:
      # The id for Teams app
      teamsAppId: <your-preferred-env-var-name>

teamsApp/update

Was es ist

Wenden Sie das App-Manifest (zuvor als Teams-App-Manifest bezeichnet) auf eine vorhandene Teams-App im Teams-Entwicklerportal an. Sie verwendet die App-ID in der Datei manifest.json, um zu bestimmen, welche Teams-App aktualisiert werden soll.

Welche Ressource verwendet wird

Teams-App im Teams-Entwicklerportal.

Hinweise zur Verwendung

- uses: teamsApp/update
    with:
      # Required. Relative path to the yaml file. This is the path for built zip file.
      appPackagePath: <path-to-teams-app-package-file>

teamsApp/validateManifest

Was es ist

Diese Aktion rendert die App-Manifestvorlage mit Umgebungsvariablen und überprüft die App-Manifestdatei mithilfe ihres Schemas.

Welche Ressource verwendet wird

Nicht zutreffend

Hinweise zur Verwendung

  - uses: teamsApp/validate
    with:
      # Required. Relative path to the yaml file. Path to app manifest file
      manifestPath: <path-to-manifest-file>

teamsApp/validateAppPackage

Was es ist

Diese Aktion überprüft das Teams-App-Paket mithilfe von Validierungsregeln.

Welche Ressource verwendet wird

Nicht zutreffend

Hinweise zur Verwendung

  - uses: teamsApp/validateAppPackage
    with:
      # Required. Relative path to the yaml file. This is the path for built zip file.
      appPackagePath: <path-to-teams-app-package-file>

teamsApp/zipAppPackage

Was es ist

Diese Aktion rendert die App-Manifestvorlage mit Umgebungsvariablen und komprimiert die App-Manifestdatei mit zwei Symbolen in eine ZIP-Datei.

Welche Ressource verwendet wird

Nicht zutreffend

Hinweise zur Verwendung

- uses: teamsApp/zipAppPackage
    with:
      # Required. Relative path to the yaml file. This is the path for app manifest file. Environment variables in manifest will be replaced before apply to AAD app.
      manifestPath: <path-to-manifest-file>
      # Required. Relative path to the yaml file. This is the path for built zip file.
      outputZipPath: <path-to-generated-zip-file>
      # Required. Relative path to the yaml file. This is the path for built manifest json file.
      outputJsonPath: <path-to-generated-json-file>

teamsApp/publishAppPackage

Was es ist

Diese Aktion veröffentlicht die erstellte ZIP-Datei der Teams-App im Mandanten-App-Katalog.

Welche Ressource verwendet wird

Teams-App im Microsoft 365-Mandanten-App-Katalog.

Hinweise zur Verwendung

- uses: teamsApp/publishAppPackage
    with:
      # Required. Relative path to this file. This is the path for built zip file.
      appPackagePath: <path-to-teams-app-package>
    # Write the information of created resources into environment file for the specified environment variable(s).
    writeToEnvironmentFile:
      # The Teams app id in tenant app catalog.
      publishedAppId: <your-preferred-env-var-name>

aadApp/create

Was es ist

Mit dieser Aktion wird eine neue Azure Active Directory-Anwendung (Azure AD) erstellt, um Benutzer zu authentifizieren, wenn die Umgebungsvariable, die clientId speichert, leer ist.

Welche Ressource verwendet wird

Azure AD in Ihrem Microsoft 365-Mandanten.

Hinweise zur Verwendung

- uses: aadApp/create
    with:
      # Required. The AAD app's display name. When you run aadApp/update, the Azure Active Directory AD app name will be updated based on the definition in manifest. If you don't want to change the name, make sure the name in AAD manifest is the same with the name defined here.
      name: <your-application-name>
      # Required. If the value is false, the action will not generate client secret for you
      generateClientSecret: true
      # Required. Specifies what Microsoft accounts are supported for the current application. Supported values are: `AzureADMyOrg`, `AzureADMultipleOrgs`, `AzureADandPersonalMicrosoftAccount`, `PersonalMicrosoftAccount`.
      signInAudience: "AzureADMyOrg"
    # Write the information of created resources into environment file for the specified environment variable(s).
    writeToEnvironmentFile:
      # Required. The client (application) ID of Azure Active Directory AD application. The action will refer the environment variable defined here to determine whether to create a new AAD app.
      clientId: <your-preferred-env-var-name>
      # Required when `generateClientSecret` is `true`. The action will refer the environment variable defined here to determine whether to create a new client secret. It's recommended to add `SECRET_` prefix to the environment variable name so it will be stored to the .env.{envName}.user environment file.
      clientSecret: <your-preferred-env-var-name>
      # Required. The object ID of AAD application
      objectId: <your-preferred-env-var-name>
      # Optional. The tenant ID of AAD tenant
      tenantId: <your-preferred-env-var-name>
      # Optional. The AAD authority
      authority: <your-preferred-env-var-name>
      # Optional. The host name of AAD authority
      authorityHost: <your-preferred-env-var-name>

aadApp/update

Was es ist

Diese Aktion aktualisiert Ihre Azure AD-Anwendung basierend auf dem Azure AD-App-Manifest. Sie verweist auf die ID-Eigenschaft im Azure AD-App-Manifest, um zu bestimmen, welche Azure AD-App aktualisiert werden soll.

Welche Ressource verwendet wird

Azure AD in Ihrem Microsoft 365-Mandanten.

Hinweise zur Verwendung

- uses: aadApp/update
    with:
      # Required. Relative path to the yaml file. Path to the AAD app manifest. Environment variables in manifest will be replaced before apply to AAD app.
      manifestPath: <path-to-manifest-file>
      # Required. Relative path to the yaml folder. This action will output the final AAD app manifest used to update AAD app to this path.
      outputFilePath : <path-to-output-file>

botAadApp/create

Was es ist

Mit dieser Aktion wird eine neue Erstellt oder eine vorhandene Azure AD-Anwendung für den Bot wiederverwendet.

Welche Ressource verwendet wird

Azure AD in Ihrem Microsoft 365-Mandanten.

Hinweise zur Verwendung

- uses: botAadApp/create
    with:
      # Required. The AAD app's display name
      name: <your-app-name>
    writeToEnvironmentFile:
      # The The AAD app's client id created for bot.
      botId: <your-preferred-env-var-name>
      # The The AAD app's client secret created for bot. 
      botPassword: <your-preferred-env-var-name>

arm/deploy

Was es ist

Diese Aktion stellt die angegebenen ARM-Vorlagen parallel bereit.

Welche Ressource verwendet wird

Azure-Abonnement.

Hinweise zur Verwendung

- uses: arm/deploy
    with:
      # Required. You can use built-in environment variable `AZURE_SUBSCRIPTION_ID` here. TeamsFx will ask you select one subscription if its value is empty. You're free to reference other environment variable here, but TeamsFx will not ask you to select subscription if it's empty in this case.
      subscriptionId: ${{AZURE_SUBSCRIPTION_ID}}
      # Required. You can use built-in environment variable `AZURE_RESOURCE_GROUP_NAME` here. TeamsFx will ask you to select or create one resource group if its value is empty. You're free to reference other environment variable here, but TeamsFx will not ask you to select or create resource group if it's empty in this case.
      resourceGroupName: ${{AZURE_RESOURCE_GROUP_NAME}}
      # Required. The ARM templates to be deployed.
      templates:
        # Required. Relative path to the yaml file.
      - path: <path-to-arm-template>
        # Optional. Relative path to the yaml file. TeamsFx will replace the environment variable reference with real value before deploy ARM template.
        parameters: <path-to-arm-template-parameter>
        # Required. Name of the ARM template deployment.
        deploymentName: <arm-deployment-name>
      # Optional. Teams Toolkit will download this bicep CLI version from github for you, will use bicep CLI in PATH if you remove this config.
      bicepCliVersion: v0.9.1

azureStorage/enableStaticWebsite

Was es ist

Diese Aktion aktiviert die Einstellung statischer Websites in Azure Storage.

Welche Ressource verwendet wird

Azure Storage.

Hinweise zur Verwendung

- uses: azureStorage/enableStaticWebsite
    with:
      # Required. The resource id of Azure Storage
      storageResourceId: ${{<env-name-of-azure-storage-resource-id>}}
      # Required. The path to index page.
      indexPage: <path-to-index-page>
      # Required. The path to error page.
      errorPage: <path-to-error-page>

Skript

Was es ist

Diese Aktion führt ein benutzerdefiniertes Skript aus.

Welche Ressource verwendet wird

Nicht zutreffend

Hinweise zur Verwendung

- uses: script
    with:
     # Required. Command to run or path to the script. Succeeds if exit code is 0. '::set-teamsfx-env key=value' is a special command to generate output variables into .env file, in this case, "mykey=abc" will be added the output in the corresponding .env file.
     run: $my_key="abc"; echo "::set-teamsfx-env mykey=${my_key}"
     # Optional. Available values are: bash, sh, powershell(Powershell Desktop), pwsh(powershell core), cmd. If omitted, it defaults to bash on Linux/MacOS, defaults to pwsh on windows.
     shell: <shell-name>
     # Optional. Current working directory. Defaults to the directory of this file.
     workingDirectory: <working-directory>
     # Optional. Timeout in ms.
     timeout: <timeout-in-ms>
     # Optional. Redirect stdout and stderr to a file.
     redirectTo: <path-to-output-file>

Passen Sie die Ressourcenbereitstellung an

Die Bereitstellungsschritte werden in der teamsapp.yml Datei unter der provision -Eigenschaft definiert. Sie können der provision -Eigenschaft Aktionen hinzufügen, entfernen oder aktualisieren, um die erwarteten Aktionen zu definieren, die Sie während der Bereitstellung ausführen möchten.

Verweisen auf Umgebungsvariablen in Parameterdateien

Teams Toolkit unterstützt das Verweisen auf die Werte aus Umgebungsvariablen in teamsapp.yml, App-Manifest, Azure AD-App-Manifest und Azure-Parameterdateien. Sie können die Syntax ${{ENV_VARIABLE_NAME}} verwenden, um auf Umgebungsvariablen zu verweisen.

Im folgenden Beispiel wird der Wert der Umgebungsvariablen MY_AZURE_SUBSCRIPTION_ID auf subscriptionIdfestgelegt:

subscriptionId: ${{MY_AZURE_SUBSCRIPTION_ID}}

Passen Sie ARM-Vorlagendateien an

Wenn die vordefinierten Vorlagen Ihre App-Anforderungen nicht erfüllen, können Sie Eine eigene ARM-Vorlage erstellen oder vorhandene ARM-Vorlage aktualisieren und den Pfad zur arm/deploy Aktion wie in der folgenden Vorlage angeben:

- uses: arm/deploy
    with:
      subscriptionId: ${{AZURE_SUBSCRIPTION_ID}}
      resourceGroupName: ${{AZURE_RESOURCE_GROUP_NAME}}
      templates:
      - path: <path-to-your-arm-template>
        parameters: <path-to-your-parameter-file>
        deploymentName: <arm-deployment-name>
      bicepCliVersion: <bicep-cli-version>

Die arm/deploy Aktion unterstützt ARM-Vorlagen, die im Bicep- und JSON-Format geschrieben wurden. Wenn Sie das JSON-Format verwenden, können Sie den bicepCliVersion Parameter weglassen. Sie benötigen grundlegende Kenntnisse in Azure Resource Manager. Erste Schritte mit Azure Resource Manager finden Sie in der Azure Resource Manager-Dokumentation.

Anpassen von Teams-Apps

Sie können Ihren Bot oder die Teams-App anpassen, indem Sie Umgebungsvariablen hinzufügen, um eine von Ihnen erstellte Azure AD-App zu verwenden. Führen Sie die folgenden Möglichkeiten aus, um die Teams-App anzupassen:

Verwenden Sie eine vorhandene Azure AD-App für Ihre Teams-App

Sie können die Schritte zum Hinzufügen von Umgebungsvariablen zu den ENV-Dateien ausführen, um eine Azure AD-App zu verwenden, die für Ihre Teams-App erstellt wurde. Wenn Sie noch nicht über eine Azure AD-App verfügen oder bereits über eine verfügen, aber nicht wissen, wo Sie den richtigen Wert finden können, finden Sie weitere Informationen unter Verwenden einer vorhandenen Azure AD-App im TeamsFx-Projekt.

  1. Öffnen Sie teamsapp.yml , und suchen Sie die aadApp/create Aktion.

  2. Suchen Sie die Namen der Umgebungsvariablen, die Informationen für die Azure AD-App in der writeToEnvironmentFile -Eigenschaft speichern. Wenn Sie Projekte mit dem Teams-Toolkit erstellen, lautet die Standarddefinition writeToenvironmentFile wie folgt:

     writeToEnvironmentFile:
      clientId: AAD_APP_CLIENT_ID
      clientSecret: SECRET_AAD_APP_CLIENT_SECRET
      objectId: AAD_APP_OBJECT_ID
      tenantId: AAD_APP_TENANT_ID
      authority: AAD_APP_OAUTH_AUTHORITY
      authorityHost: AAD_APP_OAUTH_AUTHORITY_HOST
    
  3. Fügen Sie Werte für jede Umgebungsvariable aus Schritt 2 hinzu.

    1. Fügen Sie die folgenden Umgebungsvariablen und deren Werte zur Datei hinzu env\.env.{env} .

       AAD_APP_CLIENT_ID=<value of Azure AD application's client id (application id)> # example: 00000000-0000-0000-0000-000000000000
       AAD_APP_OBJECT_ID=<value of Azure AD application's object id> # example: 00000000-0000-0000-0000-000000000000
       AAD_APP_TENANT_ID=<value of Azure AD's Directory (tenant) id>> # example: 00000000-0000-0000-0000-000000000000
       AAD_APP_OAUTH_AUTHORITY=<value of Azure AD's authority> # example: https://login.microsoftonline.com/<Directory (tenant) ID>
       AAD_APP_OAUTH_AUTHORITY_HOST=<host of Azure AD's authority> # example: https://login.microsoftonline.com
       AAD_APP_ACCESS_AS_USER_PERMISSION_ID=<id of access_as_user permission> # example: 00000000-0000-0000-0000-000000000000
      
    2. Wenn Ihre Anwendung einen geheimen Azure AD-App-Clientschlüssel erfordert, fügen Sie die folgende Umgebungsvariable und ihren Wert zur Datei hinzu env\.env.{env}.user .

      SECRET_AAD_APP_CLIENT_SECRET=<value of Azure AD application's client secret>
      

Hinweis

  • Denken Sie daran, die Namen der Umgebungsvariablen in den Beispielen zu aktualisieren, wenn Sie in writeToEnvironmentFileandere Namen verwenden.
  • Wenn Sie keine Aktion zum Erstellen einer Azure AD-Anwendung verwenden aadApp/create , können Sie die erforderlichen Umgebungsvariablen mit Ihrem bevorzugten Namen hinzufügen, ohne die oben genannten Schritte auszuführen.
  • Stellen Sie sicher, dass Sie dieselbe Azure AD-App nicht in mehreren Umgebungen freigeben.

Verwenden Sie eine vorhandene Azure AD-App für Ihren Bot

Sie können die Schritte zum Hinzufügen von Umgebungsvariablen zu den ENV-Dateien ausführen, um eine Azure AD-App zu verwenden, die für Ihre Teams-App erstellt wurde. Wenn Sie noch keine Azure AD-App für Ihren Bot haben oder bereits über eine verfügen, aber nicht wissen, wo Sie die richtigen Werte finden können, lesen Sie Verwenden einer vorhandenen Azure AD-App im TeamsFx-Projekt.

  1. Öffnen Sie teamsapp.yml , und suchen Sie die botAadApp/create Aktion.

  2. Suchen Sie die Namen der Umgebungsvariablen, die Informationen für die Azure AD-App in der writeToEnvironmentFile -Eigenschaft speichern. Wenn Sie Projekte mit dem Teams-Toolkit erstellen, lautet die Standarddefinition writeToEnvironmentFile wie folgt:

     writeToEnvironmentFile:
       botId: BOT_ID
       botPassword: SECRET_BOT_PASSWORD
    
  3. Fügen Sie Werte für jede Umgebungsvariable aus Schritt 2 hinzu.

    1. Fügen Sie die folgende Umgebungsvariable und ihren Wert zur Datei hinzu env\.env.{env} .

      BOT_ID=<value of Azure AD application's client id (application id)> # example: 00000000-0000-0000-0000-000000000000    
      
    2. Fügen Sie die folgende Umgebungsvariable und ihren Wert zur Datei hinzu env\.env.{env}.user .

      SECRET_BOT_PASSWORD=<value of Azure AD application's client secret>
      

Hinweis

  • Denken Sie daran, die Namen der Umgebungsvariablen in den Beispielen zu aktualisieren, wenn Sie in writeToEnvironmentFileandere Namen verwenden.
  • Wenn Sie keine Aktion zum Erstellen einer Azure AD-Anwendung verwenden botAadApp/create , können Sie die erforderlichen Umgebungsvariablen mit Ihrem bevorzugten Namen hinzufügen, ohne die oben genannten Schritte auszuführen.
  • Stellen Sie sicher, dass Sie dieselbe Azure AD-App nicht in mehreren Umgebungen freigeben.

Siehe auch

Wichtig

Wir haben die Erweiterung Teams Toolkit v5 in Visual Studio Code eingeführt. Diese Version wird mit vielen neuen App-Entwicklungsfeatures bereitgestellt. Es wird empfohlen, teams Toolkit v5 zum Erstellen Ihrer Teams-App zu verwenden.

Die Teams Toolkit v4-Erweiterung wird bald veraltet sein.

TeamsFx lässt sich in Azure und die Microsoft 365-Cloud integrieren, sodass Sie Ihre App mit einem einzigen Befehl in Azure platzieren können. TeamsFx lässt sich in Azure Resource Manager (ARM) integrieren, wodurch Azure-Ressourcen bereitgestellt werden können, die Ihre Anwendung für den Codeansatz benötigt.

Hinweis

Das Teams-Toolkit bietet keine Unterstützung für die Bereitstellung von Ressourcen auf anderen Cloudplattformen mit Ausnahme von Azure. Der Benutzer kann die Bereitstellung jedoch manuell durchführen.

Bereitstellen mithilfe des Teams-Toolkits in Microsoft Visual Studio Code, Version 4

Stellen Sie Azure-Ressourcen mit einem einzelnen Befehl in Teams Toolkit for Visual Studio Code oder TeamsFx CLI bereit. Weitere Informationen finden Sie unter Bereitstellen einer Azure-basierten App.

Ressourcen erstellen

Wenn Sie den Bereitstellungsbefehl in Teams Toolkit oder TeamsFx CLI auslösen, können Sie die folgenden Ressourcen abrufen:

  • Microsoft Azure Active Directory -App (Azure AD) unter Ihrem Microsoft 365-Mandanten.
  • Teams-App-Registrierung unter der Teams-Plattform Ihres Microsoft 365-Mandanten.
  • Azure-Ressourcen unter Ihrem ausgewählten Azure-Abonnement.

Wenn Sie ein neues Projekt erstellen, müssen Sie auch Azure-Ressourcen erstellen. Die ARM-Vorlage definiert alle Azure-Ressourcen und hilft beim Erstellen erforderlicher Azure-Ressourcen während der Bereitstellung. Wenn Sie einem vorhandenen Projekt eine neue Funktionsressource hinzufügen , spiegelt die aktualisierte ARM-Vorlage die neueste Änderung wider.

Hinweis

Azure-Dienste verursachen Kosten in Ihrem Abonnement. Weitere Informationen zur Kostenschätzung finden Sie unter Preisrechner.

Die folgende Liste zeigt die Ressourcenerstellung für verschiedene Arten von App- und Azure-Ressourcen:

Ressourcenerstellung für die Teams-Registerkarten-App
Ressource Zweck Beschreibung
Azure Storage Hostet Ihre Registerkarten-App. Aktiviert das Statische Web-App-Feature zum Hosten Ihrer Registerkarten-App.
Vom Benutzer zugewiesene Identität Authentifiziert Azure Service-to-Service-Anforderungen. Freigaben für verschiedene Funktionen und Ressourcen.

Ressourcenerstellung für Teams-Bot- oder Nachrichtenerweiterungs-App
Ressource Zweck Beschreibung
Azure Bot-Dienst Registriert Ihre App als Bot beim Bot-Framework. Verbindet den Bot mit Teams.
App Service-Plan für Bot Hostet die Web-App des Bots. Nicht zutreffend
Web-App für Bot Hostet Ihre Bot-App. – Fügt eine benutzerseitig zugewiesene Identität für den Zugriff auf andere Azure-Ressourcen hinzu.
– Fügt App-Einstellungen hinzu, die für das TeamsFx SDK erforderlich sind.
Vom Benutzer zugewiesene Identität Authentifiziert Azure Service-to-Service-Anforderungen. Freigaben für verschiedene Funktionen und Ressourcen.

Ressourcenerstellung für Azure Functions im Projekt
Ressource Zweck Beschreibung
App Service-Plan für Function-App Hostet die Funktions-App. Nicht zutreffend
Function-App Hostet Ihre Azure Functions-APIs. – Fügt eine benutzerseitig zugewiesene Identität für den Zugriff auf andere Azure-Ressourcen hinzu.
– Fügt CORS-Regel (Cross-Origin Resource Sharing) hinzu, um Anforderungen von Ihrer Registerkarten-App zuzulassen.
– Fügt eine Authentifizierungseinstellung hinzu, die Anforderungen von Ihrer Teams-App zulässt.
– Fügt App-Einstellungen hinzu, die für das TeamsFx SDK erforderlich sind.
Azure-Speicher für die Function-App Erfordert die Erstellung einer Funktions-App. Nicht zutreffend
Vom Benutzer zugewiesene Identität Authentifiziert Azure Service-to-Service-Anforderungen. Freigaben für verschiedene Funktionen und Ressourcen.

Ressourcenerstellung für Azure SQL im Projekt
Ressource Zweck Beschreibung
Azure SQL-Server Hostet die instance der Azure SQL-Datenbank. Ermöglicht allen Azure-Diensten den Zugriff auf den Server.
Azure SQL-Datenbank Speichert Daten für Ihre App. Gewährt benutzerseitig zugewiesene Identitäts-, Lese- oder Schreibberechtigungen für die Datenbank.
Vom Benutzer zugewiesene Identität Authentifiziert Azure Service-to-Service-Anforderungen. Freigaben für verschiedene Funktionen und Ressourcen.

Ressourcenerstellung für Azure API Management im Projekt
Ressource Zweck
Azure AD-App für API Management-Dienst Ermöglicht microsoft Power Platform-Zugriffs-APIs, die vom API-Verwaltungsdienst verwaltet werden.
API-Verwaltungsdienst Verwaltet Ihre in der Funktions-App gehosteten APIs.
API-Verwaltungsprodukt Gruppieren Sie Ihre APIs, definieren Sie Nutzungsbedingungen und Laufzeitrichtlinien.
OAuth-Server für die API-Verwaltung Ermöglicht Microsoft Power Platform den Zugriff auf Ihre APIs, die in der Funktions-App gehostet werden.
Vom Benutzer zugewiesene Identität Authentifiziert Azure Service-to-Service-Anforderungen.

Ressource, die erstellt wird, wenn Azure Key Vault in das Projekt eingeschlossen wird
Ressource Zweck dieser Ressource
Azure Key Vault-Dienst Verwalten von Geheimnissen (z. B. geheimer Azure AD-App-Clientschlüssel), die von anderen Azure-Diensten verwendet werden.
Vom Benutzer zugewiesene Identität Authentifiziert Azure Service-to-Service-Anforderungen.

Passen Sie die Ressourcenbereitstellung an

Mit dem Teams-Toolkit können Sie einen Infrastructure-as-Code-Ansatz verwenden, um die Azure-Ressourcen zu definieren, die Sie bereitstellen möchten, und wie Sie konfigurieren möchten. Das Teams-Toolkit verwendet die ARM-Vorlage, um Azure-Ressourcen zu definieren. Die ARM-Vorlage ist ein Satz von bicep Dateien, die die Infrastruktur und Konfiguration für Ihr Projekt definieren. Sie können Azure-Ressourcen anpassen, indem Sie die ARM-Vorlage ändern. Weitere Informationen finden Sie im Bicep-Dokument.

Die Bereitstellung mit ARM umfasst das Ändern der folgenden Sätze von Dateien, Parametern und Vorlagen:

  • ARM-Parameterdateien (azure.parameters.{your_env_name}.json) im Ordner .fx\configs zum Übergeben von Parametern an Vorlagen.

  • ARM-Vorlagendateien unter templates\azure, dieser Ordner enthält die folgenden Dateien:

    Datei Funktion Anpassung zulassen
    main.bicep Stellt einen Einstiegspunkt für die Bereitstellung von Azure-Ressourcen bereit. Ja
    provision.bicep Erstellt und konfiguriert Azure-Ressourcen. Ja
    config.bicep Fügt Erforderliche TeamsFx-Konfigurationen zu Azure-Ressourcen hinzu. Ja
    provision\xxx.bicep Erstellt und konfiguriert jede azure-Ressource, die von genutzt wird provision.bicep. Ja
    teamsfx\xxx.bicep Fügt jeder Azure-Ressource, die von config.bicepgenutzt wird, erforderliche TeamsFx-Konfigurationen hinzu. Nein

Hinweis

Wenn Sie Ressourcen oder Funktionen zu Ihrem Projekt hinzufügen, teamsfx\xxx.bicep wird neu generiert, können Sie dasselbe nicht anpassen. Um die bicep Dateien zu ändern, können Sie Git verwenden, um Ihre Änderungen an Dateien nachzuverfolgen teamsfx\xxx.bicep . Dadurch können Sie beim Hinzufügen von Ressourcen oder Funktionen keine Änderungen verlieren.

Azure AD-Parameter

Die ARM-Vorlagendateien verwenden Platzhalter für Parameter. Der Zweck der Platzhalter besteht darin, sicherzustellen, dass neue Ressourcen für Sie in einer neuen Umgebung erstellt werden. Die tatsächlichen Werte werden aus der .fx\states\state.{env}.json Datei aufgelöst.

Es gibt zwei Arten von Parametern:

Parametername Standardwertplatzhalter Bedeutung des Platzhalters So passen Sie es an
Microsoft 365 ClientId {{state.fx-resource-aad-app-for-teams.clientId}} Die Azure AD-App-Client-ID Ihrer App wird während der Bereitstellung erstellt. Verwenden Sie eine vorhandene Azure AD-App für Ihren Bot.
Microsoft 365 ClientSecret {{state.fx-resource-aad-app-for-teams.clientSecret}} Der geheime Azure AD-App-Clientschlüssel Ihrer App wird während der Bereitstellung erstellt. Verwenden Sie eine vorhandene Azure AD-App für Ihre Teams-App.
Microsoft 365 TenantId {{state.fx-resource-aad-app-for-teams.tenantId}} Mandanten-ID der Azure AD-App Ihrer App. Verwenden Sie eine vorhandene Azure AD-App für Ihre Teams-App.
Microsoft 365 OAuthAuthorityHost {{state.fx-resource-aad-app-for-teams.oauthHost}} OAuth-Autoritätshost der Azure AD-App Ihrer App. Verwenden Sie eine vorhandene Azure AD-App für Ihre Teams-App.
botAadAppClientId {{state.fx-resource-bot.botId}} Die Während der Bereitstellung erstellte Azure AD-App-Client-ID des Bots. Verwenden Sie eine vorhandene Azure AD-App für Ihren Bot.
botAadAppClientSecret {{state.fx-resource-bot.botPassword}} Der geheime Clientschlüssel der Azure AD-App des Bots wird während der Bereitstellung erstellt. Verwenden Sie eine vorhandene Azure AD-App für Ihren Bot.
Parametername Standardwertplatzhalter Bedeutung des Platzhalters So passen Sie es an
azureSqlAdmin {{state.fx-resource-azure-sql.admin}} Azure SQL Serveradministratorkonto, das Sie während der Bereitstellung angegeben haben. Löschen Sie den Platzhalter, und füllen Sie den tatsächlichen Wert aus.
azureSqlAdminPassword {{state.fx-resource-azure-sql.adminPassword}} Azure SQL Serveradministratorkennwort, das Sie während der Bereitstellung angegeben haben. Löschen Sie den Platzhalter, und füllen Sie den tatsächlichen Wert aus.

Verweisen auf Umgebungsvariablen in Parameterdateien

Wenn der Wert geheimnis ist, müssen Sie sie nicht in der Parameterdatei hartcodieren. Die Parameterdateien unterstützen das Referenzieren der Werte aus Umgebungsvariablen. Sie können die Syntax {{$env.YOUR_ENV_VARIABLE_NAME}} in Parameterwerten für das Tool verwenden, um die aktuelle Umgebungsvariable aufzulösen.

Im folgenden Beispiel wird der Wert des mySelfHostedDbConnectionString Parameters aus der Umgebungsvariablen DB_CONNECTION_STRINGgelesen:

...
    "mySelfHostedDbConnectionString": "{{$env.DB_CONNECTION_STRING}}"
...

Passen Sie ARM-Vorlagendateien an

Wenn die vordefinierten Vorlagen Ihre App-Anforderungen nicht erfüllen, können Sie die ARM-Vorlagen unter dem templates\azure Ordner anpassen. Beispielsweise können Sie die ARM-Vorlage anpassen, um zusätzliche Azure-Ressourcen für Ihre App zu erstellen. Sie müssen über grundlegende Kenntnisse der Bicep-Sprache verfügen, die zum Erstellen einer ARM-Vorlage verwendet wird. Unter Biceps-Dokumentation können Sie mit dem Bicep beginnen.

Hinweis

Die ARM-Vorlage wird von allen Umgebungen gemeinsam genutzt. Sie können die bedingte Bereitstellung verwenden, wenn das Bereitstellungsverhalten zwischen den Umgebungen variiert.

Um sicherzustellen, dass das TeamsFx-Tool ordnungsgemäß funktioniert, passen Sie die ARM-Vorlage an, die die folgenden Anforderungen erfüllt:

Hinweis

Wenn Sie ein anderes Tool für die Weiterentwicklung verwenden, können Sie diese Anforderungen ignorieren.

  • Stellen Sie sicher, dass die Ordnerstruktur und der Dateiname unverändert bleiben. Das Tool fügt möglicherweise neue Inhalte an die vorhandenen Dateien an, wenn Sie Ihrem Projekt weitere Ressourcen oder Funktionen hinzufügen.
  • Stellen Sie sicher, dass die Namen der automatisch generierten Parameter und deren Eigenschaftennamen unverändert bleiben. Die automatisch generierten Parameter können verwendet werden, wenn Sie Ihrem Projekt weitere Ressourcen oder Fähigkeiten hinzufügen.
  • Stellen Sie sicher, dass die Ausgabe der automatisch generierten ARM-Vorlage unverändert bleibt. Sie können der ARM-Vorlage weitere Ausgaben hinzufügen. Die Ausgabe ist .fx\states\state.{env}.json und kann in anderen Features verwendet werden, z. B. zum Bereitstellen und Überprüfen der App-Manifestdatei (früher Teams-App-Manifest genannt).

Anpassen von Teams-Apps

Sie können Ihren Bot oder die Teams-App anpassen, indem Sie Konfigurationsausschnitte hinzufügen, um eine von Ihnen erstellte Azure AD-App zu verwenden. Führen Sie die folgenden Möglichkeiten aus, um die Teams-App anzupassen:

Verwenden Sie eine vorhandene Azure AD-App für Ihre Teams-App

Sie können den folgenden Konfigurationsausschnitt zur .fx\configs\config.{env}.json Datei hinzufügen, um eine Azure AD-App zu verwenden, die für Ihre Teams-App erstellt wurde. Wenn Sie noch nicht über eine Azure AD-App verfügen oder bereits über eine verfügen, aber nicht wissen, wo Sie den richtigen Wert finden können, lesen Sie die Verwendung einer vorhandenen Azure AD-App im TeamsFx-Projekt:

"$schema": "https://aka.ms/teamsfx-env-config-schema",
"description": "...",
"manifest": {
  ...
},
// Add code below. Note you need to replace the placeholders with real values.
"auth": {
    "clientId": "<your Azure AD app client id>",
    "clientSecret": "{{$env.ENV_NAME_THAT_STORES_YOUR_SECRET}}",
    "objectId": "<your Azure AD app object id>",
    "accessAsUserScopeId": "<id of the access_as_user scope>"
}

Nachdem Sie den Codeausschnitt hinzugefügt haben, fügen Sie Ihren geheimen Clientschlüssel der zugehörigen Umgebungsvariable für Teams Toolkit hinzu, um den tatsächlichen geheimen Clientschlüssel während der Bereitstellung aufzulösen.

Hinweis

Stellen Sie sicher, dass Sie dieselbe Azure AD-App nicht in mehreren Umgebungen freigeben. Wenn Sie nicht über die Berechtigung zum Aktualisieren der Azure AD-App verfügen, erhalten Sie eine Warnung mit Anweisungen zum manuellen Aktualisieren der Azure AD-App. Befolgen Sie die Anweisungen zum Aktualisieren Ihrer Azure AD-App nach der Bereitstellung.

Verwenden Sie eine vorhandene Azure AD-App für Ihren Bot

Sie können der Datei den folgenden Konfigurationsausschnitt .fx\configs\config.{env}.json hinzufügen, um eine azure AD-App zu verwenden, die für Ihren Bot erstellt wurde:

"$schema": "https://aka.ms/teamsfx-env-config-schema",
"description": "...",
"manifest": {
  ...
},
// Add code below. Note you need to replace the placeholders with real values.
"bot": {
    "appId": "<your Azure AD app client id>",
    "appPassword": "{{$env.ENV_NAME_THAT_STORES_YOUR_SECRET}}"
}

Nachdem Sie den Codeausschnitt hinzugefügt haben, fügen Sie Ihren geheimen Clientschlüssel der zugehörigen Umgebungsvariablen für Teams Toolkit hinzu, um den tatsächlichen geheimen Clientschlüssel während der Bereitstellung aufzulösen.

Hinweis

  • Fügen Sie den Konfigurationsausschnitt in der .vscode/tasks.json Datei hinzu. Ein von Teams Toolkit generiertes Projekt enthält einen vordefinierten Satz von Visual Studio Code-Debugaufgaben in der .vscode/tasks.json Datei. Diese vordefinierten Aufgaben werden von Teams Toolkit Version 4.1.0 oder höher generiert. Sie können die .vscode/tasks.json Datei zum Anpassen von Debugaufgaben und die .fx\configs\config.{env}.json Datei für Cloudumgebungen verwenden.

  • Informationen zum Ermitteln der richtigen Werte für appId und appPasswordfinden Sie unter Verwenden einer vorhandenen Azure AD-App im TeamsFx-Projekt.

Überspringen Sie das Hinzufügen eines Benutzers für die SQL-Datenbank

Wenn beim Versuch des Teams-Toolkits, der SQL-Datenbank einen Benutzer hinzuzufügen, ein Fehler aufgrund unzureichender Berechtigungen auftritt, können Sie den folgenden Konfigurationsausschnitt zur .fx\configs\config.{env}.json Datei hinzufügen, um das Hinzufügen des SQL-Datenbankbenutzers zu überspringen:

"skipAddingSqlUser": true

Geben Sie den Namen der Funktions-App instance

Sie können anstelle des Standardnamens contosoteamsappapi für die Function-App-Instanz verwenden.

Hinweis

Wenn Sie die Umgebung bereits bereitgestellt haben, kann durch Angabe des Namens eine neue Function-App-Instanz für Sie erstellt werden, anstatt die zuvor erstellte Instanz umzubenennen.

Führen Sie die Schritte aus, um den Namen der Funktions-App instance anzugeben:

  1. Öffnen Sie .fx\configs\azure.parameters.{env}.json für Ihre aktuelle Umgebung.

  2. Fügen Sie beispielsweise functionAppName eine neue Eigenschaft unter dem provisionParameters Abschnitt hinzu.

  3. Geben Sie den Wert ein functionAppName, z. B contosoteamsappapi. .

  4. Die endgültige Parameterdatei wird im folgenden Snippet angezeigt:

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "provisionParameters": {
            "value": {
                "functionAppName": "contosoteamsappapi"
                ...
                }
            }
        }
    }
    

Um der App weitere Azure-Ressourcen oder -Speicher hinzuzufügen, betrachten Sie das folgende Szenario:

Fügen Sie Ihrem Azure-Funktions-Back-End Azure Storage hinzu, um Blobdaten zu speichern. Es gibt keinen automatischen Flow zum Aktualisieren der bicep Vorlage mit der Azure Storage-Unterstützung. Sie können die bicep Datei jedoch bearbeiten und die Ressource hinzufügen. Gehen Sie folgendermaßen vor:

  1. Erstellen Sie ein Registerkartenprojekt.

  2. Funktion zum Projekt hinzufügen. Weitere Informationen finden Sie unter Hinzufügen einer neuen Funktionsressource.

  3. Deklarieren Sie das neue Speicherkonto in der ARM-Vorlage. Sie können die Ressource direkt unter templates\azure\provision\function.bicep deklarieren. Sie können die Ressourcen an anderen Stellen deklarieren.

    var applicationStorageAccountName = 'myapp${uniqueString(resourceGroup().id)}'
    resource applicationStorageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
        name: applicationStorageAccountName
        location: resourceGroup().location
        kind: 'Storage'
        sku: {
            name: 'Standard_LRS'
        }
    }
    
  4. Aktualisieren Sie die Azure Functions App-Einstellungen mit der Azure Storage-Verbindungszeichenfolge in templates\azure\provision\function.bicep. Fügen Sie das folgende Snippet zum Array appSettings der Ressource functionApp hinzu:

    {
        name: 'MyAppStorageAccountConnectionString'
        value: 'DefaultEndpointsProtocol=https;AccountName=${applicationStorageAccount.name};AccountKey=${listKeys(applicationStorageAccount.id, '2021-06-01').keys[0].value}'
    }
    
  5. Sie können Ihre Funktion mit Azure Storage-Ausgabebindungen aktualisieren.

Siehe auch