更新映像并自动重新部署 Web 应用

已完成

对于许多快速发展的组织来说,持续部署是一项主要功能。 他们需要方便快捷地部署其最新版本的软件。

在示例场景中,开发团队定期向 Web 应用添加新功能和增强功能。 出于此原因,团队已决定采用持续部署方法。

在本单元中,你将配置使用 Azure 容器注册表中的映像的 Web 应用的持续部署。

什么是 Webhook?

Azure 应用服务支持使用 Webhook 进行持续部署。 Webhook 是由容器注册表提供的一项服务。 服务和应用程序可以订阅 Webhook 以接收有关注册表中的映像更新的通知。 使用应用服务的 Web 应用可以订阅容器注册表 Webhook,以接收有关包含 Web 应用的映像更新的通知。 更新映像且应用服务收到通知后,应用将自动重启站点并拉取最新版本的映像。

Azure 容器注册表任务的功能是什么?

使用容器注册表的任务功能,可在每次源代码发生更改时自动重新生成映像。 配置容器注册表任务,用于监视包含代码的 GitHub 存储库,并在该库每次发生更改时触发生成。 如果生成成功完成,则容器注册表可以将映像存储在存储库中。 如果将 Web 应用设置为在应用服务中持续集成,则该应用将通过 Webhook 接收通知并更新应用。

让我们使用这两种功能从应用服务启用持续集成。

从应用服务启用持续集成

Azure 门户中的应用服务资源的“容器设置”页会自动设置持续集成。 如果启用“持续部署”,则应用服务会在容器注册表中配置 Webhook 以通知应用服务终结点。 来自注册表且到达此终结点的通知将导致应用重启并拉取最新版本的容器映像。

通过使用 Azure 容器注册表任务将持续集成扩展到源代码管理

必须从命令行创建容器注册表任务。 与之前用于生成映像的 az acr build 命令不同,az acr task create 命令可用于创建并注册长期任务。

以下命令演示如何创建名为“buildwebapp”的任务。 该任务监视本模块使用的示例 Web 应用的 GitHub 存储库。 每次提交更改时,任务都会从 GitHub 中的源代码生成 webimage Docker 映像,并将其存储到容器注册表中的注册表。 运行此命令之前,需要创建有权在存储库中创建 Webhook 的 GitHub 个人访问令牌。 对于专用存储库,该令牌还需要完整的存储库读取权限。

az acr task create --registry <container_registry_name> --name buildwebapp --image webimage --context https://github.com/MicrosoftDocs/mslearn-deploy-run-container-app-service.git --file Dockerfile --git-access-token <access_token>