使用 aws sdk 从 AWS 服务器获取现有密钥对 java

Get Existing Key-pair from AWS server using aws sdk for java

我正在尝试使用 java..

的 aws sdk 在 AWS 上创建 EC2 实例

这里是运行实例的方法

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从 aws 获取 AMI server.can 有人告诉我是否可以使用像 getKey-pair 这样的函数吗?

DescribeKeyPairs 就是您要找的。 link 用于 EC2 API 文档。您可能需要查找调用此 API.

的 aws-java sdk 方法
    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;
}

这是将 return 键名数组列表的代码。