【发布时间】:2021-02-04 14:58:49
【问题描述】:
如何判断虚拟机是否(未)托管?这意味着 VM 是否只有(非)托管磁盘,因为这些磁盘不能混合(据我所知)。
我最初使用的是Azure Fluent SDK。但是我遇到了一些麻烦,甚至还有一些issues。
唯一的方法是检查磁盘(或只检查一个,因为它们不能混淆)并检查磁盘本身是否(未)管理。对吗?
问题是如何确定磁盘是否(非)托管?我的第一个想法是检查OSDisk 属性(或DataDisk)
- 如果它有 managedDisk/id 属性,那么它显然是托管磁盘。
- 如果它有 vhd/uri 属性,那么它显然是非托管磁盘。
这看起来很简单(我很确定它至少在 99% 的情况下都有效,但我真的需要 100% 确定)但是如果你查看 Fluent SDK 库的source code(由微软提供,那么什么是更好的事实来源?)逻辑要复杂得多。另外,我怀疑它是否正确(参见上面的错误)。
简而言之,在 100% 的情况下,检查 VM 是否受管理的可靠方法是什么?
【问题讨论】:
-
你看过 Azure 资源浏览器吗?
-
查看我自己的 Azure 资源资源管理器 (resources.azure.com) 我可以枚举
subscriptions/{sub}/providers/Microsoft.Compute/virtualMachines下的 VM,并在解析 JSON 响应后,确定 VM 是否具有 100% 或非 100% 托管磁盘 -这足以满足您的目的吗?如果是这样,那么为它编写一个客户端就很简单了。 -
2Dai:问题仍然存在。您写道“解析 JSON 响应后,确定 VM 是否具有 100% 或非 100% 的托管磁盘”。 JSON 与 REST API 有什么不同?如果是怎么办?如果不是根据什么属性判断它是否是托管磁盘?
-
你看过资源浏览器吗?
-
是的,它似乎返回与 REST API 相同的 JSON。回答你的问题是不够的。您如何 100% 确定磁盘是否被管理?正如我在原始问题中所写,我不太确定......
标签: azure azure-virtual-machine azure-sdk