You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Bicep通过MSDeploy部署Azure Function时遇Zip包加载错误求助

问题排查:Azure FunctionApp MSDeploy部署Zip包失败

问题背景

通过Bicep成功部署Azure FunctionApp后,从已创建的FunctionApp中点击「Download app content」获取内容并打包为Zip文件,上传至Git仓库,随后通过Bicep的MSDeploy扩展尝试部署该Zip包时出现部署失败。

相关Bicep代码

Zip包URI定义

var funcPackageUri = 'https://github.com/<repoorg>/<reponame>/raw/main/<foldername>/funcapp-deploy.zip'

MSDeploy部署资源

resource funcAppDeploy 'Microsoft.Web/sites/extensions@2020-12-01' = {
  parent: funcApp
  name: 'MSDeploy'
  properties: {
    packageUri: funcPackageUri
  }
}

错误信息

{"code":"Failed","message":"ARM-MSDeploy Deploy Failed:
'Microsoft.Web.Deployment.DeploymentDetailedException: Object of type
'package' and path
'C:\local\Temp\f5e1b1e4-1a43-4567-95d7-d4ae670fd17f.zip' cannot be
created. Learn more at:
http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_EXCEPTION_WHILE_CREATING_OBJECT.
---> Microsoft.Web.Deployment.DeploymentException: The Zip package 'C:\local\Temp\f5e1b1e4-1a43-4567-95d7-d4ae670fd17f.zip' could not be
loaded. ---> System.IO.EndOfStreamException: Unable to read beyond the
end of the stream.\r\n at System.IO.BinaryReader.FillBuffer(Int32
numBytes)\r\n at System.IO.BinaryReader.ReadInt32()\r\n at
Microsoft.Web.Deployment.ZipFile.Load()\r\n at
Microsoft.Web.Deployment.ZipPackageProvider..ctor(DeploymentProviderContext
providerContext, DeploymentBaseContext baseContext, String path)\r\n
--- End of inner exception stack trace ---\r\n at Microsoft.Web.Deployment.ZipPackageProvider.GetAttributes(DeploymentAddAttributeContext
addContext)\r\n at
Microsoft.Web.Deployment.DeploymentObject.EnsureValidAttributes()\r\n
--- End of inner exception stack trace ---\r\n at Microsoft.Web.Deployment.DeploymentManager.CreateObjectPrivate(DeploymentProviderContext
providerContext, DeploymentBaseOptions baseOptions, DeploymentObject
sourceObject, String serverVersion)\r\n at
Microsoft.Web.Deployment.DeploymentManager.CreateObject(DeploymentProviderOptions
providerOptions, DeploymentBaseOptions baseOptions)\r\n at
Microsoft.Web.Deployment.DeploymentManager.CreateObject(String
provider, String path, DeploymentBaseOptions baseOptions)\r\n at
Microsoft.Web.Deployment.DeploymentManager.CreateObject(DeploymentWellKnownProvider
provider, String path, DeploymentBaseOptions baseOptions)\r\n at
Microsoft.Web.Deployment.WebApi.AppGalleryPackage.Deploy(String
deploymentSite, String siteSlotId, Boolean doNotDelete) in
C:__w\1\s\src\hosting\wdeploy\Microsoft.Web.Deployment.WebApi\AppGalleryPackage.cs:line
250\r\n at
Microsoft.Web.Deployment.WebApi.DeploymentController.d__25.MoveNext()
in
C:__w\1\s\src\hosting\wdeploy\Microsoft.Web.Deployment.WebApi\Controllers\DeploymentController.cs:line
492'"}

排查方向

  • Zip包完整性问题:错误提示「无法读取流末尾」,说明下载到临时目录的Zip文件已损坏。可以手动从Git仓库下载该Zip包,本地尝试解压验证是否正常;若解压失败,说明打包或上传过程中文件已损坏,需重新打包上传。
  • Git Raw链接权限问题:如果Git仓库是私有仓库,直接使用Raw链接无法获取到实际的Zip文件,返回的是HTML登录页面,导致MSDeploy解析失败。需生成带访问令牌的Raw链接,或临时将仓库设为公开进行测试。
  • Zip包目录结构问题:从FunctionApp下载的内容打包时,需确保内容直接位于Zip根目录,而非嵌套在一层子文件夹中。MSDeploy要求Zip包解压后,应用文件能直接对应FunctionApp的目录结构,否则会导致部署解析异常。
  • 打包工具兼容性问题:部分打包工具可能因编码或压缩格式问题导致Zip文件损坏,建议使用系统原生压缩工具(如Windows的「发送到压缩文件夹」)重新打包FunctionApp内容。

内容的提问来源于stack exchange,提问作者ValeriaN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 03:52:09