Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
TeamsFx интегрируется с Azure и облаком Microsoft 365, позволяя разместить приложение в Azure с помощью одной команды. TeamsFx интегрируется с Azure Resource Manager (ARM), позволяя подготавливать Azure ресурсы, необходимые приложению для подхода к коду.
Подготовка с помощью microsoft 365 Agents Toolkit в Visual Studio Code
Для создания или обновления ресурсов для приложения можно активировать команду подготовки в средстве агентов (ранее — Набор средств Teams) или Microsoft 365 Agents Toolkit CLI (ранее — TeamsFx CLI). Шаги команды подготовки определяются в m365agents.yml файле в свойстве provision . Вы можете просмотреть файл, чтобы понять, какие ресурсы создаются.
Примечание.
Azure службы несут затраты на подписку. Дополнительные сведения об оценке затрат см. в статье Калькулятор цен.
Действия по подготовке
В следующем списке показаны действия, предназначенные для подготовки.
teamsApp/create
Что это такое
Если переменная среды, в которой хранится идентификатор приложения Teams, пуста или идентификатор приложения не найден на портале разработчика Teams, то это действие создает новое приложение Teams.
Какой ресурс он использует
Приложение Teams на портале разработчика Teams.
Как использовать эту возможность
- 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
Что это такое
Примените манифест приложения (ранее — манифест приложения Teams) к существующему приложению Teams на портале разработчика Teams. Он использует идентификатор приложения в файле, manifest.json чтобы определить, какое приложение Teams следует обновить.
Какой ресурс он использует
Приложение Teams на портале разработчика Teams.
Как использовать эту возможность
- 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
Что это такое
Это действие отображает шаблон манифеста приложения с переменными среды и проверяет файл манифеста приложения с использованием его схемы.
Какой ресурс он использует
Н/Д
Как использовать эту возможность
- uses: teamsApp/validate
with:
# Required. Relative path to the yaml file. Path to app manifest file
manifestPath: <path-to-manifest-file>
teamsApp/validateAppPackage
Что это такое
Это действие проверяет пакет приложения Teams с помощью правил проверки.
Какой ресурс он использует
Н/Д
Как использовать эту возможность
- 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
Что это такое
Это действие отрисовывает шаблон манифеста приложения с переменными среды и сжимает файл манифеста приложения с двумя значками в ZIP-файл.
Какой ресурс он использует
Н/Д
Как использовать эту возможность
- 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
Что это такое
Это действие публикует zip-файл встроенного приложения Teams в каталоге приложений клиента.
Какой ресурс он использует
Приложение Teams в каталоге приложений клиента Microsoft 365.
Как использовать эту возможность
- 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
Что это такое
Это действие создает новое приложение Microsoft Entra для проверки подлинности пользователей, если пустая переменная clientId среды.
Какой ресурс он использует
Microsoft Entra ID в клиенте Microsoft 365.
Как использовать эту возможность
- 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
Что это такое
Это действие обновляет приложение Microsoft Entra на основе заданного манифеста приложения Microsoft Entra. Он ссылается на свойство ID в манифесте приложения Microsoft Entra, чтобы определить, какое приложение Microsoft Entra обновить.
Какой ресурс он использует
Microsoft Entra ID в клиенте Microsoft 365.
Как использовать эту возможность
- 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
Что это такое
Это действие создает новое или повторно использует существующее приложение Microsoft Entra для бота.
Какой ресурс он использует
Microsoft Entra ID в клиенте Microsoft 365.
Как использовать эту возможность
- 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
Что это такое
Это действие развертывает шаблоны ARM параллельно.
Какой ресурс он использует
Azure подписка.
Как использовать эту возможность
- 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. Agents 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
Что это такое
Это действие включает параметр статического веб-сайта в хранилище Azure.
Какой ресурс он использует
хранилище Azure.
Как использовать эту возможность
- 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
Что это такое
Это действие извлекает маркер развертывания из Статические веб-приложения Azure.
Сведения о версии
версия 1.4
Какой ресурс он использует
Статические веб-приложения Azure.
Как использовать эту возможность
- uses: azureStaticWebApps/getDeploymentToken
with:
resourceId: ${{AZURE_STATIC_WEB_APPS_RESOURCE_ID}}
writeToEnvironmentFile:
deploymentToken: SECRET_TAB_SWA_DEPLOYMENT_TOKEN
Сценарий
Что это такое
Это действие выполняет определяемый пользователем скрипт.
Какой ресурс он использует
Н/Д
Как использовать эту возможность
- 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>
Настройка подготовки ресурсов
Шаги подготовки m365agents.yml определяются в файле в свойстве provision . Вы можете добавлять, удалять или обновлять действия в свойстве provision , чтобы определить ожидаемые действия, которые необходимо выполнить во время подготовки.
Ссылочные переменные среды в файлах параметров
Agents Toolkit поддерживает ссылки на значения из переменных среды в m365agents.yml, манифесте приложения, Microsoft Entra манифесте приложения и файлах параметров Azure. Для ссылки на переменные среды можно использовать синтаксис ${{ENV_VARIABLE_NAME}} .
В следующем примере задается значение переменной MY_AZURE_SUBSCRIPTION_IDsubscriptionIdсреды :
subscriptionId: ${{MY_AZURE_SUBSCRIPTION_ID}}
Настройка файлов шаблонов ARM
Если стандартные шаблоны не соответствуют требованиям приложения, вы можете создать собственный шаблон ARM или обновить существующий шаблон ARM и указать путь к arm/deploy действию, как показано в следующем шаблоне:
- 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>
Действие arm/deploy поддерживает шаблоны ARM, написанные в формате bicep и json. Если используется формат JSON, параметр можно опустить bicepCliVersion . Необходимо иметь базовые знания о Azure Resource Manager. Вы можете приступить к работе с Azure Resource Manager Azure Resource Manager документации.
Настройка приложений Teams
Вы можете настроить бота или приложение Teams, добавив переменные среды, чтобы использовать приложение Microsoft Entra, созданное вами. Ниже приведены способы настройки приложения Teams.
- Использование существующего приложения Microsoft Entra для приложения Teams
- Использование существующего приложения Microsoft Entra для бота
Использование существующего приложения Microsoft Entra для приложения Teams
Чтобы использовать приложение Microsoft Entra, созданное для приложения Teams, можно выполнить действия по добавлению переменных среды в env-файлы. Если у вас еще нет приложения Microsoft Entra или оно у вас уже есть, но вы не знаете, где найти правильное значение, ознакомьтесь с тем, как использовать существующее приложение Microsoft Entra в проекте TeamsFx.
Откройте
m365agents.ymlи найдитеaadApp/createдействие.Найдите имена переменных среды, в которые хранятся сведения для приложения Microsoft Entra, в свойстве
writeToEnvironmentFile. По умолчаниюwriteToenvironmentFileпри создании проектов с помощью набора средств агентов используется следующее определение: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Добавьте значения для каждой переменной среды из шага 2.
Добавьте следующие переменные среды и их значения в
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Если приложению требуется секрет клиента приложения Microsoft Entra, добавьте следующую переменную среды и ее значение в
env\.env.{env}.userфайл.SECRET_AAD_APP_CLIENT_SECRET=<value of Microsoft Entra application's client secret>
Примечание.
- Не забудьте обновить имена переменных среды в примерах, если вы используете другие имена в
writeToEnvironmentFile. - Если вы не используете
aadApp/createдействие для создания Microsoft Entra приложения, вы можете добавить необходимые переменные среды с предпочитаемым именем, не выполнив описанных выше действий. - Не предоставлять общий доступ к одному и тому же приложению Microsoft Entra в нескольких средах.
Использование существующего приложения Microsoft Entra для бота
Чтобы использовать приложение Microsoft Entra, созданное для приложения Teams, можно выполнить действия по добавлению переменных среды в env-файлы. Если у вас еще нет Microsoft Entra приложения для бота или оно у вас уже есть, но вы не знаете, где найти правильные значения, см. статью Использование существующего приложения Microsoft Entra в проекте TeamsFx.
Откройте
m365agents.ymlи найдитеbotAadApp/createдействие.Найдите имена переменных среды, в которые хранятся сведения для приложения Microsoft Entra, в свойстве
writeToEnvironmentFile. По умолчаниюwriteToEnvironmentFileпри создании проектов с помощью набора средств агентов используется следующее определение:writeToEnvironmentFile: botId: BOT_ID botPassword: SECRET_BOT_PASSWORDДобавьте значения для каждой переменной среды из шага 2.
Добавьте следующую переменную среды и ее значение в
env\.env.{env}файл.BOT_ID=<value of Microsoft Entra application's client id (application id)> # example: 00000000-0000-0000-0000-000000000000Добавьте следующую переменную среды и ее значение в
env\.env.{env}.userфайл.SECRET_BOT_PASSWORD=<value of Microsoft Entra application's client secret>
Примечание.
- Не забудьте обновить имена переменных среды в примерах, если вы используете другие имена в
writeToEnvironmentFile. - Если вы не используете
botAadApp/createдействие для создания Microsoft Entra приложения, вы можете добавить необходимые переменные среды с предпочитаемым именем, не выполнив описанных выше действий. - Не предоставлять общий доступ к одному и тому же приложению Microsoft Entra в нескольких средах.
Дополнительные ресурсы
Platform Docs