我正在尝试使用aws sdk for java在AWS上创建EC2实例。
这是runinstance方法
public static RunInstancesResult createInstaince() {
RunInstancesRequest runInstancesRequest = new RunInstancesRequest();
runInstancesRequest.withImageId("ami-ca381398")
.withInstanceType("t2.micro")
.withMinCount(1)
.withMaxCount(1)
.withKeyName("java-sdk")
.withSubnetId("subnet-8eca36f9")
.withSecurityGroupIds("sg-3f00a25a");
RunInstancesResult runInstancesResult = amazonEC2Client
.runInstances(runInstancesRequest);
return runInstancesResult;
}
这里我已明确指定java-sdk作为密钥对,但现在我希望用户能够选择aws服务器上可用的密钥对。我看到了一个函数getAMI,它从中获取AMI aws server.can有人告诉我是否可以使用像getKey-pair这样的函数?
答案 0 :(得分:2)
DescribeKeyPairs正是您要找的。该链接适用于EC2 API文档。您可能想要查找调用此API的aws-java sdk方法。
答案 1 :(得分:1)
public static List<String> getKeyName() {
DescribeKeyPairsRequest dkpr = new DescribeKeyPairsRequest();
DescribeKeyPairsResult dkpresult =
amazonEC2Client.describeKeyPairs(dkpr);
List<KeyPairInfo> keyPairs = dkpresult.getKeyPairs();
List<String> keyPairNameList = new ArrayList<String>();
for (KeyPairInfo keyPairInfo : keyPairs) {
keyPairNameList.add(keyPairInfo.getKeyName());
}
for (int i = 0; i < keyPairs.size(); i++) {
System.out.println(keyPairNameList.get(i));
}
return keyPairNameList;
}
这是它将返回键名的arraylist的代码。