2017-06-29 64 views
0

有一個現有的子網稱爲子網-11223344。在我的代碼中,我想知道它所屬的VPC。如何使用aws java SDK從子網ID獲取VPC ID?

我所指的Java SDK http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/ec2/model/Subnet.html

// I am not sure if this actually refres to a subnet that I want 
Subnet subnet = new Subnet().withSubnetId("subnet-11223344"); 
String vpcId = subnet.getVpcId(); 
System.out.println("VPC id"+vpcId); 

返回null。

+1

我認爲你需要使用這些「操作說明」 http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc /com/amazonaws/services/ec2/model/DescribeSubnetsResult.html和http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html – kosa

+0

如何爲此創建子網(使用現有ID) ? –

+0

您需要創建您設置subnetID的「DescribeSubnetRequest」對象。這裏是一個例子http://www.programcreek.com/java-api-examples/index.php?api=com.amazonaws.services.ec2.model.DescribeSubnetsRequest – kosa

回答

0

這裏是由ProgramCreek提供一個通用的解決方案的示例:

public List<Subnet> getSubnets(List<String> subnetIds, AmazonEC2 ec2Client) { 
    DescribeSubnetsRequest request = new DescribeSubnetsRequest(); 

    if (subnetIds != null && !subnetIds.isEmpty()) { 
     request = request.withSubnetIds(subnetIds); 
    } 
    DescribeSubnetsResult result = ec2Client.describeSubnets(request); 

    return result.getSubnets(); 
}