You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure CLI:如何从资源ID获取资源名称?解决NIC查询报错

解决方法

方案1:直接获取NIC名称(推荐)

不用先拿资源ID再转换名称,直接在az vm nic list时就提取NIC名称,修改query参数即可:

vmsList=$(az vm list --show-details --query '[?name!=`null`].[name]' -o tsv)

for vm in ${vmsList[@]}
do
   # 直接获取NIC名称而非资源ID
   nics="$(az vm nic list --vm-name $vm --query '[].name' --output tsv)"
        
   for nic in ${nics[@]}
   do
       az vm nic show --vm-name $vm --nic $nic --query '{Name:name,Location:location}' -o json
   done
done

方案2:从资源ID中提取NIC名称

如果必须保留获取资源ID的逻辑,可以用Bash的字符串截取功能,从ID中提取最后一段(即NIC名称):

vmsList=$(az vm list --show-details --query '[?name!=`null`].[name]' -o tsv)

for vm in ${vmsList[@]}
do
   nics="$(az vm nic list --vm-name $vm --query '[].{id:id}' --output tsv)"
        
   for nic in ${nics[@]}
   do
       # 截取最后一个/之后的内容,得到NIC名称
       nic_name=${nic##*/}
       az vm nic show --vm-name $vm --nic $nic_name --query '{Name:name,Location:location}' -o json
   done
done

两种方案都能解决az vm nic show需要传入名称而非完整资源ID的问题,方案1更直接高效,减少了额外的字符串处理步骤。

内容的提问来源于stack exchange,提问作者Usama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 04:36:23