在部署到 Azure 应用服务之前,我是否必须压缩工件?

问题描述

我目前正在完成创建 CI 开发管道并参考以下文档

参考资料都表明,工件首先被压缩,发布,然后部署。

但是,项目开发人员告诉我,在 .NET 构建之后,他只是将生成的 AngularOutput 工件复制/部署到 Azure 应用服务。

我使用存档任务以这种方式对其进行了测试,然后发布,并且 CI 管道运行良好。但是,我也测试了直接发布而不事先存档,并将路径更改为 \Bundles\AngularOutput,并且发布步骤成功并显示发布的工件

replaced

artifacts published

那么问题是,如果发布没有先压缩/存档就可以工作,那么我可以在工件发布后直接部署吗?如果是,需要为 Azure App Service Deploy task: Package/Folder 指定什么?

pipeline snapshot

如果需要/推荐归档任务,那没问题,但这是否意味着 Azure 应用服务部署会自动提取压缩后的工件?

解决方法

首先,是的,您可以发布您的工件,而无需将它们作为工件实际发布到管道上。但是,如果您在管道上发布它们并且构建和发布管道是分开的,您可以重新部署而无需重新构建您的应用。

此外,如果需要,您可以随时下载工件并手动发布。 (例如某些开发/调试目的)。

Zip deploy方法

enter image description here

这里使用的是

创建所选包或文件夹的 .zip 部署包,并将文件内容部署到 Azure 中应用服务名称函数应用的 wwwroot 文件夹。此选项会覆盖 wwwroot 文件夹中的所有现有内容。有关详细信息,请参阅 Azure Functions 的 Zip 部署。

因此,如果您需要从构建管道中部署它,您只需将路径放置到您的 zip 文件或内容所在的文件夹文件中。

并且请考虑在 multi stage pipeline 中您可以在各个阶段之间分离构建和部署阶段。但是,在这种情况下,您需要将工件发布为管道工件。此管道工件将在 deployment job 自动下载。