我正在使用逻辑应用程序创建一个Webhook(用于日志搜索警报),然后将警报有效负载推到松弛状态。我正在尝试将警报有效负载数据(以松弛形式)发送到实际警报详细信息页面的URL,而不使用内置字段 linkToSearchResults ,因为该URL很大,因为我的查询很长。我本质上想要一个友好的URL,类似于azure用于在Azure Monitor中查看警报的电子邮件模板中提供的URL。我一直无法找到将这个链接放在一起的方法,我知道我可以在Webhook的警报中使用自定义json负载,但是我将如何生成此友好的url?
答案 0 :(得分:0)
如果我的理解正确,您正在寻找URL缩短器。对于Logic Apps,有一个Bitly connector可用于生成较小的URL。
如果您想使用自己的URL Shortener,则可以构建执行此操作的简单功能应用。很棒的blog by Jeremy Likness(source)涵盖了人们如何实现这一目标。
使用您自己的起酥油,您必须使用HTTP Action来获得缩短的URL。
答案 1 :(得分:0)
我认为问题更多地在于如何获得到实际警报的链接,就像这样显示在电子邮件中。
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)),
希望这会有所帮助!