gpt4 book ai didi

azure - 如何从 C# 或 Microsoft.Azure.Management 删除应用程序服务 -> Web 应用程序 -> 日志文件

转载 作者:行者123 更新时间:2023-12-03 04:49:30 25 4
gpt4 key购买 nike

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

我们有一个使用 Microsoft.Azure.Management 的现有开发操作代码库。寻找任何删除文件的方法,特别是使用 C# 模糊地删除早于 x 的 /LogFiles/*.log

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

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

最佳答案

恐怕没有直接的方法。不过,您可以调用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 web作业并上传powershell脚本来删除旧的日志文件。请查看here了解详细步骤。

关于azure - 如何从 C# 或 Microsoft.Azure.Management 删除应用程序服务 -> Web 应用程序 -> 日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58697711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com