gpt4 book ai didi

javascript - 逻辑应用绕过筛选器查询中的 Null

转载 作者:行者123 更新时间:2023-11-30 14:43:56 24 4
gpt4 key购买 nike

我正在构建一个逻辑应用程序,它使用 Azure 资源连接器来获取我的资源列表。然后,我想将结果过滤到标签名称和值为 stopnormalMicrosoft.Compute 资源。

这是我收到的资源片段,没有任何过滤器

{
"id": "/subscriptions/<subscription>/resourceGroups/Env1/providers/Microsoft.Compute/virtualMachines/MyVM1",
"name": "MyVM1",
"type": "Microsoft.Compute/virtualMachines",
"location": "westeurope",
"tags": {
"stop": "normal"
}
},
{
"id": "/subscriptions/<subscription>/resourceGroups/LogicApp/providers/Microsoft.Logic/workflows/DWSize-Check",
"name": "DWSize-Check",
"type": "Microsoft.Logic/workflows",
"location": "westeurope",
"tags": {}
}

如您所见,底部资源不包含任何标签,与列表中显示的许多其他资源一样

我使用标准 Compose Filter Array 连接器来尝试从我收到的中过滤掉。

这是我希望用于过滤器命令的代码:

@and(contains(item()?['id'], '/Microsoft.Compute/virtualMachines/'), contains(item()?['tags'], variables('TagName')), contains(item()?['tags'], variables('TagValue')))

variables('TagName')variables('TagValue') 将是 stopnormal,如我的结果片段中列出的示例标签所示。

但是,由于其他资源(例如 Microsoft.Logic/workflows)中没有列出标记值,因此我收到以下 null 错误:

InvalidTemplate. The execution of template action 'Filter_array' failed: The evaluation of 'query' action 'where' expression '@contains(item()?['tags'], variables('TagValue'))' failed: 'The template language function 'contains' expects its first argument 'collection' to be a dictionary (object), an array or a string. The provided value is of type 'Null'.'.

有人知道如何解决这个问题吗?

我尝试过对此 @contains(item().tags?.stop, Variables('TagValue')) 进行类似的查询,只是为了看看它是否能获取任何内容,但我仍然被 null 响应阻止:(

我在Workflow Definition Language的帮助下尝试了上述方法。 ,但仍然没有骰子。任何帮助将不胜感激。

编辑

除了 Thomas 发布的答案之外,我还执行了以下操作(下图)以从结果中过滤掉 null 并获取 TagName,但我即使我使用 contains,我仍然无法访问 TagValue:

@and(contains(item()?['tags'], 变量('TagName')), contains(item()?['tags'], 变量('TagValue')))

或者事件只是试图寻找TagValue

@contains(item()?['tags'], 变量('TagValue'))

Filtered

最佳答案

您可以检查 null 并返回一个空值(在您的情况下为空数组)。

您可以用此表达式替换 item()?['tags'] 或创建一个变量:

if(equals(item()?['tags'], null), [], item()?['tags'])

关于javascript - 逻辑应用绕过筛选器查询中的 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49240269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com