Teilen über


Bereitstellen von Cloudressourcen in Microsoft Visual Studio

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 ist in Azure Resource Manager (ARM) integriert, wodurch Azure-Ressourcen bereitgestellt werden können, die Ihre Anwendung für den Codeansatz benötigt.

Anmelden bei Ihrem Azure-Konto

  1. Öffnen Sie Visual Studio.

  2. Öffnen Sie das Microsoft Teams-App-Projekt.

  3. Wählen Sie Project>Teams Toolkit>Provision in the Cloud aus.

    Screenshot: Anmelden beim Azure-Konto

  4. Wählen Sie Anmelden... aus.

    Screenshot: Anmeldung beim Azure-Konto

    Hinweis

    Wenn Sie bereits angemeldet sind, wird Ihr Benutzername angezeigt, oder Sie haben die Option Konto hinzufügen.

    Nachdem Sie sich mit Ihren Anmeldeinformationen bei Ihrem Azure-Konto angemeldet haben, wird der Browser automatisch geschlossen.

Bereitstellen von Cloudressourcen

Nachdem Sie Ihr Projekt in Visual Studio geöffnet haben, führen Sie zum Bereitstellen von Cloudressourcen die folgenden Schritte aus:

  1. Wählen Sie Project>Teams Toolkit>Provision in the Cloud... aus.

    Screenshot: Bereitstellen in der Cloud

    Das Fenster Bereitstellen wird angezeigt.

  2. Geben Sie die folgenden Details ein, um Ihre Ressourcen bereitzustellen:

    1. Wählen Sie im Dropdownmenü Ihren Abonnementnamen aus.
    2. Wählen Sie im Dropdownmenü Ihre Ressourcengruppe aus, oder Sie können eine neue Ressourcengruppe erstellen, indem Sie Neu... auswählen.
    3. Wählen Sie im Dropdownmenü Ihre Region aus.
    4. Wählen Sie Bereitstellen aus.

    Screenshot: Auswahl der Ressourcengruppe

  3. Wählen Sie im angezeigten Popupfenster Bereitstellen aus.

    Screenshot: Bereitstellungswarnung

    Beim Bereitstellungsprozess werden Ressourcen in der Azure-Cloud erstellt. Sie können den Fortschritt überwachen, indem Sie das Ausgabefenster des Microsoft Teams-Toolkits beobachten.

  4. Wählen Sie im eingeblendeten Popupfenster bereitgestellte Ressourcen anzeigen aus, um alle bereitgestellten Ressourcen anzuzeigen.

    Screenshot: Bereitgestellte Ressourcen

Bereitstellen von Aktionen

Die folgenden Aktionen sind für die Bereitstellung konzipiert:

teamsApp/create

Wenn die Umgebungsvariable, die die Teams-App-ID speichert, leer ist oder die App-ID nicht im Teams-Entwicklerportal gefunden wird, erstellt die teamsApp/create Aktion eine neue Teams-App. Es wird für die Teams-App im Teams-Entwicklerportal verwendet.

  - 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

Wenn Sie das Teams-App-Manifest auf eine vorhandene Teams-App im Teams-Entwicklerportal anwenden. teamsApp/update action verwendet die App-ID in manifest.json Datei, um zu bestimmen, welche Teams-App aktualisiert werden soll. Es wird für die Teams-App im Teams-Entwicklerportal verwendet.

- 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

Die teamsApp/validateManifest Aktion rendert die Teams-App-Manifestvorlage mit Umgebungsvariablen und überprüft die Teams-App-Manifestdatei mithilfe des zugehörigen Schemas.

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

teamsApp/validateAppPackage

Die teamsApp/validateAppPackage Aktion überprüft das Teams-App-Paket mithilfe von Validierungsregeln.

  - 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

Die teamsApp/zipAppPackage Aktion rendert die Teams-App-Manifestvorlage mit Umgebungsvariablen und komprimiert die Manifestdatei mit zwei Symbolen in einer ZIP-Datei.

- uses: teamsApp/zipAppPackage
    with:
      # Required. Relative path to the yaml file. This is the path for Teams app manifest file. Environment variables in manifest will be replaced before apply to Microsoft Entra 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

Die teamsApp/publishAppPackage Aktion veröffentlicht die erstellte ZIP-Datei der Teams-App im Mandanten-App-Katalog. Sie wird im Microsoft 365-Mandanten-App-Katalog ausgeführt.

- 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

Die aadApp/create Aktion erstellt eine neue Microsoft Entra-Anwendung, um Benutzer zu authentifizieren, wenn die Umgebungsvariable, die die speichert, clientId leer ist. Es wird in Microsoft Entra ID im Microsoft 365-Mandanten ausgeführt.

- uses: aadApp/create
    with:
      # Required. The Microsoft Entra app's display name. When you run aadApp/update, the Microsoft Entra 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 Microsoft Entra app 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 Microsoft Entra application. The action will refer the environment variable defined here to determine whether to create a new Microsoft Entra 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 Microsoft Entra application
      objectId: <your-preferred-env-var-name>
      # Optional. The tenant ID of Microsoft Entra tenant
      tenantId: <your-preferred-env-var-name>
      # Optional. The Microsoft Entra authority
      authority: <your-preferred-env-var-name>
      # Optional. The host name of Microsoft Entra authority
      authorityHost: <your-preferred-env-var-name>

aadApp/update

