我正在尝试使用powershell通过restapi将更新的内容文件放到azure网站上。但是,当我向 Invoke-RestMethod -Credentials 我返回了标准azure登录页的html。如何通过powershell的kudu进行身份验证?谢谢。
Invoke-RestMethod -Credentials
kq4fsx7k1#
在新的arm世界和最新的powershell中,您需要对@seth的答案进行一些调整。具体来说,您获取发布凭据的方式是不同的,即前3行。剩下的我无耻地从@seth复制来完成这个片段。请确保根据需要替换您的ResourceGroup/WebApp:
$creds = Invoke-AzureRmResourceAction -ResourceGroupName YourResourceGroup -ResourceType Microsoft.Web/sites/config -ResourceName YourWebApp/publishingcredentials -Action list -ApiVersion 2015-08-01 -Force $username = $creds.Properties.PublishingUserName $password = $creds.Properties.PublishingPassword $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password))) $apiBaseUrl = "https://$($website.Name).scm.azurewebsites.net/api" $kuduVersion = Invoke-RestMethod -Uri "$apiBaseUrl/environment" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method GET
j8yoct9x2#
您可以首先通过powershell获取该网站,然后使用该网站的发布凭据调用kudurestapi。下面的示例将获得kudu版本。
$website = Get-AzureWebsite -Name "WebsiteName" $username = $website.PublishingUsername $password = $website.PublishingPassword $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password))) $apiBaseUrl = "https://$($website.Name).scm.azurewebsites.net/api" $kuduVersion = Invoke-RestMethod -Uri "$apiBaseUrl/environment" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method GET
2条答案
按热度按时间kq4fsx7k1#
在新的arm世界和最新的powershell中,您需要对@seth的答案进行一些调整。
具体来说,您获取发布凭据的方式是不同的,即前3行。剩下的我无耻地从@seth复制来完成这个片段。
请确保根据需要替换您的ResourceGroup/WebApp:
j8yoct9x2#
您可以首先通过powershell获取该网站,然后使用该网站的发布凭据调用kudurestapi。下面的示例将获得kudu版本。