使用Azure CLI删除所有Azure事件网格订阅

时间:2019-12-11 14:43:39

标签: azure-cli azure-eventgrid

我正在为我的Web API使用事件网格。我的api的域名已更改,现在我需要更新所有事件网格订阅。碰巧我有Azure CLI命令来创建每个订阅,所以最简单的方法是删除所有订阅并创建新订阅。我已经检查了docs,但是az eventgrid event-subscription delete命令需要--name参数,这意味着我需要为每个订阅手动执行此操作。虽然这不是一个大问题,但它需要维护第二个命令列表以进行删除。如果我只说--all或类似的话,将会更快。

也许有一种解决方案可以删除所有事件网格订阅,而不会带来太多麻烦?

到目前为止我的想法:

  • 放弃整个事件网格主题并创建一个新主题(似乎有点多余
  • 使用az eventgrid event-subscription list
  • 应用一些bash魔术

1 个答案:

答案 0 :(得分:1)

根据我的测试,我们可以使用以下命令删除与Azure Cloud Shell中的Azure事件网格主题相关的订阅列表。

results=$(az eventgrid event-subscription list --source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/domains/domain1/topics/topic1 --query "[].{Name:name}")


for row in $(echo "$results" | jq -r '.[]|"\(.Name)"')
do
  az eventgrid event-subscription delete --name $row --source-resource-id  /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/domains/domain1/topics/topic1
done

enter image description here