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 ist in Azure Resource Manager (ARM) integriert, wodurch Azure-Ressourcen bereitgestellt werden können, die Ihre Anwendung für den Codeansatz benötigt.
Bereitstellen mithilfe des Microsoft 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. Es verwendet die App-ID in der manifest.json-Datei, 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 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
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 Microsoft Entra-Anwendung zum Authentifizieren von Benutzern erstellt, wenn die Umgebungsvariable, die clientId speichert, leer ist.
Welche Ressource verwendet wird
Microsoft Entra ID in Ihrem Microsoft 365-Mandanten.
Hinweise zur Verwendung
- 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
Was es ist
Diese Aktion aktualisiert Ihre Microsoft Entra-Anwendung basierend auf der Bereitstellung des Microsoft Entra-App-Manifests. Sie verweist auf die ID-Eigenschaft im Microsoft Entra-App-Manifest, um zu bestimmen, welche Microsoft Entra-App aktualisiert werden soll.
Welche Ressource verwendet wird
Microsoft Entra ID in Ihrem Microsoft 365-Mandanten.
Hinweise zur Verwendung
- 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
Was es ist
Diese Aktion erstellt eine neue oder verwendet eine vorhandene Microsoft Entra-Anwendung für den Bot wieder.
Welche Ressource verwendet wird
Microsoft Entra ID in Ihrem Microsoft 365-Mandanten.
Hinweise zur Verwendung
- uses: botAadApp/create
with:
# Required. The Microsoft Entra app's display name
name: <your-app-name>
writeToEnvironmentFile:
# The Microsoft Entra app's client id created for bot.
botId: <your-preferred-env-var-name>
# The Microsoft Entra 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>
azureStaticWebApps/getDeploymentToken
Was es ist
Diese Aktion ruft das Bereitstellungstoken aus Azure Static Web Apps ab.
Versionsinformationen
v1.4
Welche Ressource verwendet wird
Azure Static Web Apps.
Hinweise zur Verwendung
- uses: azureStaticWebApps/getDeploymentToken
with:
resourceId: ${{AZURE_STATIC_WEB_APPS_RESOURCE_ID}}
writeToEnvironmentFile:
deploymentToken: SECRET_TAB_SWA_DEPLOYMENT_TOKEN
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
Das Teams-Toolkit unterstützt den Verweis auf die Werte aus Umgebungsvariablen in teamsapp.yml
, App-Manifest, Microsoft Entra-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 subscriptionId
festgelegt:
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 Microsoft Entra-App zu verwenden. Führen Sie die folgenden Möglichkeiten aus, um die Teams-App anzupassen:
- Verwenden einer vorhandenen Microsoft Entra-App für Ihre Teams-App
- Verwenden einer vorhandenen Microsoft Entra-App für Ihren Bot
Verwenden einer vorhandenen Microsoft Entra-App für Ihre Teams-App
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. Wenn Sie noch nicht über eine Microsoft Entra-App verfügen oder bereits über eine verfügen, aber nicht wissen, wo Sie den richtigen Wert finden können, lesen Sie , wie Sie eine vorhandene Microsoft Entra-App im TeamsFx-Projekt verwenden.
Öffnen Sie
teamsapp.yml
, und suchen Sie dieaadApp/create
Aktion.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 StandarddefinitionwriteToenvironmentFile
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
Fügen Sie Werte für jede Umgebungsvariable aus Schritt 2 hinzu.
Fügen Sie die folgenden Umgebungsvariablen und deren Werte zur Datei hinzu
env\.env.{env}
.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
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
.SECRET_AAD_APP_CLIENT_SECRET=<value of Microsoft Entra application's client secret>
Hinweis
- Denken Sie daran, die Namen der Umgebungsvariablen in den Beispielen zu aktualisieren, wenn Sie in
writeToEnvironmentFile
andere 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. Wenn Sie noch keine Microsoft Entra-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 Microsoft Entra-App im TeamsFx-Projekt.
Öffnen Sie
teamsapp.yml
, und suchen Sie diebotAadApp/create
Aktion.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 StandarddefinitionwriteToEnvironmentFile
wie folgt:writeToEnvironmentFile: botId: BOT_ID botPassword: SECRET_BOT_PASSWORD
Fügen Sie Werte für jede Umgebungsvariable aus Schritt 2 hinzu.
Fügen Sie die folgende Umgebungsvariable und ihren Wert zur Datei hinzu
env\.env.{env}
.BOT_ID=<value of Microsoft Entra application's client id (application id)> # example: 00000000-0000-0000-0000-000000000000
Fügen Sie die folgende Umgebungsvariable und ihren Wert zur Datei hinzu
env\.env.{env}.user
.SECRET_BOT_PASSWORD=<value of Microsoft Entra application's client secret>
Hinweis
- Denken Sie daran, die Namen der Umgebungsvariablen in den Beispielen zu aktualisieren, wenn Sie in
writeToEnvironmentFile
andere 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 dieselbe Microsoft Entra-App nicht in mehreren Umgebungen freigeben.