Log Analytics - Как использовать кавычки в поисковом запросе

Я пытаюсь создать поисковый запрос, когда общедоступный IP-адрес назначается сетевой карте, а затем создать предупреждение об этом. Я могу найти часть, которая идентифицирует задание, но мне нужно использовать «кавычки» в моем поиске, но я не могу...

Мой запрос:

AzureActivity
| where OperationName == "Microsoft.Network/networkInterfaces/write" and ActivityStatus == "Started"
| where Properties contains "<>"

Внутри этого «содержит» мне нужно использовать следующий JSON, извлеченный из свойств JSON (которые я обнаружил при поиске без свойства «Содержит»):

\"provisioningState\":\"Succeeded"\

Однако я знаю, что не могу использовать «кавычки» в области уже кавычек. Есть ли способ позволить мне поместить это внутрь, возможно, с какой-то отменой или брекетингом?


person Beefcake    schedule 31.01.2018    source источник


Ответы (3)


Вы можете использовать @ для экранирования — см. здесь: https://docs.loganalytics.io/docs/Language-Reference/Data-types/string

или, что еще лучше, вы можете использовать функции extractjson (или parsejson) https://docs.loganalytics.io/docs/Language-Reference/Scalar-functions/extractjson()

person Oleg Ananiev    schedule 01.02.2018

Я нашел свое решение благодаря ссылкам, присланным @Oleg Ananiev.

AzureActivity
| sort by TimeGenerated desc nulls last
| where OperationName == "Microsoft.Network/networkInterfaces/write" and ActivityStatus == "Started"
| where Properties contains '\\"provisioningState\\":\\"Succeeded\\"' 
person Beefcake    schedule 01.02.2018

Лучший способ чтения вложенного свойства в формате JSON с помощью parse_json. Например, если вы хотите прочитать значение свойства provisioningState, просто выполните следующий запрос

| where parse_json(Properties).provisioningState  == 'Succeeded'

Пожалуйста, дайте мне знать, если это поможет!

person EagleDev    schedule 20.07.2018