如何通过PowerShell使用FTP部署Azure Python Web App并触发部署流程?
解决Azure Web App FTP上传后未触发Python部署的问题
嗨,我明白你的困扰——FTP上传确实不会像Git部署那样自动触发Web App的部署流程,毕竟FTP只是单纯的文件传输,不会触发Azure的部署钩子。不过别担心,有几个办法可以手动触发这个部署过程,让你的Python依赖包正常安装:
方法1:用Azure CLI的az webapp deploy替代FTP上传
这个方法其实可以一步到位,既完成代码上传又触发部署,比FTP更省心。你只需要在PowerShell脚本里加入这段命令(前提是已经安装并登录了Azure CLI):
# 如果还没登录Azure CLI,先执行这行 # az login # 直接从本地文件夹部署到Web App,自动触发部署流程 az webapp deploy --resource-group $resourceGroupName --name $webappName --src-path $appDirectory --type zip
这个命令会把你的本地项目文件夹打包成ZIP包上传,然后自动执行部署脚本——包括读取requirements.txt并安装所有依赖,和Git部署的效果完全一样。
方法2:上传后调用Kudu API触发部署
如果你还是想保留FTP上传的步骤,那可以在文件上传完成后,调用Kudu的API来手动触发部署。Kudu是Azure Web App的后台管理服务,专门处理这类部署相关的操作。
在你的PowerShell脚本最后,添加这段代码就行:
# 构建Kudu部署API的地址 $kuduApiUrl = "https://$webappName.scm.azurewebsites.net/api/deploy" # 用之前获取的FTP凭据生成认证信息 $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password))) # 发送POST请求触发部署 Invoke-RestMethod -Uri $kuduApiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method POST
这个API调用会让Web App立刻执行部署流程,和你看到的Git部署日志里的步骤一样,会处理Python依赖的安装。
小提示
别忘了确保你的requirements.txt文件放在网站的根目录(也就是FTP上传后的/site/wwwroot目录下),这样部署脚本才能找到它并正确安装依赖包。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

