У меня есть приложение логики, с которым я работаю в Azure, где мне нужно получить доступ к определенному вложенному значению из некоторого JSON в Http Trigger.
Мне нужно получить доступ к пороговому значению (5) и значению второго элемента в массиве измерений (accountscontacts-account-delete) и динамически отобразить их с помощью синтаксиса Expression в редакторе приложения логики, но не могу 'не могу понять, где я ошибаюсь с моим выражением.
Я пытаюсь использовать этот синтаксис для доступа к пороговому значению,
first('allOf')?['threshold']
и я 'Я пытаюсь использовать это выражение для доступа ко второму значению измерения,
last(first('allOf')?['dimensions'])?['value']
Кажется, что ни один из них не работает, и я не могу понять, где мой синтаксис выражения идет не так,Он выдает эту ошибку, когда я пытаюсь оценить, что логика значений измерений (пороговая логика также завершается схожей ошибкой)
InvalidTemplate.Невозможно обработать выражения языка шаблонов во входных данных действия 'Post_message' в строке '1' и столбце '1660': 'Выражение языка шаблонов' last (first ('allOf')?? ['Dimension'])? ['Value']'не может быть оценено, потому что нельзя выбрать свойство' измерения '.Выбор свойства не поддерживается для значений типа 'String'.Подробнее об использовании см. https://aka.ms/logicexpressions. '.
Полезная нагрузка JSON
{
"schemaId": "AzureMonitorMetricAlert",
"data": {
"version": "2.0",
"properties": null,
"status": "Deactivated",
"context": {
"timestamp": "2019-06-11T21:26:20.5035755Z",
"id": "/URLTEXT/",
"name": "FBIS Event Bus DLQ Threshold Notifier",
"description": "",
"conditionType": "SingleResourceMultipleMetricCriteria",
"severity": "3",
"condition": {
"windowSize": "PT5M",
"allOf": [
{
"metricName": "DeadletteredMessages",
"metricNamespace": "Microsoft.ServiceBus/namespaces",
"operator": "GreaterThan",
"threshold": "5",
"timeAggregation": "Average",
"dimensions": [
{
"name": "ResourceId",
"value": "123456:fbis-event-bus"
},
{
"name": "EntityName",
"value": "accountscontacts-account-deleted"
}
],
"metricValue": 4
}
]
},
"subscriptionId": "1234",
"resourceGroupName": "SharedResources",
"resourceName": "FBIS-Event-Bus",
"resourceType": "Microsoft.ServiceBus/namespaces",
"resourceId": "/URLTEXT/",
"portalLink": "PORTALLINK"
}
}
}
Вот снимок того, как выглядит приложение логикикак с блоком выражений (думаю, я тоже не уверен, правильно ли я получаю здесь доступ к свойствам),
Любая идея, как я могу правильнополучить доступ к этим свойствам динамически, используя синтаксис выражения?