Как мне перебрать массив в Kusto? - PullRequest
0 голосов
/ 16 мая 2019

Мне нужно перебирать диски с управляемыми данными в обозревателе графиков ресурсов Azure (https://preview.portal.azure.com/). Мой запрос приведен ниже, но он возвращает массив JSON, мне нужно извлечь имя диска и тип используемой учетной записи хранения ( пример возврата JSON приведен ниже). Поэтому я хотел бы видеть на экране группирование по имени машины, имени диска и типу учетной записи хранения. Мой текущий запрос приведен ниже, но, очевидно, он не работает из-за возврата JSON

where type =~ 'Microsoft.Compute/virtualmachines' |
extend disks = properties.storageProfile.dataDisks |
project name, disks

Тот же вывод JSON

[
    {
        "name": "COMP02_DDisk1",
        "createOption": "Attach",
        "diskSizeGB": 400,
        "managedDisk": {
            "id": "/subscriptions/5f5c5be9-77d4db790171/resourceGroups/BRAZILSOUTHDB/providers/Microsoft.Compute/disks/COMP02_DDisk1",
            "storageAccountType": "Premium_LRS"
        },
        "caching": "None",
        "toBeDetached": false,
        "lun": 0,
        "writeAcceleratorEnabled": false
    },
    {
        "name": "COMP02_DDisk2",
        "createOption": "Attach",
        "diskSizeGB": 400,
        "managedDisk": {
            "id": "/subscriptions/5f5c5be9-77d4db790171/resourceGroups/BRAZILSOUTHDB/providers/Microsoft.Compute/disks/COMP02_DDisk2",
            "storageAccountType": "Premium_LRS"
        },
        "caching": "None",
        "toBeDetached": false,
        "lun": 1,
        "writeAcceleratorEnabled": false
    }
]

enter image description here

1 Ответ

0 голосов
/ 16 мая 2019

в таких случаях обычно полезно использовать mv-expand для расширения массива и затем применять аксессоры динамических свойств foreach record.

https://docs.microsoft.com/en-us/azure/kusto/query/mvexpandoperator

пример:

print d = dynamic([
    {
        "name": "COMP02_DDisk1",
        "createOption": "Attach",
        "diskSizeGB": 400,
        "managedDisk": {
            "id": "/subscriptions/5f5c5be9-77d4db790171/resourceGroups/BRAZILSOUTHDB/providers/Microsoft.Compute/disks/COMP02_DDisk1",
            "storageAccountType": "Premium_LRS"
        },
        "caching": "None",
        "toBeDetached": false,
        "lun": 0,
        "writeAcceleratorEnabled": false
    },
    {
        "name": "COMP02_DDisk2",
        "createOption": "Attach",
        "diskSizeGB": 400,
        "managedDisk": {
            "id": "/subscriptions/5f5c5be9-77d4db790171/resourceGroups/BRAZILSOUTHDB/providers/Microsoft.Compute/disks/COMP02_DDisk2",
            "storageAccountType": "Premium_LRS"
        },
        "caching": "None",
        "toBeDetached": false,
        "lun": 1,
        "writeAcceleratorEnabled": false
    }
])
| mv-expand d
| project d.name, d.managedDisk.storageAccountType

, который выдаст:

| d_name        | d_managedDisk_storageAccountType |
|---------------|----------------------------------|
| COMP02_DDisk1 | Premium_LRS                      |
| COMP02_DDisk2 | Premium_LRS                      |
...