Использование Java SDK AWS для возврата AmazonEC2 с переменными среды? - PullRequest
0 голосов
/ 05 декабря 2018

Я успешно использую Java SDK с файлом ~ / .aws / credentials для возврата экземпляра AmazonEc2 следующим образом:

private AmazonEC2 getEc2Client() {
    AWSCredentials credentials = new ProfileCredentialsProvider().getCredentials();

    AmazonEC2 amazonEC2 = new AmazonEC2Client(credentials);
    Region govCloud = Region.getRegion(Regions.GovCloud);
    amazonEC2.setRegion(govCloud);

    return amazonEC2;
}

Однако теперь я хочу перейти на использование переменных средывместо файла.У меня установлены переменные окружения, но я не могу понять код, чтобы сделать это.Пример (https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html) показывает следующее:

AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                       .withCredentials(new EnvironmentVariableCredentialsProvider())
                       .build();

Но это возвращает AmazonS3 вместо AmazonEC2. Я пытаюсь следующее:

    AmazonEC2 amazonEC2 = AmazonEC2ClientBuilder.standard()
        .withCredentials(new EnvironmentVariableCredentialsProvider())
        .build();

Но неттакая вещь, как "AmazonEC2ClientBuilder"

1 Ответ

0 голосов
/ 05 декабря 2018

Действительно, AmazonEC2ClientBuilder .

Некоторые примеры использования из aws-sdk-java samples :

AmazonEC2 ec2 = null;

/*
 * The ProfileCredentialsProvider will return your [default]
 * credential profile by reading from the credentials file located at
 * (~/.aws/credentials).
 */
AWSCredentials credentials = null;
try {
        credentials = new ProfileCredentialsProvider().getCredentials();
} catch (Exception e) {
        throw new AmazonClientException(
                "Cannot load the credentials from the credential profiles file. " +
                "Please make sure that your credentials file is at the correct " +
                "location (~/.aws/credentials), and is in valid format.",
                e);
}

ec2 = AmazonEC2ClientBuilder.standard()
        .withCredentials(new AWSStaticCredentialsProvider(credentials))
        .withRegion("us-west-2")
        .build();

Код в вашем вопросе выглядит так, как будто он будет работать надлежащим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...