Я пытаюсь найти способ развернуть обновление службы приложений в службе приложений Azure из задачи сценария сервера развертывания Bamboo с помощью PowerShell.
У меня проблема с аутентификационной частью.
Примечание. Кредит 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.
Я использую значения userName и userPWD из файла * .PublishSettings, который я скачал для настроек слота развертывания службы приложений в Azure. Я могу импортировать тот же файл * .PublishSettings в мастер публикации в VS2017 и успешно опубликовать его в этом слоте. Я просто не могу сделать это в PowerShell.
Что мне здесь не хватает?