У меня есть несколько ресурсов пространства имен с тегом site:prod
az tag list --resource-id "subscriptions/[subsc_id]/resourceGroups/[rg_id]/providers/Microsoft.ServiceBus/namespaces/[ns_name]"
{
"id": "/subscriptions/[subsc_id]/resourceGroups/[rg_id]/providers/Microsoft.ServiceBus/namespaces/[ns_name]/providers/Microsoft.Resources/tags/default",
"name": "default",
"properties": {
"tags": {
"module": "payment",
"site": "prod"
}
},
"resourceGroup": "[rg_id]",
"type": "Microsoft.Resources/tags"
}
Я хочу получить все ресурсы, такие как выше, которые имеют тег site:prod
, используя команду cli, выполнив следующее:
az servicebus namespace list --subscription "[subsc_id]" --query '[?tags.site= = "prod"]'
Однако выполнение приведенной выше команды приводит к совершенно противоположному результату, так что ни один из возвращенных объектов пространства имен не имеет тега site:prod
на них.
Что я здесь делаю неправильно?
Я нашел проблему в вашем коде: вы используете " (цитата) неправильно:
az servicebus namespace list --subscription "Subscription name" --query "[?tags.site=='prod']"
Вы должны оставить "в начале запроса и" в середине запроса
Альтернативно,
Невозможно отфильтровать ресурс Azure с помощью тегов через cli
Вы можете просто использовать команду ниже, чтобы получить все имена ресурсов, которые имеют теги site=prod
:
$s= az resource list --tag site=prod
$res=$s | ConvertFrom-json
$res.name