0

我想列出我所有的安全组,但我想检查任何安全组是否有实例,如果是,我想获取这个实例。我怎么能在代码中做到这一点?我只是构建功能来获取所有安全组。

  @Override
public List<LocalSecurityGroupV2> getSecurityGroups(final List<String> securityGroupIds) {
    return securityGroupIds
            .stream()
            .map(this::findSecurityGroupById)
            .collect(Collectors.toList());
}
4

2 回答 2

0

我们可以使用Azure Java SDK做到这一点。有关身份验证,请参阅使用适用于 Java 的 Azure 管理库进行身份验证

以下是演示代码,我自己测试过。

String client = "clientId";
String tenant = "tenantId";
String key = "scret key";
ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(client,
            tenant,
            key,
            AzureEnvironment.AZURE);
Azure azure = Azure.configure().authenticate(credentials).withDefaultSubscription();
List <VirtualMachine> vmlist = azure.virtualMachines().list();
List<String> networkInterfaceList = new ArrayList<String>();
PagedList<NetworkSecurityGroup> list = azure.networkSecurityGroups().listByResourceGroup("resourceGroupName");

//add the networkinterface to the list
for (NetworkSecurityGroup nsg :list
         ) {

     for (String networkInterface :nsg.networkInterfaceIds()
         ) {

           networkInterfaceList.add(networkInterface);

        }

    };


List<VirtualMachine> virtualMachineList = new ArrayList<VirtualMachine>();
for (VirtualMachine vm :vmlist
         ) {
        for (String vmInterface:vm.networkInterfaceIds()
             ) {
            if(networkInterfaceList.contains(vmInterface))
            {
                if(!virtualMachineList.contains(vm))
                {
                    virtualMachineList.add(vm);
                    System.out.println(vm.computerName());
                }

            }
        }

    }
于 2018-11-09T03:24:13.300 回答
0

您能否详细说明实例是什么意思?这是你要找的吗?

获取订阅中的所有网络安全组: https ://docs.microsoft.com/en-us/rest/api/virtualnetwork/networksecuritygroups/listall

获取资源组中的所有网络安全组: https ://docs.microsoft.com/en-us/rest/api/virtualnetwork/networksecuritygroups/list

于 2018-11-07T21:45:12.710 回答