azure - 在逻辑应用中转义和删除字符(动态内容)
问题描述
我一直在尝试从 REST API 获取数据,然后使用逻辑应用将其添加到 Azure 中的 Log Analytics。我的问题是,我似乎需要将请求正文中的某些字符转义到 Log Analytics,因为我收到 400 错误消息:
{“错误”:“无效数据格式”,“消息”:空}
我已经检查过了,JSON 正文无效。
我的 JSON 请求正文如下所示:
{
"assetid": "TBD Assetid",
"vulnid": "@{items('For_each')?['id']}",
"key": "@{items('For_each_3')?['key']}",
"proof": "@{items('For_each_3')?['proof']}",
"since": "@{items('For_each_3')?['since']}",
"status": "@{items('For_each_3')?['status']}
}
实际请求如下所示:
{
"assetid": "TBD",
"vulnid": "adobe-flash-apsb15-11-cve-2015-3096",
"key": "C:\WINDOWS\system32\Macromed\Flash\",
"proof": "<p><p>Vulnerable OS: Microsoft Windows Server 2012 R2 Datacenter Edition<p></p></p><p>Vulnerable software installed: Adobe Flash 17.0.0.188 (C:\WINDOWS\system32\Macromed\Flash\)</p></p>",
"since": "2021-05-10T11:41:03.483Z",
"status": "vulnerable-version"
}
问题似乎是反斜杠和段落元素。
我想转义“key”和“proof”中的反斜杠并删除段落元素。我试图寻找解决方案,但大多数示例都使用静态字符串和替换功能。
有任何想法吗?
解决方案
您可以使用替换功能删除关键参数的转义字符和段落元素
对于关键参数:
replace(variables('string2'),'\',''
您也可以对证明参数使用替换,下面是表达式。
对于证明参数:
replace(replace(replace(variables('string1'),'<p>',''),'</p>',''),'\',''))
这是使用替换功能的示例输出以供参考
基于上述要求,我们了解到每次添加到证明参数的 html 标记可能会有所不同,如果这种情况“替换函数 ()”对您没有帮助。
要删除这些 html 字符,您可以采用以下 2 种方法中的任何一种:
- 使用Html 到文本内容版本连接器
- 使用本文所述的Azure 函数。
推荐阅读
- javascript - 使用滚动方向更改 div 位置
- python - 如何使用推荐链接加入电报聊天机器人?
- excel - 在 Windows 10 中更改系统日期
- python - 按具有多种类型数据的列剪切数据框并将其分组pandas python
- python - 具有自定义第一行的组中的行之间的差异
- google-cloud-platform - GCP Cloud Build 为每个 Cloud Function 部署发布单个事件
- c - 计算您的起床时间并打印出来的程序
- .net - 公共类中.Net Core 3.1中的会话变量
- sql-server - 为什么我收到 Microsoft SQL:Power BI 上的语法错误?
- vba - 循环遍历字符串数组