如何从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