在深入研究了 kudu wiki 并用更新的技术替换了一些元素之后,我使用了以下 powershell。
它使用从站点获取的发布凭据组成一个“http 基本身份验证”字符串,然后使用它向 kudu api 发出 DELETE 请求。
值得注意的是,如果您使用的是 Powershell 6,则不需要编写基本身份验证字符串,因为 Powershell 6 的 Invoke-RestMethod 可以为您完成此操作。
function Get-KuduSiteBasicAuthString
{
[CmdletBinding()]
param (
[Parameter(Mandatory = $true)]
$ResourceGroupName,
[Parameter(Mandatory = $true)]
$Name
)
$response = Get-AzureRmWebAppPublishingProfile -ResourceGroupName $ResourceGroupName -Name $Name
$publishingCredentials = [xml]$response
$username = $publishingCredentials.publishData.publishProfile[0].userName
$password = $publishingCredentials.publishData.publishProfile[0].userPWD
$credentialsString = "{0}:{1}" -f $username, $password
$credentialsAsByteArray = [Text.Encoding]::ASCII.GetBytes($credentialsString)
"Basic {0}" -f [Convert]::ToBase64String($credentialsAsByteArray)
}
$ResourceGroupName = "your resource group name"
$ApplicationName = "your app name"
$kuduAuthString = Get-KuduSiteBasicAuthString -ResourceGroupName $ResourceGroupName -Name $ApplicationName
$apiUrl = "https://" + $ApplicationName + ".scm.azurewebsites.net/api/continuouswebjobs/ApplicationInsightsProfiler2"
Invoke-RestMethod -Uri $apiUrl -Headers @{ 'Authorization' = $kuduAuthString } -Method Delete -Verbose