azure - 识别与虚拟机已释放相关的资源

标签 azure azure-cli

在 Azure VM 的清理过程中。我正在尝试识别与已释放虚拟机相关的所有资源,例如网络、存储和网卡。

我运行下面的查询来获取详细信息,但无法编写查询来获取同一查询参数中的其他详细信息,以获取表格式的 nic、storge 结果。

az vm list -d --query "[?powerState=='虚拟机已释放']"-o table

qa-automation-10 测试-QA-自动化
qa-automation-11 测试-QA-自动化
qa-automation-12 测试-QA-自动化
qa-automation-13 测试-QA-自动化
qa-automation-14 测试-QA-自动化

任何帮助都将是值得赞赏的,我特别寻找 az 客户端查询。由于 VM 释放列表很大,因此我将通过 gitlab 管道运行。

},
"id": "/subscriptions/xxxxxxxx/resourceGroups/xxxx/providers/Microsoft.Compute/virtualMachines/x023901",
"identity": null,
"licenseType": null,
"location": "x",
"macAddresses": "",
"name": "x023901",
"networkProfile": {
  "networkInterfaces": [
    {
      "id": "/subscriptions/x/resourceGroups/rGroup-ENV0239/providers/Microsoft.Network/networkInterfaces/x023901nic",
      "primary": null,
      "resourceGroup": "rGroup-ENV0239"
    }
  ]
},
"osProfile": null,
"plan": null,
"powerState": "VM deallocated",
"privateIps": "x.x.x.x",
"provisioningState": "Succeeded",
"publicIps": "",
"resourceGroup": "RGROUP-ENV0239",
"resources": [
  {
    "autoUpgradeMinorVersion": true,
    "forceUpdateTag": null,
    "id": "/subscriptions/xxxxxxx/resourceGroups/RGROUP-ENV0239/providers/Microsoft.Compute/virtualMachines/x023901/extensions/OmsAgentForLinux",
    "instanceView": null,
    "location": "x",
    "name": "OmsAgentForLinux",
    "protectedSettings": null,
    "provisioningState": "Succeeded",
    "publisher": "Microsoft.EnterpriseCloud.Monitoring",
    "resourceGroup": "RGROUP-ENV0239",
    "settings": {
      "stopOnMultipleConnections": true,
      "workspaceId": "xx"
    },
    "tags": null,
    "type": "Microsoft.Compute/virtualMachines/extensions",
    "typeHandlerVersion": "1.0",
    "virtualMachineExtensionType": "OmsAgentForLinux"
  }
],
"storageProfile": {
  "dataDisks": [
    {
      "caching": "None",
      "createOption": "Attach",
      "diskSizeGb": 20,
      "image": null,
      "lun": 0,
      "managedDisk": null,
      "name": "x-data1.vhd",
      "vhd": {
        "uri": "https://x.core.windows.net/vhds/x-data1.vhd"
      },
      "writeAcceleratorEnabled": null
    }
  ],
  "imageReference": null,
  "osDisk": {
    "caching": "ReadWrite",
    "createOption": "Attach",
    "diffDiskSettings": null,
    "diskSizeGb": 30,
    "encryptionSettings": null,
    "image": null,
    "managedDisk": null,
    "name": "xosDisk",
    "osType": "Linux",
    "vhd": {
      "uri": "https://xblob.core.windows.net/vhds/x.vhd"
    },
    "writeAcceleratorEnabled": null
  }
},
"tags": null,
"type": "Microsoft.Compute/virtualMachines",
"vmId": "x",
"zones": null
},

最佳答案

Azure 中的 VM 有两种类型,一种是托管 VM,另一种是非托管 VM。当你想显示所有虚拟机的详细信息时,你应该注意这一点。

此外,没有关于存储帐户的属性。您可以将文件存储在存储帐户中,并且不关联到 VM。因此,如果虚拟机不受托管,您只会获得有关存储帐户的一些信息。

获取包含一些资源的虚拟机列表,例如 vmName、NIC、osDisk 或 osDiskURI,CLI 命令如下:

az vm list --query "[].{VMName:name, nicId:networkProfile.networkInterfaces[0].id, managedDiskId:storageProfile.osDisk.managedDisk.id, UnmanagedDiskURL:storageProfile.osDisk.vhd.uri}" -o table

如果您可以通过 CLI 命令 az vm show 在虚拟机详细信息中找到所需信息,则可以更改所需信息。希望这会有所帮助。还有什么问题可以给我留言。

关于azure - 识别与虚拟机已释放相关的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54136722/

相关文章:

Azure DevOps (VSTS) - 在托管代理上使用 Azure Az PowerShell

azure - 云端Raspberry pi传感器数据监控

python - 使用 Databricks 中的 PySpark 在 Azure DataLake 中使用 partitionBy 和覆盖策略

Azure辅助角色装配位置

azure - az storage blob upload-batch 的最低权限

azure-cli - 使用 && 对多个属性进行 AZ CLI 查询过滤器

azure - 删除未使用、未附加、未关联的资源 Azure CLI

Azure 应用服务 - 某些 WebAPI 方法引发 OWIN 异常

c# - 参数化 Function app 的 settings.json 以进行发布

Azure 应用程序注册通过 powershell Azure CLI 添加授权的客户端应用程序