如何从C#或Microsoft.Azure.Management删除App Service-> Web App->日志文件

当前通过Kudo / Azure CLI / FTP登录并手动删除。

我们有一个使用microsoft.Azure.Management的现有dev-ops代码库。寻找任何删除文件的方法,尤其是/LogFiles/*.log早于x的C#模糊地使用。

貌似可以枚举WebApp并获取FTP凭据并使用FtpWebRequest,但想知道是否还有更直接的方法。

这里没有看到任何方法-> Web Apps

mary_zhang_YINNG 回答:如何从C#或Microsoft.Azure.Management删除App Service-> Web App->日志文件

恐怕没有直接的方法。但是,您可以调用Kudu Api删除日志文件。以下是powershell脚本的示例:

$ResGroupName = ""
$WebAppName = ""
$LogFolder = ""
$DaysToKeepLogsAround=""

# Get publishing profile for web application

$WebApp = Get-AzWebApp -Name $WebAppName -ResourceGroupName $ResGroupName
[xml]$publishingProfile = Get-AzWebAppPublishingProfile -WebApp $WebApp

# Create Base64 authorization header

$username = $publishingProfile.publishData.publishProfile[0].userName
$password = $publishingProfile.publishData.publishProfile[0].userPWD
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))

$apiBaseUrl = "https://$($WebApp.Name).scm.azurewebsites.net/api/command"

# delete log files

 $apiCommand = @{
        command = 'powershell.exe -command "Get-ChildItem -Path $LogFolder -Recurse -File | Where LastWriteTime  -lt  (Get-Date).AddDays(-$DaysToKeepLogsAround) | Remove-Item -Force"'
        dir=$LogFolder
    }

Invoke-RestMethod -Uri $apiBaseUrl -Headers @{"Authorization"="Basic $base64AuthInfo";"If-Match"="*"} -Method POST -ContentType "application/json" -Body (ConvertTo-Json $apiCommand)

您还可以参考此thread中的另一个示例。

您还可以创建 azure网络作业,并上传Powershell脚本以删除旧的日志文件。请检查here了解详细步骤。

本文链接:https://www.f2er.com/3165135.html

大家都在问