azure sdk 中的 ListByResourceGroup() 和 GetByResourceGroup() 有什么区别?

What's the difference between ListByResourceGroup() and GetByResourceGroup() in azure sdk?

使用 azure sdk 时,我看到 ListByResourceGroup()GetByResourceGroup() return 相同的值。它们之间有什么区别?如果我想在我的订阅中获取vm的所有信息,我应该使用什么函数?

T GetByResourceGroup(string resourceGroupName, string name)

IEnumerable<T> ListByResourceGroup(string resourceGroupName)

所以,如果你使用GetByResourceGroup,你需要提供2个参数。一个是资源组名称,另一个是 VM 的名称。你只会得到目标虚拟机。

但是,ListByResourceGroup 只需要资源组名称。并且您将能够获取资源组中的所有 VM。

如果你想获取所有的虚拟机,你可以使用下面的例子:

    static void Main(string[] args)
    {
        IAzure azure = Azure.Authenticate("path_to_auth_file").WithDefaultSubscription();

        var vms = azure.VirtualMachines.List();
        foreach( var vm in vms)
        {
            Console.WriteLine(vm.Name);
        }
    }

我只是简单地输出了虚拟机的名字,你可以在foreach中做你想做的。

只是添加到现有答案中,在 Azure SDK 中 LIST 总是从订阅或资源组中获取所有资源(通常是同一类型的所有资源),而 GET 用于检索特定资源(如果存在),因此您需要指定 resourceGroup 和资源 name.

我倾向于认为这是普遍的。如果你想一想,那些英语动词就是这个意思。