如何使用KQL查询Azure中逻辑应用的状态
修复Logic App状态查询的KQL语句
第一个查询的问题与调整
你用AzureDiagnostics(实际查询里关联的是AzureActivity表)的思路不匹配需求:这个表只记录操作审计事件,比如谁什么时候修改了Logic App的状态,没法直接返回所有Logic App的当前实时状态。
如果你的需求是查询Logic App的状态变更历史,可以用以下修正后的查询:
AzureActivity | where OperationNameValue == "Microsoft.Logic/workflows/write" | where ResourceType == "MICROSOFT.LOGIC/workflows" | extend LogicAppName = Resource | extend newState = parse_json(Properties).requestBody.properties.state | extend oldState = parse_json(Properties).responseBody.properties.state | project EventTimestamp, LogicAppName, oldState, newState, Caller
如果要获取所有Logic App的当前状态,直接用第二个方案即可。
第二个查询的问题与修复
resources表属于Azure Resource Graph,不是Log Analytics工作区的日志表,你需要在Azure门户的「Resource Graph Explorer」中运行这个查询,或者通过Azure CLI、PowerShell调用Resource Graph API执行。
另外可以优化查询,处理可能的空值,让结果更友好:
resources | where type == "microsoft.logic/workflows" | extend state = coalesce(properties.state, "Unknown") | extend createdTime = properties.createdTime | extend changedTime = properties.changedTime | extend connections = properties.parameters.$connections | project LogicAppName = name, CreatedTime = createdTime, LastModifiedTime = changedTime, State = state, SubscriptionId = subscriptionId, Connections = connections, Location = location, ResourceGroup = resourceGroup
注:部分Logic App可能没有配置连接,connections字段会显示null,你可以把coalesce里的"Unknown"改成"No connections configured"这类更明确的描述。
内容的提问来源于stack exchange,提问作者Zhu
相关产品推荐
相关产品推荐

