使用Azure CLI ZIP方式部署函数应用持续失败求助
问题描述
执行以下Azure CLI命令部署代码时持续失败:
az functionapp deployment source config-zip --name abc --resource-group rg1 --src c:\code\testcode.zip
错误输出如下:
Setting SCM_DO_BUILD_DURING_DEPLOYMENT to false
Waiting SCM site to be updated with the latest app settings
Getting scm site credentials for zip deployment
Starting zip deployment. This operation can take a while to complete ...
Deployment endpoint responded with status code 202
Configuring default logging for the app, if not already enabled
Zip deployment failed. {'id': 'xxxxx-55a9-xxxxx-8651-xxxxxxxe99', 'status': 3, 'status_text': '', 'author_email': 'N/A', 'author': 'N/A', 'deployer': 'Push-Deployer', 'message': 'Created via a push deployment', 'progress': '', 'received_time': '2023-08-07T07:11:13.5364686Z', 'start_time': '2023-08-07T07:11:14.8684051Z', 'end_time': '2023-08-07T07:11:15.8114324Z', 'last_success_end_time': None, 'complete': True, 'active': False, 'is_temp': False, 'is_readonly': True, 'url': 'https://test-eus-func-data-hooks.scm.azurewebsites.net/api/deployments/latest', 'log_url': 'https://test-eus-func-data-hooks.scm.azurewebsites.net/api/deployments/latest/log', 'site_name': 'test-eus-func-data-hooks.scm.azurewebsites.net'}. Please run the command az webapp log deployment show -n test-eus-func-data-hooks.scm.azurewebsites.net -g test-eus-func-data-hooks.scm.azurewebsites.net*
排查与解决步骤
1. 获取详细错误日志
原提示中的命令参数有误,执行修正后的命令获取具体失败原因:
az webapp log deployment show -n abc -g rg1
也可直接访问错误信息中的log_url地址查看部署日志,日志里会明确指出失败的核心问题(如代码依赖缺失、Zip包结构错误、权限问题等)。
2. 检查Zip包结构
- 确保Zip包根目录直接包含函数应用核心文件(如
host.json、函数文件夹等),不要嵌套额外的文件夹层级。 - 剔除不必要的文件(如
node_modules、本地虚拟环境目录、临时文件等),避免部署超时或文件冲突。
3. 调整构建设置
当前部署关闭了构建开关(SCM_DO_BUILD_DURING_DEPLOYMENT=false),如果你的代码需要编译/构建(如.NET、Python项目),先启用构建:
az functionapp config appsettings set --name abc --resource-group rg1 --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
之后重新执行部署命令。
4. 验证资源名称正确性
确认命令中的--name abc(函数应用名称)和--resource-group rg1(资源组名称)与Azure门户中的信息完全一致,避免拼写错误。
5. 检查函数应用状态
- 登录Azure门户,确认函数应用处于运行中状态,未被停止或禁用。
- 查看「部署中心」,确认无其他正在进行的部署任务导致冲突。
6. 重置部署凭据
若怀疑是权限问题,重置SCM部署凭据后重试:
az functionapp deployment user set --user-name <你的部署用户名> --password <你的部署密码>
内容的提问来源于stack exchange,提问作者kiran jan

