azure - 如何查明 Azure 虚拟机是否受管理(未管理)?

标签 azure azure-virtual-machine azure-sdk

如何判断虚拟机是否受管理(未管理)?这意味着虚拟机是否只有(非)托管磁盘,因为这些磁盘不能混合(据我所知)。

我最初使用Azure Fluent SDK 。但我在这方面遇到了一些麻烦,甚至还有一些 issues .

找出答案的唯一方法是检查磁盘(或仅检查一个,因为它们不能混淆)并检查磁盘本身是否受(未)管理。是这样吗?

问题是如何查明磁盘是否受(未)管理?我的第一个想法是检查 OSDisk属性(或 DataDisk)

  • 如果它具有 ManagedDisk/id 属性,那么它显然是托管磁盘。
  • 如果它具有 vhd/uri 属性,那么它显然是非托管磁盘。

这看起来很简单(我很确定它至少在 99% 的情况下有效,但我真的需要 100% 确定),但如果你检查 source code Fluent SDK 库(由 Microsoft 提供,那么更好的事实来源是什么?)的逻辑要复杂得多。另外,我怀疑它是否正确(参见上面的错误)。

简而言之,在 100% 情况下检查虚拟机是否受管理的可靠方法是什么?

最佳答案

您对(非)托管虚拟机的所有认知都是正确的,我只是可以确认一下。而要区分虚拟机是否为托管虚拟机,只需检查操作系统磁盘是否为托管磁盘,即操作系统磁盘的属性 managementDisk 是否不为 null。

如您所知,托管磁盘和非托管磁盘不能混合使用。因此,如果操作系统磁盘是托管的,那么该虚拟机必须是托管虚拟机,因为每个虚拟机必须有一个操作系统磁盘。

关于azure - 如何查明 Azure 虚拟机是否受管理(未管理)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66030205/

相关文章:

c# - 改善 Azure 网站到 Azure VM 的网络延迟

azure - 无法创建新的 Azure SQL VM

python - 使用托管服务身份(MSI)对虚拟机中的 python 应用程序进行身份验证

azure - 如何查看服务主体有权访问的 Azure 订阅列表?

c# - Microsoft Azure Functions Nuget 包阻止 NET 库打包到 Nuget 中

python - 标准_init_linux.go :207: exec user process caused "exec format error"

Windows Azure 上的 asp.net 身份验证

azure - Azure Kubernetes 服务是否支持 SSL3 协议(protocol)

azure - 访问 Azure Functions 中的私有(private) Nuget 服务器中托管的 Nuget 包

azure - Azure 上的虚拟机 - 被动 FTP 不起作用