Предупреждение контейнера BLOB-объектов Azure, если конкретная папка контейнера не обновляется в течение 24 часов
Я хочу найти способ отправить предупреждение, если определенная папка в контейнере больших двоичных объектов не обновляется в течение 24 часов. Я попытался настроить оповещение через портал, но мне кажется, что я могу найти только оповещения о показателях, основанные на входе всего контейнера больших двоичных объектов. Есть ли способ указать Ingress для папки в контейнере?
Я хочу сделать это через вкладку "Оповещения" на портале, но если мне придется прибегнуть к написанию кода, я также могу пойти по этому пути.
1 ответ
Кажется, нет готового решения для мониторинга папки в контейнере хранилища Azure в предупреждении Azure.
В зависимости от ваших требований вы хотите отправить предупреждение, если в папке нет изменений в течение 24 часов. Таким образом, мы можем просто получить последнее время модификации в этой папке и сравнить с текущим временем. Вы можете попробовать эту Po werShell ниже:
$storageAccount = "<your storage account>"
$resourceGroup = "<your resource group name>"
$containerName = "<container name>"
$folderName = "<folder name>"
$storage = Get-AzStorageAccount -name $storageAccount -ResourceGroupName $resourceGroup
$lastModifyTimeInFolder = (Get-AzStorageBlob -Prefix $folderName -Container $containerName -Context $storage.Context | Sort-Object -Property LastModified -Descending)[0].LastModified
$now = Get-Date
if($lastModifyTimeInFolder.CompareTo($now.AddHours(-24)) -ge 0){
echo "modified within 24hs"
}else {
#if last $lastModifyTimeInFolder less than current time minus 24 hours, you can trigger your own alert based on your logic here
echo "modified exceeded 24hs "
}
Вы можете создать модуль Runbook в автоматизации Azure как запланированную задачу. Запустите этот сценарий каждые 30 минут, чтобы реализовать свое требование.
Надеюсь, это поможет.