使用Azure Blob存储URL部署Web应用失败求助
问题:使用Azure Blob存储URL部署Web应用失败(OneDeploy错误)
我通过PowerShell执行az webapp deploy命令时,使用--src-url参数引用Azure Blob存储中的ZIP包部署Web应用失败,返回OneDeploy相关错误;但使用--src-path参数部署本地同一个ZIP包则可成功。部署日志无有效排查信息,请求协助解决。
尝试的命令
使用Blob URL的命令(执行失败)
命令模板:
$outputAzWebappDeploy = az webapp deploy --resource-group $rgName --name $webAppName --src-url $srcUrl --type zip --clean true --async true --timeout $timoutMillisecs
实际执行命令:
az webapp deploy --resource-group MYRG --name myapp --src-url "https://ourstuff.blob.core.windows.net/ourblobs/OurPackages/MYPACKAGE.zip" --type zip --clean true --async true --timeout 720000
使用本地包的命令(执行成功)
$outputAzWebappDeploy = az webapp deploy --resource-group $rgName --name $webAppName --src-path $packagePath --type zip --clean true --async true --timeout $timoutMillisecs
返回的错误信息
第一次错误返回:
This command is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus Configuring default logging for the app, if not already enabled Zip deployment failed. {'id': 'temp-627fa3b6', 'status': 3, 'status_text': '', 'author_email': 'N/A', 'author': 'N/A', 'deployer': 'OneDeploy', 'message': 'OneDeploy', 'progress': '', 'received_time': '2023-11-02T14:23:15.2025564Z', 'start_time': '2023-11-02T14:23:15.2025564Z', 'end_time': '2023-11-02T14:23:15.3432141Z', 'last_success_end_time': None, 'complete': True, 'active': False, 'is_temp': True, 'is_readonly': False, 'url': 'https://myapp.scm.azurewebsites.net/api/deployments/latest', 'log_url': 'https://myapp.scm.azurewebsites.net/api/deployments/latest/log', 'site_name': 'myapp', 'provisioningState': 'Failed'}. Please run the command az webapp log deployment show -n myapp-g myrg
第二次错误返回:
{ 'id': 'temp-12345678', 'status': 3, 'status_text': '', 'author_email': 'N/A', 'author': 'N/A', 'deployer': 'OneDeploy', 'message': 'OneDeploy', 'progress': '', 'received_time': '2023-11-02T13:19:39.8080042Z', 'start_time': '2023-11-02T13:19:39.8080042Z', 'end_time': '2023-11-02T13:19:40.0111335Z', 'last_success_end_time': None, 'complete': True, 'active': False, 'is_temp': True, 'is_readonly': False, 'url': 'https://myapp.scm.azurewebsites.net/api/deployments/latest', 'log_url': 'https://myapp.scm.azurewebsites.net/api/deployments/latest/log', 'site_name': 'myapp', 'provisioningState': 'Failed' }
注:访问返回的
log_url未获取到有效排查信息
排查及解决步骤
- 检查Blob存储访问权限:
若Blob为私有存储,需确保Web应用有权限读取该Blob。可给Web应用的系统分配/用户分配托管标识添加Storage Blob Data Reader角色;不推荐生产环境设置Blob为公共访问。 - 使用SAS URL替代原始Blob URL:
生成带读取权限、有效期覆盖部署时段的SAS(共享访问签名)URL,替换--src-url中的原始地址,确保部署服务能正常访问Blob。 - 验证Blob URL有效性:
在本地用Invoke-WebRequest命令测试Blob URL是否能正常下载ZIP包,确认地址无拼写错误、Blob未被删除或过期。 - 禁用异步部署排查:
暂时移除--async true参数执行同步部署,查看是否能获取更详细的错误输出。 - 检查OneDeploy配置:
登录Azure门户进入Web应用的部署中心,查看OneDeploy相关配置及日志,确认是否存在部署限制或配置异常。
内容的提问来源于stack exchange,提问作者judek
相关产品推荐
相关产品推荐

