使用 Microsoft Visual Studio 将 Microsoft Teams 应用部署到云
Teams 工具包有助于将应用中的前端和后端代码部署或上传到 Azure 中的预配云资源。
可以将 Teams 应用部署到以下云资源:
- Azure 应用服务
- Azure Functions
- Azure 存储 (为静态网站)
- SharePoint
注意
在将应用代码部署到 Azure 云之前,需要完成云资源的预配。
若要使用 Microsoft Teams 工具包部署 Teams 应用,请执行以下步骤:
打开 Visual Studio。
选择“ 创建新项目 ”或从列表中打开现有项目。
选择“项目>Teams 工具包>部署到云”。
在显示的弹出窗口中,选择“ 部署”。
应用将部署到 Azure 云。
使用 Visual Studio 在 Teams 中自定义部署生命周期
若要自定义部署过程,可以编辑 文件中的teamsapp.yml
以下deploy
部分:
- cli/runNpmCommand
- cli/runDotnetCommand
- cli/runNpxCommand
- azureAppService/zipDeploy
- azureFunctions/zipDeploy
- azureStorage/deploy
cli/runNpmCommand
此操作使用 npm
参数在指定目录下执行命令。
示例
- uses: cli/runNpmCommand
with:
workingDirectory: ./src
args: install
参数
参数 | 说明 | 必需 | 默认值 |
---|---|---|---|
workingDirectory |
表示要在其中运行命令的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory 。 |
否 | 项目根 |
args |
命令参数 | 是 | 不适用 |
cli/runDotnetCommand
此操作使用 dotnet
参数在指定目录下执行命令。
示例
- uses: cli/runDotnetCommand
with:
workingDirectory: ./src
execPath: /YOU_DOTNET_INSTALL_PATH
args: publish --configuration Release --runtime win-x86 --self-contained
参数
参数 | 说明 | 必需 | 默认值 |
---|---|---|---|
workingDirectory |
表示要在其中运行命令的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory 。 |
否 | 项目根 |
args |
npm 命令参数 | 是 | 不适用 |
execPath |
执行程序路径 | 否 | 系统路径 |
cli/runNpxCommand
此操作使用 npx
参数在指定目录下执行命令。 可以使用它来运行 gulp
用于捆绑和打包 sppkg 的命令。
示例
- uses: cli/runNpxCommand
with:
workingDirectory: ./src
args: gulp package-solution --ship --no-color
参数
参数 | 说明 | 必需 | 默认值 |
---|---|---|---|
workingDirectory |
表示要在其中运行命令的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory 。 |
否 | 项目根 |
args |
命令参数 | 是 | 不适用 |
azureAppService/zipDeploy
此操作使用 zip 部署功能将项目上传并部署到 Azure 应用服务。
示例
- uses: azureAppService/zipDeploy
with:
workingDirectory: ./src
artifactFolder: .
ignoreFile: ./.webappignore
resourceId: ${{BOT_AZURE_APP_SERVICE_RESOURCE_ID}}
dryRun: false
outputZipFile: ./.deployment/deployment.zip
参数
参数 | 说明 | 必需 | 默认值 |
---|---|---|---|
workingDirectory |
表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory 。 |
否 | 项目根 |
artifactFolder |
表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory 。 |
是 | 不适用 |
ignoreFile |
指定上传期间使用的忽略文件的文件路径。 可以利用此文件从 artifactFolder 中排除某些文件或文件夹。 其语法类似于 Git 的忽略。 | 否 | 空 |
resourceId |
指示 Azure 应用服务的资源 ID。 它在运行预配命令后自动生成。 如果已有 Azure 应用服务,可以在 Azure 门户中找到其资源 ID。 有关详细信息,请参阅 如何查找资源 ID。 | 是 | 不适用 |
dryRun |
如果只想测试上传的准备,但不打算部署它,则可以将 dryRun 参数设置为 true。 这有助于验证打包 zip 文件是否正确。 | 否 | false |
outputZipFile |
指示打包的项目文件夹的 zip 文件的路径。 它相对于 workingDirectory。 在部署期间,它会重新构造此文件以反映 中的所有 artifactFolder 文件夹和文件,并删除所有不存在的文件或文件夹。 |
否 | ./.deployment/deployment.zip |
azureFunctions/zipDeploy
此操作使用 上传项目并将其部署到 Azure Functions。 有关详细信息,请参阅 zip 部署功能。
示例
- uses: azureFunctions/zipDeploy
with:
workingDirectory: ./src
artifactFolder: .
ignoreFile: ./.webappignore
resourceId: ${{BOT_AZURE_APP_SERVICE_RESOURCE_ID}}
dryRun: false
outputZipFile: ./.deployment/deployment.zip
参数
参数 | 说明 | 必需 | 默认值 |
---|---|---|---|
workingDirectory |
表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory 。 |
否 | 项目根 |
artifactFolder |
表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory 。 |
是 | 不适用 |
ignoreFile |
指定上传期间使用的忽略文件的文件路径。 可以利用此文件从 artifactFolder 中排除某些文件或文件夹。 其语法类似于 Git 的忽略。 | 否 | 空 |
resourceId |
指示 Azure Functions 的资源 ID。 它在运行预配命令后自动生成。 如果已有 Azure Functions,可以在 Azure 门户中找到其资源 ID。 有关详细信息,请参阅 如何查找资源 ID。 | 是 | 不适用 |
dryRun |
如果只想测试上传的准备,但不打算部署它,则可以将 dryRun 参数设置为 true。 这有助于验证打包 zip 文件是否正确。 | 否 | false |
outputZipFile |
指示打包的项目文件夹的 zip 文件的路径。 它相对于 workingDirectory。 在部署期间,它会重新构造此文件,反映 中的所有 artifactFolder 文件夹和文件,并删除所有不存在的文件或文件夹。 |
否 | ./.deployment/deployment.zip |
azureStorage/deploy
此操作会将项目上传并部署到 Azure 存储。
示例
- uses: azureStorage/deploy
with:
workingDirectory: ./src
artifactFolder: .
ignoreFile: ./.webappignore
resourceId: ${{BOT_AZURE_APP_SERVICE_RESOURCE_ID}}
参数
参数 | 说明 | 必需 | 默认值 |
---|---|---|---|
workingDirectory |
表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory。 | 否 | 项目根 |
artifactFolder |
表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory 。 |
是 | 不适用 |
ignoreFile |
指定上传期间使用的忽略文件的文件路径。 可以利用此文件从 artifactFolder 中排除某些文件或文件夹。 其语法类似于 Git 的忽略。 |
否 | 空 |
resourceId |
指示 Azure 存储的资源 ID。 它在运行预配命令后自动生成。 如果已有 Azure 存储,可以在 Azure 门户中找到其资源 ID, (请参阅 此链接 ,了解) 的详细信息。 | 是 | NA |