使用 Microsoft Visual Studio Code 将 Microsoft Teams 应用部署到云

Microsoft Teams 工具包有助于将应用中的前端和后端代码部署或上传到 Azure 中预配的云资源。

可以部署到以下类型的云资源:

  • Azure 应用服务
  • Azure Functions
  • Azure 存储 (为静态网站)
  • SharePoint

注意

在将应用代码部署到 Azure 云之前,需要成功完成 云资源的预配

使用 Teams 工具包部署 Teams 应用

入门指南有助于使用 Teams 工具包进行部署。 可以使用以下命令部署 Teams 应用:

登录到 Azure 帐户

使用此帐户访问 Microsoft Azure 门户并预配新的云资源以支持你的应用。 在将应用部署到Azure 应用服务、Azure Functions或 Azure 存储之前,必须登录到 Azure 帐户。

  1. 打开 Visual Studio Code。

  2. 打开在其中创建应用的项目文件夹。

  3. 选择边栏中的“Teams 工具包”图标。

  4. 选择“ 登录到 Azure”。

    提示

    如果已安装 Azure 帐户扩展并使用相同的帐户,则可以跳过此步骤。 使用与其他扩展中使用的帐户相同的帐户。

    此时会打开默认 Web 浏览器,以便登录帐户。

  5. 使用凭据登录到 Azure 帐户。

  6. 出现提示时关闭浏览器并返回到Visual Studio Code。

边栏的“帐户”部分分别显示这两个帐户。 它还列出了可用的 Azure 订阅数。 确保至少有一个可用的 Azure 订阅可用。 如果没有,请注销并使用其他帐户。

现在可以将应用部署到 Azure 了!

恭喜,你已创建 Teams 应用! 现在,让我们继续了解如何使用 Teams 工具包将其中一个应用部署到 Azure。

部署到 Azure

  1. 从左窗格中的“生命周期”部分选择“部署”。

    显示“部署”选项的屏幕截图。

  2. 选择环境。 (如果只有一个环境,则跳过此步骤。)

  3. 选择“部署”

    显示选择“在Visual Studio Code下部署”的屏幕截图。

  4. 选择边栏中的“Teams 工具包”图标。

在 Teams 中自定义部署生命周期

若要自定义部署过程,可以在“teamsapp.yml”中编辑部署部分。

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

示例

  - uses: cli/runNpxCommand
    with:
      workingDirectory: ./src
      args: gulp package-solution --ship --no-color

参数

参数 说明 必需 默认值
workingDirectory 表示要在其中运行命令的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory。 项目根
args 命令参数

azureAppService/zipDeploy

示例

  - uses: azureAppService/zipDeploy
    with:
      workingDirectory: ./src
      artifactFolder: .
      ignoreFile: ./.webappignore
      resourceId: ${{BOT_AZURE_APP_SERVICE_RESOURCE_ID}}
      dryRun: false
      outputZipFile: ./.deployment/deployment.zip

参数

参数 说明 必需 默认值
workingDirectory 表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于项目根目录。 项目根
artifactFolder 表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory。
ignoreFile 指定上传期间使用的 ignoreFile 的文件路径。 此文件可用于从 artifactFolder 中排除某些文件或文件夹。 其语法类似于 Git 的忽略。
resourceId 指示Azure 应用服务的资源 ID。 它在运行预配命令后自动生成。 如果已有Azure 应用服务,则可以找到其资源 ID
dryRun 如果只想测试上传的准备,但不打算部署它,则可以将 dryRun 参数设置为 true。 这有助于验证打包 zip 文件是否正确。 false
outputZipFile 指示打包的项目文件夹的 zip 文件的路径。 它相对于 workingDirectory。 此文件在部署期间重新构造,反映 artifactFolder 中的所有文件夹和文件,并删除所有不存在的文件或文件夹。 ./.deployment/deployment.zip

azureFunctions/zipDeploy

此操作使用 zip 部署功能上传项目并将其部署到Azure Functions。

示例

  - uses: azureFunctions/zipDeploy
    with:
      workingDirectory: ./src
      artifactFolder: .
      ignoreFile: ./.webappignore
      resourceId: ${{BOT_AZURE_APP_SERVICE_RESOURCE_ID}}
      dryRun: false
      outputZipFile: ./.deployment/deployment.zip

参数

参数 说明 必需 默认值
workingDirectory 表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于项目根目录。 项目根
artifactFolder 表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory。
ignoreFile 指定上传期间使用的 ignoreFile 的文件路径。 此文件可用于从 artifactFolder 中排除某些文件或文件夹。 其语法类似于 Git 的忽略。
resourceId 指示Azure Functions的资源 ID。 它在运行预配命令后自动生成。 如果已有Azure Functions,可以在Azure 门户中找到其资源 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 表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于项目根目录。 项目根
artifactFolder 表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory。
ignoreFile 指定上传期间使用的 ignoreFile 的文件路径。 此文件可用于从 artifactFolder 中排除某些文件或文件夹。 其语法类似于 Git 的忽略。
resourceId 指示Azure Functions的资源 ID。 它在运行预配命令后自动生成。 如果已有Azure Functions,可以在Azure 门户中找到其资源 ID

azureStorage/deploy

此操作会将项目上传并部署到 Azure 存储。

示例

  - uses: azureStorage/deploy
    with:
      workingDirectory: ./src
      artifactFolder: .
      ignoreFile: ./.webappignore
      resourceId: ${{BOT_AZURE_APP_SERVICE_RESOURCE_ID}} 

参数

参数 说明 必需 默认值
workingDirectory 表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于项目根目录。 项目根
artifactFolder 表示要在其中上传项目的文件夹。 如果输入值是相对路径,则该值相对于 workingDirectory。
ignoreFile 指定上传期间使用的 ignoreFile 的文件路径。 此文件可用于从 artifactFolder 中排除某些文件或文件夹。 其语法类似于 Git 的忽略。
resourceId 指示Azure Functions的资源 ID。 它在运行预配命令后自动生成。 如果已有Azure Functions,可以在Azure 门户中找到其资源 ID

spfx/deploy

此操作上传生成的 sppkg 并将其部署到 SharePoint 应用程序目录。 如果当前 M365 租户中没有租户目录,可以手动创建租户应用目录,或者通过将 createAppCatalogIfNotExist 设置为 true 来创建租户应用目录。

示例

- uses: spfx/deploy
    with:
      createAppCatalogIfNotExist: false
      packageSolutionPath: ./src/config/package-solution.json

参数

参数 说明 必需 默认值
createAppCatalogIfNotExist 如果值为 true,则此操作将首先创建租户应用目录(如果不存在)。 False
packageSolutionPath SPFx 项目中package-solution.json的路径。 此操作遵循获取目标 sppkg 的配置。

另请参阅