使用az webapp deploy部署时如何仅清理目标指定文件夹?
仅清理Azure Web App部署目标文件夹的方法
当前az webapp deploy的--clean true参数会清理整个应用根目录,无法仅针对指定--target-path清理。要实现只清空目标文件夹再部署,可分两步操作:
方法一:通过SSH直接删除目标文件夹内容
利用Azure Web App的SSH功能,先执行文件删除命令,再进行部署:
清理目标文件夹:
# Linux环境Web App az webapp ssh --resource-group $(ResourceGroup) --name $(AppName) --command "rm -rf /home/site/wwwroot/Document_Path/*"如果是Windows环境Web App,改用PowerShell命令:
az webapp ssh --resource-group $(ResourceGroup) --name $(AppName) --command "Remove-Item -Path C:\home\site\wwwroot\Document_Path\* -Recurse -Force"执行原部署命令:
az webapp deploy --resource-group $(ResourceGroup) --name $(AppName) --src-path $zip_artifact --type zip --target-path Document_Path --clean false
方法二:通过Kudu API清理目标文件夹
如果无法使用SSH,可借助Kudu的VFS API删除目标文件夹内容:
获取Web App发布凭据:
creds=$(az webapp deployment list-publishing-profiles --resource-group $(ResourceGroup) --name $(AppName) --query "[0].{user:publishUsername, pass:publishPassword}" -o tsv) USER=$(echo $creds | cut -d' ' -f1) PASS=$(echo $creds | cut -d' ' -f2)递归删除目标文件夹内所有内容:
curl -X DELETE -u $USER:$PASS "https://$(AppName).scm.azurewebsites.net/api/vfs/site/wwwroot/Document_Path/?recursive=true"执行原部署命令(同方法一中的部署命令)
注意事项
- 确认目标文件夹路径正确:Web App的根目录对应
/home/site/wwwroot(Linux)或C:\home\site\wwwroot(Windows),Document_Path是你指定的相对路径,需拼接成完整路径。 - 执行删除命令前可先通过SSH或Kudu控制台查看文件夹内容,避免误删重要文件。
内容的提问来源于stack exchange,提问作者Vital
相关产品推荐
相关产品推荐

