持续部署到 Azure 应用服务

注意

从 2024 年 6 月 1 日开始,所有新创建的应用服务应用都可以选择生成唯一的默认主机名,命名约定为 <app-name>-<random-hash>.<region>.chinacloudsites.cn。 现有应用名称将保持不变。

示例: myapp-ds27dh7271aah175.westus-01.chinacloudsites.cn

Azure 应用服务可以通过拉取最新的更新,来使你能够通过 GitHubBitBucketAzure Repos 存储库执行持续部署。

准备存储库

若要从 Azure 应用服务生成服务器获取自动生成,请确保项目中存储库根路径具有正确的文件。

运行时 根目录文件
ASP.NET(仅限 Windows) \*.sln\*.csprojdefault.aspx
ASP.NET Core \*.sln\*.csproj
PHP index.php
Ruby(仅限 Linux) Gemfile
Node.js server.js、app.js 或具有启动脚本的 package.json
Python *.py、requirements.txt 或 runtime.txt
HTML default.htm、default.html、default.asp、index.htm、index.html 或 iisstart.htm
Web 作业 App_Data/jobs/continuous(适用于连续的 WebJobs)或 App_Data/jobs/triggered(适用于触发的 WebJobs)下的 job_name/run.extension。 有关详细信息,请参阅 Kudu WebJobs 文档

要自定义部署,可以在存储库根路径中添加 .deployment 文件。 有关详细信息,请参阅自定义部署自定义部署脚本

注意

如果在 Visual Studio 中进行开发,让 Visual Studio 创建存储库。 该项目可立即通过 Git 进行部署。

配置部署源

  1. Azure 门户中,转到应用服务应用的管理页面。

  2. 从左窗格中,选择“部署中心”。 然后选择“设置”。

  3. 在“部署源”方框中,选择 CI/CD 选项之一:

    显示如何选择部署源的屏幕截图。

选择与生成提供程序对应的选项卡以继续。

禁用持续部署

  1. Azure 门户中,转到应用服务应用的管理页面。

  2. 从左窗格中,选择“部署中心”。 然后选择“设置”>“断开连接”:

    显示如何在 Azure 门户中断开 Cloud Folder Sync 与应用服务应用之间的连接的屏幕截图。

  3. 默认情况下,GitHub Actions 工作流文件保留在你的存储库中,但会持续触发向你的应用进行部署。 若要从存储库中删除文件,请选择“删除工作流文件”。

  4. 选择“确定”

生成提供程序有哪些?

你可能会看到一些可供选择的生成提供程序选项,具体取决于部署中心内的部署源。 生成提供程序通过自动完成生成、测试和部署来帮助你使用 Azure 应用服务生成 CI/CD 解决方案。

你不受限于部署中心内的生成提供程序选项,但应用服务可让你快速设置它们并提供一些集成的部署日志记录体验。

GitHub Actions 生成提供程序仅适用于 GitHub 部署。 从应用的部署中心进行配置时,它会完成以下操作来设置 CI/CD:

  • 将 GitHub Actions 工作流文件存储到 GitHub 存储库中,以便处理目标为应用服务的生成和部署任务。
  • 对于基本身份验证,请添加应用的发布配置文件作为 GitHub 机密。 工作流文件使用此机密通过应用服务进行身份验证。
  • 对于用户分配的标识,请参阅用户分配的标识选项对 GitHub Actions 有何用途?
  • 捕获工作流运行日志中的信息,并在“部署中心”的“日志”选项卡中显示这些信息

可以通过以下方式自定义 GitHub Actions 生成提供程序:

  • 在 GitHub 存储库中生成工作流文件后,对该工作流文件进行自定义。 有关详细信息,请参阅 GitHub Actions 的工作流语法。 只需确保工作流通过 azure/webapps-deploy 操作部署到应用服务。
  • 如果所选分支受保护,则仍可在不保存配置的情况下预览工作流文件,然后将其手动添加到存储库中。 此方法不提供与 Azure 门户集成日志。
  • 还可以使用 Microsoft Entra ID 中的服务主体进行部署,而不使用基本身份验证或用户分配的标识。 无法在门户中配置此项。