求满足特定命名与标签规则的Azure快照查询语句(原查询报错)
解决Azure CLI查询特定快照的问题
你的原命令存在两个关键问题:
- 名称匹配条件漏掉了下划线,原要求是包含
AzureBackup_,但你写的是AzureBackup; - 直接使用
length(tags)在部分场景下(比如快照无标签时)会引发错误,且判断逻辑不够严谨。
以下是修正后的查询命令:
az snapshot list --query "[?contains(name, 'AzureBackup_') && tags != null && tags.CreatedBy == 'AzureBackup' && length(keys(tags)) == 1].[id]" --output tsv
命令各部分说明:
contains(name, 'AzureBackup_'):筛选名称包含AzureBackup_字符串的快照;tags != null:提前排除无标签的快照,避免后续标签相关判断报错;tags.CreatedBy == 'AzureBackup':确保快照带有CreatedBy: AzureBackup的标签;length(keys(tags)) == 1:通过keys(tags)获取所有标签键的列表,判断其长度为1,保证除了CreatedBy外无其他标签;.[id]:仅返回快照的ID字段;--output tsv:以TSV格式输出结果,方便后续处理。
内容的提问来源于stack exchange,提问作者amit suneja
相关产品推荐
相关产品推荐

