如何创建Azure资源图资源管理器计划报告和电子邮件提醒

6ss1mwsb  于 2022-12-14  发布在  其他
关注(0)|答案(2)|浏览(85)

我有一个取自this example的Kusto查询,如下所示:

Resources 
| where type =~ 'microsoft.compute/virtualmachines' 
| extend vmPowerState = tostring(properties.extended.instanceView.powerState.code) 
| summarize count() by vmPowerState

我想创建一个每周提醒,通过CSV文件格式的电子邮件发送结果。
Logic App分为5个步骤:

第一:

第二:

{
  "query": "Resources | where type =~ 'microsoft.compute/virtualmachines' | extend vmPowerState = tostring(properties.extended.instanceView.powerState.code) | summarize count() by vmPowerState"
}

第三:
在这里我解析了Body,并给予了JSON模式的摘录:

{
    "count": 3,
    "data": [
        {
            "count_": 3,
            "vmPowerState": "PowerState/stopped"
        },
        {
            "count_": 29,
            "vmPowerState": "PowerState/deallocated"
        },
        {
            "count_": 118,
            "vmPowerState": "PowerState/running"
        }
    ],
    "skip_token": null,
    "total_records": 3
}

这里我有一些疑问,因为我发现a guide说我应该使用array公式代替。我不是很确定,因为我看不到例子中的细节。无论如何,这是我做的:

第四:


指令集
第五:
从CSV创建附件的位置

最后,电子邮件到达,但附件不是CSV,而是JSON文件:


指令集
我到底做错了什么?

rqcrx0a6

rqcrx0a61#

如果您想使用“创建CSV表”,并将列设置为“自动”,请传递“parse Json”的“body”。x1c 0d1x
你不需要使用数组变量,但是无论你使用什么,都需要返回一个如下所示的数组:

示例中的json解析器主体包含许多其他json节点。您应该有“data”选项,因为那里有一个名为“data”的数组
如果你想长话短说,试试“数据”

您可以更改为“自定义”。这将允许您删除冗余数据或格式化数据(如“PowerState/stopped”中的“PowerState”):

您还可以将.csv添加到文件名中:x1c4d 1x指令集
以上对我很有效,但还可以增强

xwmevbvl

xwmevbvl2#

@BrunoLucasAzure发布的建议确实帮助我了解了逻辑应用程序是如何工作的。
然而,我想用正确的解决方案来回答我自己的问题:我不得不粘贴JSON输出的一个示例,按下按钮 * 使用示例有效负载生成模式 *。

然后按照工作流程,一切都会好起来的。
我需要解决的下一个问题是分页,但显然也有一个解决方案:https://techcommunity.microsoft.com/t5/integrations-on-azure-blog/logic-app-http-pagination-deeper-look-build-custom-paging/ba-p/2907605

相关问题