如何从Bamboo部署服务器使用Azure kudu zipdeploy
我试图找到一种方法,使用PowerShell从Bamboo部署服务器脚本任务将应用程序服务更新部署到Azure应用程序服务。
我遇到了验证部分的问题。
注意:对于脚本创意,请登录https://markheath.net/post/deploy-azure-webapp-kudu-zip-api。
以下是我的PowerShell脚本。
$PublishingUsername = ["The value of the userName property name in the Azure PublishSettings file"]
$PublishingPassword = ["The value of the userPWD property name in the Azure PublishSettings file"]
$SlotName = ["The name of the slot. I.e. qa"]
$WebAppName = ["The name of the app service in Azure"]
$LocalPath = ["The location of zip file that holds the VS2017 Publish Output files"]
function Upload-ZipDeploy() {
$pair = "$($PublishingUsername):$($PublishingPassword)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Headers = @{
Authorization = $basicAuthValue
}
if ($SlotName -eq ""){
$kuduApiUrl = "https://$WebAppName.scm.azurewebsites.net/api/zipdeploy"
}
else{
$kuduApiUrl = "https://$WebAppName`-$SlotName.scm.azurewebsites.net/api/zipdeploy"
}
# use kudu deploy from zip file
Invoke-WebRequest -Uri $kuduApiUrl -Headers $Headers `
-InFile $LocalPath -ContentType "multipart/form-data" -Method Post
}
Upload-ZipDeploy
当我运行这个脚本时,我会得到
Invoke-WebRequest : Server Error
401 - Unauthorized: Access is denied due to invalid credentials.
You do not have permission to view this directory or page using the
credentials that you supplied.
我使用从Azure中的应用服务部署插槽设置下载的* .PublishSettings文件中的userName和userPWD值。 我可以在VS2017的发布向导中导入这个相同的* .PublishSettings文件,并成功发布到该插槽。 我似乎无法在PowerShell中执行此操作。
我在这里错过了什么?
这里的解决方案非常简单。 我从publishSettings文件使用Microsoft生成的用户名,该用户名以$开头。 所以,PowerShell剥离了$和第一个字符。 我用反拨号为用户名加上了前缀,这就防止了用户名被剥离。 它现在工作正常。
我还在azurewebsites.net域后添加了:443,因为这是它出现在publishSettings文件中的方式,但我不确定它实际上是否需要,因为URL已以https://开头。
链接地址: http://www.djcxy.com/p/68501.html上一篇: How to use Azure kudu zipdeploy from a Bamboo deployment server
下一篇: Guidance on Managing Azure Website Deployments/Backups/Logs