无法使用变量在 Azure CLI 中设置 EventGrid 订阅高级筛选器
Unable to set EventGrid Subscription Advanced Filter in Azure CLI using a Variable
我正在尝试在 Azure DevOps 中创建一个动态的 Azure CLI 任务,以便我们重用该任务。我现在最大的问题是在命令上动态设置 --advanced-filter。
我查看了这里的文档,https://docs.microsoft.com/en-us/azure/event-grid/how-to-filter-events,它显示使用过滤器变量的唯一地方是在 PowerShell 命令中,而不是在 Azure CLI 中。我试图为 CLI 复制该语法,但它失败了。
这是我正在尝试执行的命令 运行。我从上面的 Microsoft 文档中获取了过滤器的语法。
$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 我就会收到这个错误:
az : usage error: --advanced-filter KEY[.INNERKEY] FILTEROPERATOR VALUE [VALUE ...]
这是我必须要做的吗?
--advanced-filter data.$myMember StringContains $myValue
我什至不确定这是否可行。我将不得不在那里对其进行硬编码,这会破坏使其动态化的能力。
有什么想法吗?
如果你想在 Azure CLI 命令中指定 --advanced-filter
,它应该像 --advanced-filter [key] [operation] [value]
。更多详情,请参考document
例如(我在Powershell中测试)
$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
我正在尝试在 Azure DevOps 中创建一个动态的 Azure CLI 任务,以便我们重用该任务。我现在最大的问题是在命令上动态设置 --advanced-filter。
我查看了这里的文档,https://docs.microsoft.com/en-us/azure/event-grid/how-to-filter-events,它显示使用过滤器变量的唯一地方是在 PowerShell 命令中,而不是在 Azure CLI 中。我试图为 CLI 复制该语法,但它失败了。
这是我正在尝试执行的命令 运行。我从上面的 Microsoft 文档中获取了过滤器的语法。
$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 我就会收到这个错误:
az : usage error: --advanced-filter KEY[.INNERKEY] FILTEROPERATOR VALUE [VALUE ...]
这是我必须要做的吗?
--advanced-filter data.$myMember StringContains $myValue
我什至不确定这是否可行。我将不得不在那里对其进行硬编码,这会破坏使其动态化的能力。
有什么想法吗?
如果你想在 Azure CLI 命令中指定 --advanced-filter
,它应该像 --advanced-filter [key] [operation] [value]
。更多详情,请参考document
例如(我在Powershell中测试)
$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