Получить Azure использование локального диска службы приложений программно - PullRequest
1 голос
/ 11 июля 2020

Azure службы приложений имеют ограничение на объем используемого локального (временного) хранилища. Но, насколько я понимаю, ограничение распространяется на весь план обслуживания приложений.

Я хочу максимально использовать локальное хранилище, не превышая лимит. Но при разделении между несколькими службами приложений в одном плане обслуживания приложений это становится сложным.

Существует ли REST API, который возвращает использование локального диска плана службы приложений? Или, что еще лучше, каким-то образом получить это из среды?

Использование можно просмотреть на вкладке «Среда» в Kudu, но я хочу сделать это в коде в работающем веб-приложении.

Ответы [ 2 ]

0 голосов
/ 29 июля 2020

Вы можете вызвать GetDiskFreeSpace API, чтобы узнать свободное место на диске:

public static decimal GetAvailableSpaceInBytes(string path)
{
    uint sectorsPerCluster;
    uint bytesPerSector;
    uint numberOfFreeClusters;
    uint totalNumberOfClusters;

    GetDiskFreeSpace(path, out sectorsPerCluster, out bytesPerSector, out numberOfFreeClusters, out totalNumberOfClusters);
    long bytes = (long)numberOfFreeClusters * sectorsPerCluster * bytesPerSector;
    
    return bytes;
}

[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern bool GetDiskFreeSpace(
    string lpRootPathName,
    out uint lpSectorsPerCluster,
    out uint lpBytesPerSector,
    out uint lpNumberOfFreeClusters,
    out uint lpTotalNumberOfClusters);

Имейте в виду, что служба приложений установит квоты для папок, используемых веб-приложением, а запрос GetDiskFreeSpace вернет бесплатное пространство в контексте квот веб-приложения.

Это интересно знать только для доступных для записи папок для данного Azure веб-приложения службы приложений.

0 голосов
/ 13 июля 2020

Вы можете перечислить использование с помощью restapi . Что-то не так, когда вы тестируете в официальном документе, вам нужно использовать такие инструменты, как Postman, чтобы проверить это.

например, https://management.azure.com/subscriptions/{subscriptions}/resourceGroups/{resourceGroups}/providers/Microsoft.Web/sites/{webappname}/usages?api-version=2019-08-01&$filter=name.value eq 'FileSystemStorage'

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...