Не удается найти регион с помощью цепочки провайдеров региона при получении AmazonS3 - PullRequest
1 голос
/ 18 февраля 2020

У меня есть метод ниже, чтобы вернуть AmazonS3 для загрузки документов. В локальной среде я должен подключиться к корзине s3 в другом регионе, но в других средах корзина s3 и код приложения совпадают с регионом aws.

 public AmazonS3 getAmazonS3Client() {
        if ("local".equals(hostEnvironment)) {
            final AssumeRoleRequest roleRequest = new AssumeRoleRequest()
                    .withRoleArn("arnrole").withRoleSessionName("s3Session");
            final AssumeRoleResult assumeRoleResult = AWSSecurityTokenServiceAsyncClientBuilder.defaultClient()
                    .assumeRole(roleRequest);    
            final Credentials sessionCredentials = assumeRoleResult.getCredentials();
            final BasicSessionCredentials basicSessionCredentials = new BasicSessionCredentials(
                    sessionCredentials.getAccessKeyId(), sessionCredentials.getSecretAccessKey(),
                    sessionCredentials.getSessionToken());
            return AmazonS3Client.builder().withRegion("us-east-2").withCredentials
            (new AWSStaticCredentialsProvider(basicSessionCredentials)).build();
        } else {
            return AmazonS3Client.builder().withRegion("us-east-2").withCredentials
                    (new InstanceProfileCredentialsProvider(true)).build();
        }    
    }

При выполнении я получаю исключение ниже из местного, что мне здесь не хватает?

Причина: com.amazon aws .SdkClientException: Невозможно найти регион через цепочку поставщиков региона. Должен предоставить явный регион в сборщике или настройке среды для предоставления региона. в com.amazon aws .client.builder.AwsClientBuilder.setRegion (AwsClientBuilder. java: 462) в com.amazon aws .client.builder.AwsClientBuilder.configureMutableProperties (Aws: 424). .amazon aws .client.builder. 1008 *

1 Ответ

1 голос
/ 22 февраля 2020

После того, как я установил регион на AmazonS3Client, это работает

AmazonS3Client amazonS3 = новый AmazonS3Client (basicSessionCredentials); amazonS3.setRegion (RegionUtils.getRegion ( "нас-восток-2"));

...