Отправить некоторые из свойств, чтобы расслабиться от лазурных оповещений - PullRequest
0 голосов
/ 15 мая 2019

Как можно отправить некоторые свойства из AzureMonitorMetricAlert

Полный JSON выглядит так:

{ 
   "schemaId":"AzureMonitorMetricAlert",
   "data": { 
      "version":"2.0",
      "properties":null,
      "status":"Active",
      "context": { 
         "timestamp":"2019-04-30T14:19:49.4987935Z",
         "id":"/subscriptions/xxxxxxxx/resourceGroups/test/providers/microsoft.insights/metricAlerts/500%20response%20code",
         "name":"500 response code",
         "description":"",
         "conditionType":"DynamicThresholdCriteria",
         "severity":"3",
         "condition": { 
            "windowSize":"PT5M",
            "allOf": [ 
                { 
                  "alertSensitivity":null,
                  "failingPeriods":null,
                  "ignoreDataBefore":null,
                  "metricName":"requests/failed",
                  "metricNamespace":"microsoft.insights/components",
                  "operator":null,
                  "threshold":null,
                  "timeAggregation":"Count",
                  "dimensions": [ 
                      { 
                        "name":"ResourceId",
                        "value":"xxxxxxxxx"
                     },
                      { 
                        "name":"request/resultCode",
                        "value":"500"
                     }
                  ],
                  "metricValue":null
               }
            ]
         },
         "subscriptionId":"xxxxxxxxxxxxxxxx",
         "resourceGroupName":"test",
         "resourceName":"test",
         "resourceType":"microsoft.insights/components",
         "resourceId":"/subscriptions/xxxxxxxxxxx/resourceGroups/test/providers/microsoft.insights/components/tests",
         "portalLink":"https://portal.azure.com/#resource/subscriptions/xxxxxxxx/resourceGroups/dsdsdsdsds"
      }
   }
}

Как я могу отправить сообщение слабому человеку, включая текст, например: «Было отправлено предупреждение для $ {context.name}». Я пытался с:

        "actions": {
            "Post_message": {
                "inputs": {
                    "host": {
                        "connection": {
                            "name": "@parameters('$connections')['slack']['connectionId']"
                        }
                    },
                    "method": "post",
                    "path": "/chat.postMessage",
                    "queries": {
                        "channel": "CHT0EMJ3H",
                        "parse": "full",
                        "text": "tests::::::=>>>>> @{triggerBody()?['context']['name']}"
                    }
                },
                "runAfter": {},
                "type": "ApiConnection"
            }
        }

Но это не работает. Если я использую только "text": "tests::::::=>>>>> @{triggerBody()}", то отправляется полный JSON, но его трудно прочитать, так как он анализируется как строка.

1 Ответ

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

Вы не можете прочитать свойства, потому что вывод triggerbody() является строкой. чтобы вы могли сначала разобрать строку в Json, а затем прочитать свойства.

Так что вам нужно использовать действие Parse Json, Контент - это @triggerBody(), а в схеме щелкните Use sample payload to generate schema и введите Json. С помощью этого действия вы сможете прочитать свойства.

Я тестирую с помощью триггера HTTP Request и отправляю письмо, читая conditionType с @{body('Parse_JSON')?['data']?['context']?['conditionType']}.

enter image description here

enter image description here

...