Ich versuche, mithilfe von PowerShell eine Möglichkeit zur Bereitstellung eines App-Service-Updates für einen Azure-App-Service aus einer Bamboo-Bereitstellungsserver-Skriptaufgabe zu finden.So verwenden Sie Azure Kudu Zipdeploy von einem Bamboo-Bereitstellungsserver
Ich habe ein Problem mit dem Authentifizierungsteil.
Hinweis: Kredit https://markheath.net/post/deploy-azure-webapp-kudu-zip-api für die Skript-Ideen.
Unten ist mein PowerShell-Skript.
$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
Als ich dieses Skript ausführen ich
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.
Ich bin mit den Benutzernamen und USERPWD Werte aus den * .PublishSettings Datei ich für die App-Service-Bereitstellung Slot Einstellungen in Azure heruntergeladen. Ich kann diese Datei * .PublishSettings im Veröffentlichungsassistenten in VS2017 importieren und erfolgreich auf diesem Steckplatz veröffentlichen. Ich kann es einfach nicht in PowerShell machen.
Was fehlt mir hier?
Sie benötigen die nachstehende Portnummer nicht. Sie können auch einen authentifizierten Aufruf für Kudu durchführen, indem Sie Basic-Authentifizierungsdaten direkt in die URL eingeben: https: // \ $ WebAppName: \ $ PublishingPassword @ site.scm.azurewebsites.net/api/zipdeploy – evilSnobu