如何使用 java sdk 获取所有区域的 GCP 所有计算磁盘列表

How to get list of all compute disks of GCP for all the regions using java sdk

我可以使用 gcloud 命令获取磁盘列表

gcloud compute disks list

但是我无法使用 java sdk 做同样的事情。 这是我的示例代码:

  DiskList execute = compute.disks().list("ProjectID", "us-ZoneId")
                .execute();

在上面的代码中,它总是期望区域作为输入参数。 我也用过“aggregatedList”API,但运气不好。

是否可以使用 java sdk 获取项目中的所有磁盘?

这是对我有用的代码示例

        DisksClient disksClient = DisksClient.create();
        DisksClient.AggregatedListPagedResponse aggregatedListPagedResponse = disksClient.aggregatedList("ProjectID");
        for (Map.Entry<String, DisksScopedList> entry : aggregatedListPagedResponse.iterateAll()) {
            System.out.println(entry.getKey());
            for (Disk disk:entry.getValue().getDisksList()){
                System.out.println(disk);
            }
        }


编辑 1

要过滤具有任何值的特定标签(此处为标签 test),您可以这样做


        DisksClient disksClient = DisksClient.create();
        AggregatedListDisksRequest request = AggregatedListDisksRequest.newBuilder().setFilter("labels.test:*").setProject("ProjectID").build();
        DisksClient.AggregatedListPagedResponse aggregatedListPagedResponse = disksClient.aggregatedList(request);
        for (Map.Entry<String, DisksScopedList> entry : aggregatedListPagedResponse.iterateAll()) {
            System.out.println(entry.getKey());
            for (Disk disk:entry.getValue().getDisksList()){
                System.out.println(disk);
            }
        }