Azure自动化作业OData$筛选器

Azure自动化作业OData$筛选器,azure,odata,azure-automation,azure-runbook,Azure,Odata,Azure Automation,Azure Runbook,背景 我有一个应用程序,它使用 我想在properties参数上应用$filter(见最后的JSON)。参数的类型为IDictionary 问题 $filter对于大多数属性都可以正常工作,但对于IDictionary 这就是我正在尝试的https://management.azure.com/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Automation/automationAccounts/XXX/jobs?$fi

背景

  • 我有一个应用程序,它使用
  • 我想在properties参数上应用$filter(见最后的JSON)。参数的类型为
    IDictionary
问题

  • $filter对于大多数属性都可以正常工作,但对于
    IDictionary
  • 这就是我正在尝试的
    https://management.azure.com/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Automation/automationAccounts/XXX/jobs?$filter=属性/参数/任意(keyValue:keyValue/owner eq'Adam@test.com)&api版本=2015-10-31
  • 请求失败,出现错误
    {
    “代码”:“BADDREQUEST”,
    “消息”:“在类型“System.Collections.Generic.KeyValuePair\u 2OfString\u String”上找不到名为“owner”的属性。”
    }
问题

  • 是否可以过滤我正在尝试的内容
  • 如果是,那么我做错了什么
JSON响应,我要对其应用过滤器
“值”:[
{
“id”:“/subscriptions/XXX/resourceGroups/XXX/providers/Microsoft.Automation/automationAccounts/XXX/jobs/XXX”,
“财产”:{
“作业ID”:“XXX”,
“运行手册”:{
“名称”:“HelloWorldRunbook”
},
“附表”:空,
“provisioningState”:“已成功”,
“状态”:“已完成”,
“creationTime”:“2018-06-17T05:44:12.197+00:00”,
“开始时间”:“2018-06-17T05:44:21.227+00:00”,
“lastModifiedTime”:“2018-06-17T05:44:43.43+00:00”,
“结束时间”:“2018-06-17T05:44:43.43+00:00”,
“作业计划ID”:“7fc134ac-d8bd-464e-b041-6e6b50f83f0c”,
“runOn”:空,
“参数”:{
“所有者”:Adam@test.com",
“邮箱”:“测试”_mailbox@test.com"
}
}
为了简洁起见删除了
当我尝试运行时,响应正文中没有返回属性
参数

如果是,那么我做错了什么

但根据您提到的responsed json格式,parameters属性是一个对象而不是字典,因此您可以使用
$filter=properties/parameters/Owner eq'Adam@test.com“
如果确保参数存在,则执行此操作

 Get https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/jobs?api-version=2015-10-31&$filter=properties/parameters/Owner eq 'Adam@test.com'

我尝试测试,但响应正文中没有返回
参数
。我在runbook中使用powershell命令进行测试,脚本需要参数。是否介意共享您的runbook脚本演示代码以获取响应中的参数?@TomSun感谢您的响应!我假设有
参数
属性,因为它们是在您尝试此操作时返回的。如果我的假设没有意义,请抱歉?Parameters属性不是对象,而是IDictionary属性
 Get https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/jobs?api-version=2015-10-31&$filter=properties/parameters/Owner eq 'Adam@test.com'