获取指向Azure警报详细信息页面的URL

时间:2019-07-01 19:26:00

标签: azure webhooks azure-logic-apps

我正在使用逻辑应用程序创建一个Webhook(用于日志搜索警报),然后将警报有效负载推到松弛状态。我正在尝试将警报有效负载数据(以松弛形式)发送到实际警报详细信息页面的URL,而不使用内置字段 linkToSearchResults ,因为该URL很大,因为我的查询很长。我本质上想要一个友好的URL,类似于azure用于在Azure Monitor中查看警报的电子邮件模板中提供的URL。我一直无法找到将这个链接放在一起的方法,我知道我可以在Webhook的警报中使用自定义json负载,但是我将如何生成此友好的url?

2 个答案:

答案 0 :(得分:0)

如果我的理解正确,您正在寻找URL缩短器。对于Logic Apps,有一个Bitly connector可用于生成较小的URL。

如果您想使用自己的URL Shortener,则可以构建执行此操作的简单功能应用。很棒的blog by Jeremy Liknesssource)涵盖了人们如何实现这一目标。

使用您自己的起酥油,您必须使用HTTP Action来获得缩短的URL。

答案 1 :(得分:0)

我认为问题更多地在于如何获得到实际警报的链接,就像这样显示在电子邮件中。

enter image description here

linkToSearchResults转到我们可以执行搜索查询的页面。

更多地查看警报的链接,它的格式似乎为

https://ms.portal.azure.com/#blade/Microsoft_Azure_Monitoring/AlertDetailsTemplateBlade/alertId/%2fsubscriptions%2f<subscription_id>%2fproviders%2fMicrosoft.AlertsManagement%2falerts%2f<alert_id>/invokedFrom/emailcommonschema

现在,如果我们查看启用了通用模式时作为警报的一部分收到的json,则它具有这些信息。

{
  "essentials": {
    "alertId": "/subscriptions/<subscription ID>/providers/Microsoft.AlertsManagement/alerts/b9569717-bc32-442f-add5-83a997729330",
    "alertRule": "Contoso IT Metric Alert",
    "severity": "Sev3",
    "signalType": "Metric",
    "monitorCondition": "Fired",
    "monitoringService": "Platform",
    "alertTargetIDs": [
      "/subscriptions/<subscription ID>/resourceGroups/aimon-rg/providers/Microsoft.Insights/components/ai-orion-int-fe"
    ],
    "originAlertId": "74ff8faa0c79db6084969cf7c72b0710e51aec70b4f332c719ab5307227a984f",
    "firedDateTime": "2019-03-26T05:25:50.4994863Z",
    "description": "Test Metric alert",
    "essentialsVersion": "1.0",
    "alertContextVersion": "1.0"
  }
}

来自msdoc的引用。

让我们看到,此架构具有 essentials.alertId ,它看起来与上面的url(但以url编码的形式)中使用的内容相似。

因此,生成用于警告的友好网址的最终代码如下所示:

string.Format("https://ms.portal.azure.com/#blade/Microsoft_Azure_Monitoring/AlertDetailsTemplateBlade/alertId/{0}",
                                HttpUtility.UrlEncode(alertEssentials.AlertId)),

希望这会有所帮助!