Предупреждение контейнера 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 минут, чтобы реализовать свое требование.

Надеюсь, это поможет.

Другие вопросы по тегам