Как отключить автоконфигурацию хранилища параметров AWS для тестов? - PullRequest
0 голосов
/ 31 октября 2018

Я добавил spring-cloud-starter-aws-parameter-store-config зависимость, как объяснено в пружинной документации . Теперь для модульных тестов я хочу отключить настройку хранилища параметров. Но не в состоянии это сделать.

Я попытался установить следующее свойство в test / application.properties

 aws.paramstore.enabled=false

Также попытался исключить AwsParamStoreBootstrapConfiguration.class из AutoConfiguration, но все еще не работает.

Исключение

Вызывается: org.springframework.beans.BeanInstantiationException: Не удалось создать экземпляр [Com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagement]: Фабричный метод 'ssmClient' вызвал исключение; вложенное исключение com.amazonaws.SdkClientException: невозможно найти регион через сеть региональных поставщиков. Должен предоставить явный регион в компоновщике или настроить среду для предоставления региона. в org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate (SimpleInstantiationStrategy.java:185) ~ [spring-beans-5.0.7.RELEASE.jar: 5.0.7.RELEASE] в org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod (ConstructorResolver.java:582) ~ [spring-beans-5.0.7.RELEASE.jar: 5.0.7.RELEASE] ... 83 общих кадра пропущено. Причина: com.amazonaws.SdkClientException: невозможно найти регион через сеть поставщиков региона. Должен предоставить явный регион в среде строителя или установки для предоставления региона. в com.amazonaws.client.builder.AwsClientBuilder.setRegion (AwsClientBuilder.java:371) ~ [aws-java-sdk-core-1.11.336.jar: na] в com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties (AwsClientBuilder.java:337) ~ [aws-java-sdk-core-1.11.336.jar: na] в com.amazonaws.client.builder.AwsSyncClientBuilder.build (AwsSyncClientBuilder.java:46) ~ [aws-java-sdk-core-1.11.336.jar: na] в com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagementClientBuilder.defaultClient (AWSSimpleSystemsManagementClientBuilder.java:44) ~ [aws-java-sdk-ssm-1.11.336.jar: na] в org.springframework.cloud.aws.autoconfigure.paramstore.AwsParamStoreBootstrapConfiguration.ssmClient (AwsParamStoreBootstrapConfiguration.java:53) ~ [Весна-облако стартер-AWS-параметр-магазин-конфигурация-2.0.0.RELEASE.jar: 2.0.0.RELEASE] * 1 016 *

1 Ответ

0 голосов
/ 31 октября 2018

Мне удалось найти решение. Кажется, что SpringBootTest пытается загрузить ssmClient даже перед тестовым классом конфигурации и перед загрузкой application.properties. Решение состоит в том, чтобы отключить paramstore, указав свойство на @SpringBootTest само

@SpringBootTest(classes = MyApp.class, properties = {"aws.paramstore.enabled=false"})

Edit:

Мне удалось отключить хранилище параметров с помощью альтернативного подхода, добавив свойство (aws.paramstore.enabled=false) в файл bootstrap.properties. Это гораздо более простое решение

...