首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用变量在Azure CLI中设置EventGrid订阅高级筛选器

无法使用变量在Azure CLI中设置EventGrid订阅高级筛选器
EN

Stack Overflow用户
提问于 2020-04-08 05:33:13
回答 1查看 294关注 0票数 0

我正在尝试在Azure DevOps中创建一个动态Azure CLI task,让我们可以重用这个任务。我现在最大的问题是在命令上动态设置--advanced filter。

我看过这里的文档https://docs.microsoft.com/en-us/azure/event-grid/how-to-filter-events,它显示的唯一使用过滤器变量的地方是在PowerShell命令中,而不是Azure CLI中。我曾尝试为CLI复制该语法,但失败了。

下面是我正在尝试运行的命令。我从上面的Microsoft文档中获取了过滤器的语法。

代码语言:javascript
复制
$eventSubscriptionFilter = @{operator="StringContains"; key="data.messageTypeUri"; Value=@("myUriHere")}

az eventgrid event-subscription create --endpoint-type azurefunction --name $topicSubName --source-resource-id $topicid --endpoint $functionEndPoint --deadletter-endpoint $storageid/blobServices/default/containers/$containername --advanced-filter @($eventSubscriptionFilter)

如果我在不使用--advanced-filter的情况下运行它,它可以很好地工作,但是一旦我添加了--advanced-filter,我就会得到这个错误:

代码语言:javascript
复制
az : usage error: --advanced-filter KEY[.INNERKEY] FILTEROPERATOR VALUE [VALUE ...]

这是我必须要做的吗?

代码语言:javascript
复制
--advanced-filter data.$myMember StringContains $myValue

我甚至不确定这是否会奏效。我将不得不对它进行硬编码,这会扼杀使其动态化的能力。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-08 14:33:51

如果你想在Azure CLI命令中指定--advanced-filter,它应该类似于--advanced-filter [key] [operation] [value]。有关更多详细信息,请参阅document

例如(我在Powershell中测试它)

代码语言:javascript
复制
$key="data.Message"
$opreation="StringContains"
$value=@("test","test1")
az eventgrid event-subscription create 
 --name $topicSubName 
 --source-resource-id $topicid 
 --endpoint $functionEndPoint 
 --deadletter-endpoint $storageid/blobServices/default/containers/$containername 
 --advanced-filter $key $opreation $value

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61089742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档