aadApp/update action aktualisiert Ihre Microsoft Entra-Anwendung basierend auf dem Microsoft Entra-App-Manifest. Sie verweist auf die ID-Eigenschaft im Microsoft Entra-App-Manifest, um zu bestimmen, welche Microsoft Entra-App aktualisiert werden soll. aadApp/update verwendet die Microsoft Entra-ID in Ihrem Microsoft 365-Mandanten.

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

botAadApp/create

Die botAadApp/create Aktion erstellt eine neue oder verwendet eine vorhandene Microsoft Entra-Anwendung für den Bot wieder. Es wird mit der Microsoft Entra-ID im Microsoft 365-Mandanten ausgeführt.

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

arm/deploy

Die arm/deploy Aktion stellt die angegebenen ARM-Vorlagen parallel bereit. Es wird für ein Azure-Abonnement verwendet.

- 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

Die azureStorage/enableStaticWebsite Aktion aktiviert die Statische Websiteeinstellung in Azure Storage. Es wird in Azure Storage betrieben.

- 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

Die script Aktion führt ein benutzerdefiniertes Skript aus.

- 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 der teamsapp.yml Datei, dem Teams-App-Manifest, dem Microsoft Entra-App-Manifest und den 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 folgt 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 sind. Wenn Sie das JSON-Format verwenden, können Sie den bicepCliVersion Parameter weglassen. Sie benötigen grundlegende Kenntnisse in Azure Resource Manager. Weitere Informationen finden Sie in der Dokumentation zu Azure Resource Manager.

Verwalten Ihrer Ressourcen

Sie können sich beim Azure-Portal anmelden und alle Ressourcen verwalten, die mit dem Teams-Toolkit erstellt wurden.

  • Sie können eine Ressourcengruppe aus der vorhandenen Liste oder der neuen Ressourcengruppe auswählen, die Sie erstellt haben.
  • Die Details der ausgewählten Ressourcengruppe finden Sie im Übersichtsabschnitt des Inhaltsverzeichnisses.

Anpassen von Teams-Apps

Sie können Ihren Bot oder die Teams-App anpassen, indem Sie Umgebungsvariablen hinzufügen, um eine von Ihnen erstellte Microsoft Entra-App zu verwenden. Sie können die Teams-App auf folgende Weise anpassen:

Verwenden einer vorhandenen Microsoft Entra-App für Ihre Teams-App

Führen Sie die folgenden Schritte aus, um eine für Ihre Teams-App erstellte Microsoft Entra-App zu verwenden und den ENV-Dateien Umgebungsvariablen hinzuzufügen.

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

  2. Suchen Sie die Namen der Umgebungsvariablen, in denen Informationen für die Microsoft Entra-App in der writeToEnvironmentFile -Eigenschaft gespeichert werden. Wenn Sie Projekte mit dem Teams Toolkit erstellen, lautet die Standardeigenschaftsdefinition 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} . Beispiel:

       AAD_APP_CLIENT_ID=<value of Microsoft Entra application's client id (application id)> # example: 00000000-0000-0000-0000-000000000000
       AAD_APP_OBJECT_ID=<value of Microsoft Entra application's object id> # example: 00000000-0000-0000-0000-000000000000
       AAD_APP_TENANT_ID=<value of Microsoft Entra's (tenant) id>> # example: 00000000-0000-0000-0000-000000000000
       AAD_APP_OAUTH_AUTHORITY=<value of Microsoft Entra's authority> # example: https://login.microsoftonline.com/<Directory (tenant) ID>
       AAD_APP_OAUTH_AUTHORITY_HOST=<host of Microsoft Entra'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 Microsoft Entra-App-Clientschlüssel erfordert, fügen Sie die folgende Umgebungsvariable und ihren Wert zur Datei hinzu env\.env.{env}.user . Beispiel:

      SECRET_AAD_APP_CLIENT_SECRET=<value of Microsoft Entra application's client secret>
      

Wenn Sie noch nicht über eine Microsoft Entra-App verfügen oder über eine verfügen, aber nicht wissen, wo Sie den richtigen Wert finden können, lesen Sie Verwenden einer vorhandenen Microsoft Entra-App im TeamsFx-Projekt.

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 Microsoft Entra-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 Microsoft Entra-App nicht in mehreren Umgebungen freigeben.

Verwenden einer vorhandenen Microsoft Entra-App für Ihren Bot

Sie können die Schritte zum Hinzufügen von Umgebungsvariablen zu den ENV-Dateien ausführen, um eine Microsoft Entra-App zu verwenden, die für Ihre Teams-App erstellt wurde.

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

  2. Suchen Sie die Namen der Umgebungsvariablen, in denen Informationen für die Microsoft Entra-App in der writeToEnvironmentFile -Eigenschaft gespeichert werden. 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 Umgebungsvariable und ihren Wert zur Datei hinzu env\.env.{env} . Beispiel:

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

      SECRET_BOT_PASSWORD=<value of Microsoft Entra application's client secret>
      

Wenn Sie noch keine Microsoft Entra-App für Ihren Bot haben oder über eine verfügen, aber nicht wissen, wo Sie die richtigen Werte finden können, lesen Sie Verwenden einer vorhandenen Microsoft Entra-App im TeamsFx-Projekt.

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 Microsoft Entra-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 nicht dieselbe Microsoft Entra-App in mehreren Umgebungen verwenden.

Siehe auch